tzh
2024-08-22 c7d0944258c7d0943aa7b2211498fd612971ce27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
M\¬Qc@s#dZddlmZedddƒ[ddlZddlZddlZddlZddlZdgZdfd    „ƒYZ    d
e    fd „ƒYZ
d Z d e    fd„ƒYZ dej fd„ƒYZejZejZdejfd„ƒYZd„ZedkrejeƒƒndS(s9Restricted execution facilities.
 
The class RExec exports methods r_exec(), r_eval(), r_execfile(), and
r_import(), which correspond roughly to the built-in operations
exec, eval(), execfile() and import, but executing the code in an
environment that only exposes those built-in operations that are
deemed safe.  To this end, a modest collection of 'fake' modules is
created which mimics the standard modules by the same names.  It is a
policy decision which built-in modules and operations are made
available; this module provides a reasonable default, but derived
classes can change the policies e.g. by overriding or extending class
variables like ok_builtin_modules or methods like make_sys().
 
XXX To do:
- r_open should allow writing tmp dir
- r_exec etc. with explicit globals/locals? (Use rexec("exec ... in ...")?)
 
iÿÿÿÿ(twarnpy3ks/the rexec module has been removed in Python 3.0t
stackleveliNtRExectFileBasec BseZd ZRS( tfilenotflushtisattytreadtreadlinet    readlinestseekttelltwritet
writelinest
xreadlinest__iter__( sfilenosflushsisattysreadsreadlines    readlinessseekstellswrites
writeliness
xreadliness__iter__(t__name__t
__module__tok_file_methods(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR st FileWrappercBseZd„Zd„ZRS(cCsSxL|jD]A}t||ƒ r
t||ƒr
t||t||ƒƒq
q
WdS(N(Rthasattrtsetattrtgetattr(tselftftm((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt__init__+scCs|jƒdS(N(R(R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pytclose0s(RRRR(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR's    sL
def %s(self, *args):
        return getattr(self.mod, self.name).%s(*args)
t FileDelegatecBs;eZd„Zx'ejdD]ZeeefdUqWRS(cCs||_||_dS(N(tmodtname(RRR((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR;s    RN(sclose(RRRRRRtTEMPLATE(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR9s    tRHookscBs}eZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z d
„Z d „Z d „ZRS( cGs§d}d}|rEt|dƒtdƒkrE|d}|d }n|rut|ddƒru|d}|d}n|r‡td‚ntjj||ƒ||_dS(Niiÿÿÿÿt    __class__istoo many arguments(tNonettypeRt    TypeErrortihookstHooksRtrexec(RtargstverboseR'((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyREs"
 
  cCs ||_dS(N(R'(RR'((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt    set_rexecVscCs |jjƒS(N(R't get_suffixes(R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR+ZscCs|jj|ƒS(N(R't
is_builtin(RR((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR,]scCst|ƒ}|jj|dƒS(N((t
__import__R't copy_except(RRR((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt init_builtin`s cCs td‚dS(Nsdon't use this(t SystemError(RR((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt init_frozendscGs td‚dS(Nsdon't use this(R0(RR(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt load_sourceescGs td‚dS(Nsdon't use this(R0(RR(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt load_compiledfscGs td‚dS(Nsdon't use this(R0(RR(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt load_packagegscCs|jj|||ƒS(N(R't load_dynamic(RRtfilenametfile((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR5iscCs|jj|ƒS(N(R't
add_module(RR((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR8lscCs
|jjS(N(R'tmodules(R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt modules_dictoscCs|jjdjS(Ntsys(R'R9tpath(R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt default_pathrs(RRRR*R+R,R/R1R2R3R4R5R8R:R=(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR Cs                                                cBs”eZdZeejƒZdXZdYZdZZ    d[Z
e j e j fZd\d3d4„Zd5„Zd6„Zd7„Zd8„Zd9„Zd:„Zd;„Zd<„Zd=„Zd>„Zd?„Zd@„ZdA„ZdB„ZdC„ZdD„Z iigdE„Z!dF„Z"dG„Z#dH„Z$dI„Z%dJ„Z&dK„Z'dL„Z(d]idM„Z)dN„Z*dO„Z+dP„Z,dQ„Z-dR„Z.dS„Z/dTdUdV„Z0dW„Z1RS(^sâBasic restricted execution framework.
 
    Code executed in this restricted environment will only have access to
    modules and functions that are deemed safe; you can subclass RExec to
    add or remove capabilities as desired.
 
    The RExec class can prevent code from performing unsafe operations like
    reading or writing disk files, or using TCP/IP sockets.  However, it does
    not protect against code using extremely large amounts of memory or
    processor time.
 
    taudiooptarraytbinasciitcmathterrnotimageoptmarshaltmathtmd5toperatortparsertselecttshat_sretstroptstructttimet_weakrefterrortfstattlistdirtlstattreadlinktstatttimestunametgetpidtgetppidtgetcwdtgetuidtgetgidtgeteuidtgetegidt    byteordert    copyrighttexittgetdefaultencodingt getrefcountt
hexversiontmaxintt
maxunicodetplatformtps1tps2tversiont version_infotopenR7treloadR-icCsôtd‚tjj||ƒ|p+t|ƒ|_|jj|ƒi|_|j|_    g}x0|jD]%}|t
j krf|j |ƒqfqfWt |ƒ|_|jƒ|jƒ|jƒ|jƒt|j|ƒ|_t|j|ƒ|_dS(s„Returns an instance of the RExec class.
 
        The hooks parameter is an instance of the RHooks class or a subclass
        of it.  If it is omitted or None, the default RHooks class is
        instantiated.
 
        Whenever the RExec module searches for a module (even a built-in one)
        or reads a module's code, it doesn't actually go out to the file
        system itself.  Rather, it calls methods of an RHooks instance that
        was passed to or created by its constructor.  (Actually, the RExec
        object doesn't make these calls --- they are made by a module loader
        object that's part of the RExec object.  This allows another level of
        flexibility, which can be useful when changing the mechanics of
        import within the restricted environment.)
 
        By providing an alternate RHooks object, we can control the file
        system accesses made to import a module, without changing the
        actual algorithm that controls the order in which those accesses are
        made.  For instance, we could substitute an RHooks object that
        passes all filesystem requests to a file server elsewhere, via some
        RPC mechanism such as ILU.  Grail's applet loader uses this to support
        importing applets from a URL for a directory.
 
        If the verbose parameter is true, additional debugging output may be
        sent to standard output.
 
        s/This code is not secure in Python 2.2 and laterN(t RuntimeErrorR%t_VerboseRR thooksR*R9tok_builtin_modulestok_dynamic_modulesR;tbuiltin_module_namestappendttupletset_trusted_patht make_builtintmake_initial_modulestmake_syst RModuleLoadertloadertRModuleImportertimporter(RRpR)tlisttmname((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRžs"         
 
 
 
cCsttjjtjƒ|_dS(N(tfiltertosR<tisabsR;t trusted_path(R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRvÑscCsi||jkrtd|‚n|tjkr>tj|}ntj|||ƒ}|j|gƒ}|S(Nsuntrusted dynamic module: %s(Rrt ImportErrorR;R9timpR5R.(RRR6R7tsrctdst((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR5ÖscCs|jƒ|jƒdS(N(t    make_maint make_osname(R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRxàs
cCs0gtjƒD]}|d|jkr |^q S(Ni(R…R+t ok_file_types(Rtitem((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR+æscCs ||jkS(N(Rq(RR((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR,ëscCsD|jt|jƒ}|j|_|j|_|j|_|_    dS(N(
R.t __builtin__tnok_builtin_namestr_importR-tr_reloadRmtr_openRlR7(RR((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRwðs  cCs|jdƒdS(Nt__main__(R8(R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRˆöscCsetj}t|ƒ}|j||jƒ}i|_}x'tjjƒD]\}}|||<qGWdS(N(RRR-t    copy_onlytok_posix_namestenvirontitems(RtosnameR†R‡tetkeytvalue((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR‰ùs       cCs”|jt|jƒ}|j|_dg|_td|jƒ|_|j    |_
|jd}|jj ƒt |j ƒ}|jƒt|ƒ|_dS(Nt
RESTRICTEDR;(R’R;t ok_sys_namesR9targvtmapR"tok_pathR<t
r_exc_infotexc_infotkeysR~RqtsortRuRs(RRtl((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRys    
cCsy|j|ƒ}x-t|ƒD]}t||t||ƒƒqWx3|D]+}yt||ƒWqFtk
rpqFXqFW|S(N(t    copy_nonetdirRRtdelattrtAttributeError(RR†t
exceptionsR‡R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR.s  cCs^|j|ƒ}xH|D]@}yt||ƒ}Wntk
rEqnXt|||ƒqW|S(N(R¤RR§R(RR†tnamesR‡RR™((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR’s  cCs"|j|jƒ}|j|_|S(N(R8Rt__doc__(RR†R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR¤#s cCsR|jj|ƒ}|dkr>|jj|ƒ|j|<}n|jd|_|S(NRŒ(R9tgetR"Rpt
new_modulet __builtins__(RRR((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR8*s
  cBs|jdƒ}||jUdS(s Execute code within a restricted environment.
 
        The code parameter must either be a string containing one or more
        lines of Python code, or a compiled code object, which will be
        executed in the restricted environment's __main__ module.
 
        R‘N(R8t__dict__(RtcodeR((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pytr_exec3scCs|jdƒ}t||jƒS(sFEvaluate code within a restricted environment.
 
        The code parameter must either be a string containing a Python
        expression, or a compiled code object, which will be evaluated in
        the restricted environment's __main__ module.  The value of the
        expression or code object will be returned.
 
        R‘(R8tevalR®(RR¯R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pytr_eval>s    cCs#|jdƒ}t||jƒdS(sfExecute the Python code in the file in the restricted
        environment's __main__ module.
 
        R‘N(R8texecfileR®(RR7R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt
r_execfileJscCs|jj||||ƒS(s=Import a module, raising an ImportError exception if the module
        is considered unsafe.
 
        This method is implicitly called by code executing in the
        restricted environment.  Overriding this method in a subclass is
        used to change the policies enforced by a restricted environment.
 
        (R}t import_module(RRtglobalstlocalstfromlist((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRŽRs    cCs|jj|ƒS(sReload the module object, re-parsing and re-initializing it.
 
        This method is implicitly called by code executing in the
        restricted environment.  Overriding this method in a subclass is
        used to change the policies enforced by a restricted environment.
 
        (R}Rm(RR((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR]scCs|jj|ƒS(s@Unload the module.
 
        Removes it from the restricted environment's sys.modules dictionary.
 
        This method is implicitly called by code executing in the
        restricted environment.  Overriding this method in a subclass is
        used to change the policies enforced by a restricted environment.
 
        (R}tunload(RR((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pytr_unloadgs
cCs}|jd}t|dƒ|_t|dƒ|_t|dƒ|_ttjƒ|_ttj    ƒ|_
ttj ƒ|_ dS(NR;tstdintstdouttstderr( R9Rtdelegate_stdintdelegate_stdouttdelegate_stderrRR;R»trestricted_stdinR¼trestricted_stdoutR½trestricted_stderr(Rts((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pytmake_delegate_filesus cCs‘t|dƒs|jƒnt|dƒs8|jƒn|jd}|j|_|j|_|j|_    |j
t _|j t _|j t _    dS(Nt
save_stdinR¾R;(Rt
save_filesRÅR9RÁR»RÂR¼RÃR½R¾R;R¿RÀ(RRÄ((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt    set_files~s        cCs?|jƒ|jd}|j|_|j|_|j|_dS(NR;(t restore_filesR9R»RÁR¼RÂR½RÃ(RRÄ((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt reset_files‹s
 
   cCs(tj|_tj|_tj|_dS(N(R;R»RÆR¼t save_stdoutR½t save_stderr(R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRǓs  cCs(|jt_|jt_|jt_dS(N(RÆR;R»RËR¼RÌR½(R((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRɘs  cCs9|jƒz|jƒ|||Ž}Wd|jƒX|S(N(RÇRÈRÉ(RtfuncR(tkwtr((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyts_applys 
 
 cGs|j|j|ƒS(sÂExecute code within a restricted environment.
 
        Similar to the r_exec() method, but the code will be granted access
        to restricted versions of the standard I/O streams sys.stdin,
        sys.stderr, and sys.stdout.
 
        The code parameter must either be a string containing one or more
        lines of Python code, or a compiled code object, which will be
        executed in the restricted environment's __main__ module.
 
        (RÐR°(RR(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyts_exec¦s cGs|j|j|ƒS(sýEvaluate code within a restricted environment.
 
        Similar to the r_eval() method, but the code will be granted access
        to restricted versions of the standard I/O streams sys.stdin,
        sys.stderr, and sys.stdout.
 
        The code parameter must either be a string containing a Python
        expression, or a compiled code object, which will be evaluated in
        the restricted environment's __main__ module.  The value of the
        expression or code object will be returned.
 
        (RÐR²(RR(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyts_eval´s cGs|j|j|ƒS(s!Execute the Python code in the file in the restricted
        environment's __main__ module.
 
        Similar to the r_execfile() method, but the code will be granted
        access to restricted versions of the standard I/O streams sys.stdin,
        sys.stderr, and sys.stdout.
 
        (RÐR´(RR(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt
s_execfileÃs    cGs|j|j|ƒS(sáImport a module, raising an ImportError exception if the module
        is considered unsafe.
 
        This method is implicitly called by code executing in the
        restricted environment.  Overriding this method in a subclass is
        used to change the policies enforced by a restricted environment.
 
        Similar to the r_import() method, but has access to restricted
        versions of the standard I/O streams sys.stdin, sys.stderr, and
        sys.stdout.
 
        (RÐRŽ(RR(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyts_importÎs cGs|j|j|ƒS(sÀReload the module object, re-parsing and re-initializing it.
 
        This method is implicitly called by code executing in the
        restricted environment.  Overriding this method in a subclass is
        used to change the policies enforced by a restricted environment.
 
        Similar to the r_reload() method, but has access to restricted
        versions of the standard I/O streams sys.stdin, sys.stderr, and
        sys.stdout.
 
        (RÐR(RR(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyts_reloadÝs cGs|j|j|ƒS(säUnload the module.
 
        Removes it from the restricted environment's sys.modules dictionary.
 
        This method is implicitly called by code executing in the
        restricted environment.  Overriding this method in a subclass is
        used to change the policies enforced by a restricted environment.
 
        Similar to the r_unload() method, but has access to restricted
        versions of the standard I/O streams sys.stdin, sys.stderr, and
        sys.stdout.
 
        (RÐRº(RR(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyts_unloadësRÏiÿÿÿÿcCs4t|ƒ}|dkr$td‚nt|||ƒS(sGMethod called when open() is called in the restricted environment.
 
        The arguments are identical to those of the open() function, and a
        file object (or a class instance compatible with file objects)
        should be returned.  RExec's default behaviour is allow opening
        any file for reading, but forbidding any attempt to write a file.
 
        This method is implicitly called by code executing in the
        restricted environment.  Overriding this method in a subclass is
        used to change the policies enforced by a restricted environment.
 
        RÏtrbs/can't open files for writing in restricted mode(RÏsrb(tstrtIOErrorRl(RR7tmodetbuf((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRýs   cCs(tjƒ\}}}d}|||fS(N(R;R R"(Rttytvattr((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRŸs(R>sarrayR@RAserrnoRCsmarshalRERFRGRHRIRJs_sreRLsstructRNs_weakref(serrorsfstatslistdirslstatsreadlinksstatstimessunamesgetpidsgetppidsgetcwdsgetuidsgetgidsgeteuidsgetegid( s    byteorders    copyrightsexitsgetdefaultencodings getrefcounts
hexversionsmaxints
maxunicodesplatformRhRisversions version_info(sopensfilesreloads
__import__N((2RRRªRuR;R<RžRqR“R›RR…t C_EXTENSIONt    PY_SOURCERŠR"RRvR5RxR+R,RwRˆR‰RyR.R’R¤R8R°R²R´RŽRRºRÅRÈRÊRÇRÉRÐRÑRÒRÓRÔRÕRÖRRŸ(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyR{sd 3        
                                   
                           
                                                       csddl}ddl}|jtjddƒ\}}d}g}xI|D]A\}}|dkro|d}n|dkrJ|j|ƒqJqJWtd|ƒ‰|r½ˆjt|ƒˆ_n|r|ˆjd_ˆjdj    j
dt j    j |dƒƒnˆjdj    j
dd    ƒtj }|r|dd
kryt|dƒ}Wqtk
r}}    d tjd|dfGHdSXn|jƒryddl}
Wntk
r°nXddl‰d ˆjf‡‡fd †ƒY} y| ˆjdjƒjƒWq{tk
r} | SXnd|jƒ} |jƒt| |jdƒ}yˆj|ƒWn%tk
ri} | S|jƒdSXdS(Niÿÿÿÿisvt:is-vs-tR)R;tt-s%s: can't open file %rtRestrictedConsolecseZ‡‡fd†ZRS(cs4ˆjd|jd<ˆjˆjj||fƒdS(NRŒR­(R9R·RÐtInteractiveConsoletruncode(Rtco(R¯RÏ(sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRå7s(RRRå((R¯RÏ(sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyRã6sR‘texec(tgetoptt    tracebackR;RœRtRRqRuR9R<tinsertRtdirnameR»RlRÙRRR„R¯RäR®tinteractt
SystemExitRRtcompileRRÑt    print_exc(RèRétoptsR(R)ttrustedtotatfptmsgRRãtnttexttc((R¯RÏsM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyttestsX   -       " 
 
R‘(RªtwarningsRR;RŒRR%R…t__all__RRRRR&R tFancyModuleLoaderRztModuleImporterR|RoRRùRRa(((sM/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/rexec.pyt<module>s*         
4        ÿ    4