__all__ = ['babel']

# Don't look below, you will not understand this Python code :) I don't.

from js2py.pyjs import *
# setting scope
var = Scope( JS_BUILTINS )
set_global_object(var)

# Code follows:
var.registers([])
@Js
def PyJs_anonymous_1_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'babel', u'require', u'babelPresetEs2015', u'exports', u'module'])
    Js(u'use strict')
    var.put(u'babel', var.get(u'require')(Js(u'babel-core')))
    var.put(u'babelPresetEs2015', var.get(u'require')(Js(u'babel-preset-es2015')))
    var.get(u'Object').put(u'babelPresetEs2015', var.get(u'babelPresetEs2015'))
    var.get(u'Object').put(u'babel', var.get(u'babel'))
PyJs_anonymous_1_._set_name(u'anonymous')
PyJs_Object_2_ = Js({u'babel-core':Js(5.0),u'babel-preset-es2015':Js(95.0)})
@Js
def PyJs_anonymous_3_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    @Js
    def PyJs_anonymous_4_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return JsRegExp(u'/[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g')
    PyJs_anonymous_4_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_4_)
PyJs_anonymous_3_._set_name(u'anonymous')
PyJs_Object_5_ = Js({})
@Js
def PyJs_anonymous_6_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'assembleStyles', u'require', u'exports', u'module'])
    @Js
    def PyJsHoisted_assembleStyles_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'styles'])
        PyJs_Object_8_ = Js({u'reset':Js([Js(0.0), Js(0.0)]),u'bold':Js([Js(1.0), Js(22.0)]),u'dim':Js([Js(2.0), Js(22.0)]),u'italic':Js([Js(3.0), Js(23.0)]),u'underline':Js([Js(4.0), Js(24.0)]),u'inverse':Js([Js(7.0), Js(27.0)]),u'hidden':Js([Js(8.0), Js(28.0)]),u'strikethrough':Js([Js(9.0), Js(29.0)])})
        PyJs_Object_9_ = Js({u'black':Js([Js(30.0), Js(39.0)]),u'red':Js([Js(31.0), Js(39.0)]),u'green':Js([Js(32.0), Js(39.0)]),u'yellow':Js([Js(33.0), Js(39.0)]),u'blue':Js([Js(34.0), Js(39.0)]),u'magenta':Js([Js(35.0), Js(39.0)]),u'cyan':Js([Js(36.0), Js(39.0)]),u'white':Js([Js(37.0), Js(39.0)]),u'gray':Js([Js(90.0), Js(39.0)])})
        PyJs_Object_10_ = Js({u'bgBlack':Js([Js(40.0), Js(49.0)]),u'bgRed':Js([Js(41.0), Js(49.0)]),u'bgGreen':Js([Js(42.0), Js(49.0)]),u'bgYellow':Js([Js(43.0), Js(49.0)]),u'bgBlue':Js([Js(44.0), Js(49.0)]),u'bgMagenta':Js([Js(45.0), Js(49.0)]),u'bgCyan':Js([Js(46.0), Js(49.0)]),u'bgWhite':Js([Js(47.0), Js(49.0)])})
        PyJs_Object_7_ = Js({u'modifiers':PyJs_Object_8_,u'colors':PyJs_Object_9_,u'bgColors':PyJs_Object_10_})
        var.put(u'styles', PyJs_Object_7_)
        var.get(u'styles').get(u'colors').put(u'grey', var.get(u'styles').get(u'colors').get(u'gray'))
        @Js
        def PyJs_anonymous_11_(groupName, this, arguments, var=var):
            var = Scope({u'this':this, u'groupName':groupName, u'arguments':arguments}, var)
            var.registers([u'groupName', u'group'])
            var.put(u'group', var.get(u'styles').get(var.get(u'groupName')))
            @Js
            def PyJs_anonymous_12_(styleName, this, arguments, var=var):
                var = Scope({u'this':this, u'styleName':styleName, u'arguments':arguments}, var)
                var.registers([u'style', u'styleName'])
                var.put(u'style', var.get(u'group').get(var.get(u'styleName')))
                PyJs_Object_13_ = Js({u'open':((Js(u'\x1b[')+var.get(u'style').get(u'0'))+Js(u'm')),u'close':((Js(u'\x1b[')+var.get(u'style').get(u'1'))+Js(u'm'))})
                var.get(u'styles').put(var.get(u'styleName'), var.get(u'group').put(var.get(u'styleName'), PyJs_Object_13_))
            PyJs_anonymous_12_._set_name(u'anonymous')
            var.get(u'Object').callprop(u'keys', var.get(u'group')).callprop(u'forEach', PyJs_anonymous_12_)
            PyJs_Object_14_ = Js({u'value':var.get(u'group'),u'enumerable':Js(False)})
            var.get(u'Object').callprop(u'defineProperty', var.get(u'styles'), var.get(u'groupName'), PyJs_Object_14_)
        PyJs_anonymous_11_._set_name(u'anonymous')
        var.get(u'Object').callprop(u'keys', var.get(u'styles')).callprop(u'forEach', PyJs_anonymous_11_)
        return var.get(u'styles')
    PyJsHoisted_assembleStyles_.func_name = u'assembleStyles'
    var.put(u'assembleStyles', PyJsHoisted_assembleStyles_)
    Js(u'use strict')
    pass
    PyJs_Object_15_ = Js({u'enumerable':var.get(u'true'),u'get':var.get(u'assembleStyles')})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'module'), Js(u'exports'), PyJs_Object_15_)
PyJs_anonymous_6_._set_name(u'anonymous')
PyJs_Object_16_ = Js({})
@Js
def PyJs_anonymous_17_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'defs', u'_esutils2', u'exports', u'_jsTokens2', u'_esutils', u'require', u'NEWLINE', u'module', u'BRACKET', u'JSX_TAG', u'_chalk', u'getTokenType', u'_interopRequireDefault', u'highlight', u'_jsTokens', u'_chalk2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_22_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_22_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_highlight_(text, this, arguments, var=var):
        var = Scope({u'this':this, u'text':text, u'arguments':arguments}, var)
        var.registers([u'text'])
        @Js
        def PyJs_anonymous_24_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'_len', u'_key', u'args', u'type', u'colorize'])
            #for JS loop
            var.put(u'_len', var.get(u'arguments').get(u'length'))
            var.put(u'args', var.get(u'Array')(var.get(u'_len')))
            var.put(u'_key', Js(0.0))
            while (var.get(u'_key')<var.get(u'_len')):
                try:
                    var.get(u'args').put(var.get(u'_key'), var.get(u'arguments').get(var.get(u'_key')))
                finally:
                        (var.put(u'_key',Js(var.get(u'_key').to_number())+Js(1))-Js(1))
            var.put(u'type', var.get(u'getTokenType')(var.get(u'args')))
            var.put(u'colorize', var.get(u'defs').get(var.get(u'type')))
            if var.get(u'colorize'):
                @Js
                def PyJs_anonymous_25_(str, this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
                    var.registers([u'str'])
                    return var.get(u'colorize')(var.get(u'str'))
                PyJs_anonymous_25_._set_name(u'anonymous')
                return var.get(u'args').get(u'0').callprop(u'split', var.get(u'NEWLINE')).callprop(u'map', PyJs_anonymous_25_).callprop(u'join', Js(u'\n'))
            else:
                return var.get(u'args').get(u'0')
        PyJs_anonymous_24_._set_name(u'anonymous')
        return var.get(u'text').callprop(u'replace', var.get(u'_jsTokens2').get(u'default'), PyJs_anonymous_24_)
    PyJsHoisted_highlight_.func_name = u'highlight'
    var.put(u'highlight', PyJsHoisted_highlight_)
    @Js
    def PyJsHoisted_getTokenType_(match, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'match':match}, var)
        var.registers([u'_match$slice', u'text', u'token', u'match', u'offset'])
        var.put(u'_match$slice', var.get(u'match').callprop(u'slice', (-Js(2.0))))
        var.put(u'offset', var.get(u'_match$slice').get(u'0'))
        var.put(u'text', var.get(u'_match$slice').get(u'1'))
        var.put(u'token', var.get(u'_jsTokens2').get(u'default').callprop(u'matchToToken', var.get(u'match')))
        if PyJsStrictEq(var.get(u'token').get(u'type'),Js(u'name')):
            if var.get(u'_esutils2').get(u'default').get(u'keyword').callprop(u'isReservedWordES6', var.get(u'token').get(u'value')):
                return Js(u'keyword')
            if (var.get(u'JSX_TAG').callprop(u'test', var.get(u'token').get(u'value')) and (PyJsStrictEq(var.get(u'text').get((var.get(u'offset')-Js(1.0))),Js(u'<')) or (var.get(u'text').callprop(u'substr', (var.get(u'offset')-Js(2.0)), Js(2.0))==Js(u'</')))):
                return Js(u'jsx_tag')
            if PyJsStrictNeq(var.get(u'token').get(u'value').get(u'0'),var.get(u'token').get(u'value').get(u'0').callprop(u'toLowerCase')):
                return Js(u'capitalized')
        if (PyJsStrictEq(var.get(u'token').get(u'type'),Js(u'punctuator')) and var.get(u'BRACKET').callprop(u'test', var.get(u'token').get(u'value'))):
            return Js(u'bracket')
        return var.get(u'token').get(u'type')
    PyJsHoisted_getTokenType_.func_name = u'getTokenType'
    var.put(u'getTokenType', PyJsHoisted_getTokenType_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_18_(rawLines, lineNumber, colNumber, this, arguments, var=var):
        var = Scope({u'this':this, u'lineNumber':lineNumber, u'colNumber':colNumber, u'arguments':arguments, u'rawLines':rawLines}, var)
        var.registers([u'end', u'rawLines', u'linesBelow', u'lines', u'highlighted', u'start', u'colNumber', u'frame', u'lineNumber', u'maybeHighlight', u'numberMaxWidth', u'linesAbove', u'opts'])
        PyJs_Object_19_ = Js({})
        var.put(u'opts', (PyJs_Object_19_ if ((var.get(u'arguments').get(u'length')<=Js(3.0)) or PyJsStrictEq(var.get(u'arguments').get(u'3'),var.get(u'undefined'))) else var.get(u'arguments').get(u'3')))
        var.put(u'colNumber', var.get(u'Math').callprop(u'max', var.get(u'colNumber'), Js(0.0)))
        var.put(u'highlighted', (var.get(u'opts').get(u'highlightCode') and var.get(u'_chalk2').get(u'default').get(u'supportsColor')))
        @Js
        def PyJs_maybeHighlight_20_(chalkFn, string, this, arguments, var=var):
            var = Scope({u'this':this, u'chalkFn':chalkFn, u'maybeHighlight':PyJs_maybeHighlight_20_, u'string':string, u'arguments':arguments}, var)
            var.registers([u'chalkFn', u'string'])
            return (var.get(u'chalkFn')(var.get(u'string')) if var.get(u'highlighted') else var.get(u'string'))
        PyJs_maybeHighlight_20_._set_name(u'maybeHighlight')
        var.put(u'maybeHighlight', PyJs_maybeHighlight_20_)
        if var.get(u'highlighted'):
            var.put(u'rawLines', var.get(u'highlight')(var.get(u'rawLines')))
        var.put(u'linesAbove', (var.get(u'opts').get(u'linesAbove') or Js(2.0)))
        var.put(u'linesBelow', (var.get(u'opts').get(u'linesBelow') or Js(3.0)))
        var.put(u'lines', var.get(u'rawLines').callprop(u'split', var.get(u'NEWLINE')))
        var.put(u'start', var.get(u'Math').callprop(u'max', (var.get(u'lineNumber')-(var.get(u'linesAbove')+Js(1.0))), Js(0.0)))
        var.put(u'end', var.get(u'Math').callprop(u'min', var.get(u'lines').get(u'length'), (var.get(u'lineNumber')+var.get(u'linesBelow'))))
        if (var.get(u'lineNumber').neg() and var.get(u'colNumber').neg()):
            var.put(u'start', Js(0.0))
            var.put(u'end', var.get(u'lines').get(u'length'))
        var.put(u'numberMaxWidth', var.get(u'String')(var.get(u'end')).get(u'length'))
        @Js
        def PyJs_anonymous_21_(line, index, this, arguments, var=var):
            var = Scope({u'this':this, u'index':index, u'line':line, u'arguments':arguments}, var)
            var.registers([u'markerSpacing', u'index', u'markerLine', u'gutter', u'number', u'paddedNumber', u'line'])
            var.put(u'number', ((var.get(u'start')+Js(1.0))+var.get(u'index')))
            var.put(u'paddedNumber', (Js(u' ')+var.get(u'number')).callprop(u'slice', (-var.get(u'numberMaxWidth'))))
            var.put(u'gutter', ((Js(u' ')+var.get(u'paddedNumber'))+Js(u' | ')))
            if PyJsStrictEq(var.get(u'number'),var.get(u'lineNumber')):
                var.put(u'markerLine', Js(u''))
                if var.get(u'colNumber'):
                    var.put(u'markerSpacing', var.get(u'line').callprop(u'slice', Js(0.0), (var.get(u'colNumber')-Js(1.0))).callprop(u'replace', JsRegExp(u'/[^\\t]/g'), Js(u' ')))
                    var.put(u'markerLine', Js([Js(u'\n '), var.get(u'maybeHighlight')(var.get(u'defs').get(u'gutter'), var.get(u'gutter').callprop(u'replace', JsRegExp(u'/\\d/g'), Js(u' '))), var.get(u'markerSpacing'), var.get(u'maybeHighlight')(var.get(u'defs').get(u'marker'), Js(u'^'))]).callprop(u'join', Js(u'')))
                return Js([var.get(u'maybeHighlight')(var.get(u'defs').get(u'marker'), Js(u'>')), var.get(u'maybeHighlight')(var.get(u'defs').get(u'gutter'), var.get(u'gutter')), var.get(u'line'), var.get(u'markerLine')]).callprop(u'join', Js(u''))
            else:
                return ((Js(u' ')+var.get(u'maybeHighlight')(var.get(u'defs').get(u'gutter'), var.get(u'gutter')))+var.get(u'line'))
        PyJs_anonymous_21_._set_name(u'anonymous')
        var.put(u'frame', var.get(u'lines').callprop(u'slice', var.get(u'start'), var.get(u'end')).callprop(u'map', PyJs_anonymous_21_).callprop(u'join', Js(u'\n')))
        if var.get(u'highlighted'):
            return var.get(u'_chalk2').get(u'default').callprop(u'reset', var.get(u'frame'))
        else:
            return var.get(u'frame')
    PyJs_anonymous_18_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_18_)
    var.put(u'_jsTokens', var.get(u'require')(Js(u'js-tokens')))
    var.put(u'_jsTokens2', var.get(u'_interopRequireDefault')(var.get(u'_jsTokens')))
    var.put(u'_esutils', var.get(u'require')(Js(u'esutils')))
    var.put(u'_esutils2', var.get(u'_interopRequireDefault')(var.get(u'_esutils')))
    var.put(u'_chalk', var.get(u'require')(Js(u'chalk')))
    var.put(u'_chalk2', var.get(u'_interopRequireDefault')(var.get(u'_chalk')))
    pass
    PyJs_Object_23_ = Js({u'keyword':var.get(u'_chalk2').get(u'default').get(u'cyan'),u'capitalized':var.get(u'_chalk2').get(u'default').get(u'yellow'),u'jsx_tag':var.get(u'_chalk2').get(u'default').get(u'yellow'),u'punctuator':var.get(u'_chalk2').get(u'default').get(u'yellow'),u'number':var.get(u'_chalk2').get(u'default').get(u'magenta'),u'string':var.get(u'_chalk2').get(u'default').get(u'green'),u'regex':var.get(u'_chalk2').get(u'default').get(u'magenta'),u'comment':var.get(u'_chalk2').get(u'default').get(u'grey'),u'invalid':var.get(u'_chalk2').get(u'default').get(u'white').get(u'bgRed').get(u'bold'),u'gutter':var.get(u'_chalk2').get(u'default').get(u'grey'),u'marker':var.get(u'_chalk2').get(u'default').get(u'red').get(u'bold')})
    var.put(u'defs', PyJs_Object_23_)
    var.put(u'NEWLINE', JsRegExp(u'/\\r\\n|[\\n\\r\\u2028\\u2029]/'))
    var.put(u'JSX_TAG', JsRegExp(u'/^[a-z][\\w-]*$/i'))
    var.put(u'BRACKET', JsRegExp(u'/^[()\\[\\]{}]$/'))
    pass
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_17_._set_name(u'anonymous')
PyJs_Object_26_ = Js({u'chalk':Js(265.0),u'esutils':Js(276.0),u'js-tokens':Js(282.0)})
@Js
def PyJs_anonymous_27_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./lib/api/node.js')))
PyJs_anonymous_27_._set_name(u'anonymous')
PyJs_Object_28_ = Js({u'./lib/api/node.js':Js(6.0)})
@Js
def PyJs_anonymous_29_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_isFunction', u'_fs', u'_pipeline2', u'_file', u'_babelTemplate', u'_buildExternalHelpers', u'transformFile', u'_interopRequireDefault', u'_babelTraverse', u'_pipeline', u'transform', u'_fs2', u'_babelMessages', u'exports', u'_babelTraverse2', u'_interopRequireWildcard', u'Plugin', u'_babelTypes', u'analyse', u'pipeline', u'_util', u'util', u'module', u'_optionManager2', u'_isFunction2', u'_config', u'transformFileSync', u'messages', u'_optionManager', u'transformFromAst', u't', u'_package', u'require'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_42_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_42_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_transformFileSync_(filename, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'filename':filename}, var)
        var.registers([u'opts', u'filename'])
        PyJs_Object_45_ = Js({})
        var.put(u'opts', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else PyJs_Object_45_))
        var.get(u'opts').put(u'filename', var.get(u'filename'))
        return var.get(u'transform')(var.get(u'_fs2').get(u'default').callprop(u'readFileSync', var.get(u'filename'), Js(u'utf8')), var.get(u'opts'))
    PyJsHoisted_transformFileSync_.func_name = u'transformFileSync'
    var.put(u'transformFileSync', PyJsHoisted_transformFileSync_)
    @Js
    def PyJsHoisted_transformFile_(filename, opts, callback, this, arguments, var=var):
        var = Scope({u'this':this, u'callback':callback, u'arguments':arguments, u'opts':opts, u'filename':filename}, var)
        var.registers([u'callback', u'opts', u'filename'])
        if PyJsComma(Js(0.0),var.get(u'_isFunction2').get(u'default'))(var.get(u'opts')):
            var.put(u'callback', var.get(u'opts'))
            PyJs_Object_43_ = Js({})
            var.put(u'opts', PyJs_Object_43_)
        var.get(u'opts').put(u'filename', var.get(u'filename'))
        @Js
        def PyJs_anonymous_44_(err, code, this, arguments, var=var):
            var = Scope({u'this':this, u'code':code, u'arguments':arguments, u'err':err}, var)
            var.registers([u'code', u'result', u'err'])
            var.put(u'result', PyJsComma(Js(0.0), Js(None)))
            if var.get(u'err').neg():
                try:
                    var.put(u'result', var.get(u'transform')(var.get(u'code'), var.get(u'opts')))
                except PyJsException as PyJsTempException:
                    PyJsHolder_5f657272_67108312 = var.own.get(u'_err')
                    var.force_own_put(u'_err', PyExceptionToJs(PyJsTempException))
                    try:
                        var.put(u'err', var.get(u'_err'))
                    finally:
                        if PyJsHolder_5f657272_67108312 is not None:
                            var.own[u'_err'] = PyJsHolder_5f657272_67108312
                        else:
                            del var.own[u'_err']
                        del PyJsHolder_5f657272_67108312
            if var.get(u'err'):
                var.get(u'callback')(var.get(u'err'))
            else:
                var.get(u'callback')(var.get(u"null"), var.get(u'result'))
        PyJs_anonymous_44_._set_name(u'anonymous')
        var.get(u'_fs2').get(u'default').callprop(u'readFile', var.get(u'filename'), PyJs_anonymous_44_)
    PyJsHoisted_transformFile_.func_name = u'transformFile'
    var.put(u'transformFile', PyJsHoisted_transformFile_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_41_ = Js({})
            var.put(u'newObj', PyJs_Object_41_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_Plugin_(alias, this, arguments, var=var):
        var = Scope({u'this':this, u'alias':alias, u'arguments':arguments}, var)
        var.registers([u'alias'])
        PyJsTempException = JsToPyException(var.get(u'Error').create(((Js(u'The (')+var.get(u'alias'))+Js(u') Babel 5 plugin is being run with Babel 6.'))))
        raise PyJsTempException
    PyJsHoisted_Plugin_.func_name = u'Plugin'
    var.put(u'Plugin', PyJsHoisted_Plugin_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    def PyJs_LONG_30_(var=var):
        return var.get(u'exports').put(u'OptionManager', var.get(u'exports').put(u'traverse', var.get(u'exports').put(u'types', var.get(u'exports').put(u'messages', var.get(u'exports').put(u'util', var.get(u'exports').put(u'version', var.get(u'exports').put(u'template', var.get(u'exports').put(u'buildExternalHelpers', var.get(u'exports').put(u'options', var.get(u'exports').put(u'File', var.get(u'undefined')))))))))))
    var.get(u'exports').put(u'transformFromAst', var.get(u'exports').put(u'transform', var.get(u'exports').put(u'analyse', var.get(u'exports').put(u'Pipeline', PyJs_LONG_30_()))))
    var.put(u'_file', var.get(u'require')(Js(u'../transformation/file')))
    @Js
    def PyJs_get_32_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_32_}, var)
        var.registers([])
        return var.get(u'_interopRequireDefault')(var.get(u'_file')).get(u'default')
    PyJs_get_32_._set_name(u'get')
    PyJs_Object_31_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_32_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'File'), PyJs_Object_31_)
    var.put(u'_config', var.get(u'require')(Js(u'../transformation/file/options/config')))
    @Js
    def PyJs_get_34_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_34_}, var)
        var.registers([])
        return var.get(u'_interopRequireDefault')(var.get(u'_config')).get(u'default')
    PyJs_get_34_._set_name(u'get')
    PyJs_Object_33_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_34_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'options'), PyJs_Object_33_)
    var.put(u'_buildExternalHelpers', var.get(u'require')(Js(u'../tools/build-external-helpers')))
    @Js
    def PyJs_get_36_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_36_}, var)
        var.registers([])
        return var.get(u'_interopRequireDefault')(var.get(u'_buildExternalHelpers')).get(u'default')
    PyJs_get_36_._set_name(u'get')
    PyJs_Object_35_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_36_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'buildExternalHelpers'), PyJs_Object_35_)
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    @Js
    def PyJs_get_38_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_38_}, var)
        var.registers([])
        return var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')).get(u'default')
    PyJs_get_38_._set_name(u'get')
    PyJs_Object_37_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_38_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'template'), PyJs_Object_37_)
    var.put(u'_package', var.get(u'require')(Js(u'../../package')))
    @Js
    def PyJs_get_40_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_40_}, var)
        var.registers([])
        return var.get(u'_package').get(u'version')
    PyJs_get_40_._set_name(u'get')
    PyJs_Object_39_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_40_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'version'), PyJs_Object_39_)
    var.get(u'exports').put(u'Plugin', var.get(u'Plugin'))
    var.get(u'exports').put(u'transformFile', var.get(u'transformFile'))
    var.get(u'exports').put(u'transformFileSync', var.get(u'transformFileSync'))
    var.put(u'_isFunction', var.get(u'require')(Js(u'lodash/isFunction')))
    var.put(u'_isFunction2', var.get(u'_interopRequireDefault')(var.get(u'_isFunction')))
    var.put(u'_fs', var.get(u'require')(Js(u'fs')))
    var.put(u'_fs2', var.get(u'_interopRequireDefault')(var.get(u'_fs')))
    var.put(u'_util', var.get(u'require')(Js(u'../util')))
    var.put(u'util', var.get(u'_interopRequireWildcard')(var.get(u'_util')))
    var.put(u'_babelMessages', var.get(u'require')(Js(u'babel-messages')))
    var.put(u'messages', var.get(u'_interopRequireWildcard')(var.get(u'_babelMessages')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_babelTraverse', var.get(u'require')(Js(u'babel-traverse')))
    var.put(u'_babelTraverse2', var.get(u'_interopRequireDefault')(var.get(u'_babelTraverse')))
    var.put(u'_optionManager', var.get(u'require')(Js(u'../transformation/file/options/option-manager')))
    var.put(u'_optionManager2', var.get(u'_interopRequireDefault')(var.get(u'_optionManager')))
    var.put(u'_pipeline', var.get(u'require')(Js(u'../transformation/pipeline')))
    var.put(u'_pipeline2', var.get(u'_interopRequireDefault')(var.get(u'_pipeline')))
    pass
    pass
    var.get(u'exports').put(u'util', var.get(u'util'))
    var.get(u'exports').put(u'messages', var.get(u'messages'))
    var.get(u'exports').put(u'types', var.get(u't'))
    var.get(u'exports').put(u'traverse', var.get(u'_babelTraverse2').get(u'default'))
    var.get(u'exports').put(u'OptionManager', var.get(u'_optionManager2').get(u'default'))
    pass
    var.get(u'exports').put(u'Pipeline', var.get(u'_pipeline2').get(u'default'))
    var.put(u'pipeline', var.get(u'_pipeline2').get(u'default').create())
    var.put(u'analyse', var.get(u'exports').put(u'analyse', var.get(u'pipeline').get(u'analyse').callprop(u'bind', var.get(u'pipeline'))))
    var.put(u'transform', var.get(u'exports').put(u'transform', var.get(u'pipeline').get(u'transform').callprop(u'bind', var.get(u'pipeline'))))
    var.put(u'transformFromAst', var.get(u'exports').put(u'transformFromAst', var.get(u'pipeline').get(u'transformFromAst').callprop(u'bind', var.get(u'pipeline'))))
    pass
    pass
PyJs_anonymous_29_._set_name(u'anonymous')
PyJs_Object_46_ = Js({u'../../package':Js(28.0),u'../tools/build-external-helpers':Js(11.0),u'../transformation/file':Js(12.0),u'../transformation/file/options/config':Js(16.0),u'../transformation/file/options/option-manager':Js(18.0),u'../transformation/pipeline':Js(23.0),u'../util':Js(26.0),u'babel-messages':Js(57.0),u'babel-template':Js(221.0),u'babel-traverse':Js(225.0),u'babel-types':Js(258.0),u'fs':Js(523.0),u'lodash/isFunction':Js(463.0)})
@Js
def PyJs_anonymous_47_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_mergeWith', u'require', u'module', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'_mergeWith2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_50_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_50_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    @Js
    def PyJs_anonymous_48_(dest, src, this, arguments, var=var):
        var = Scope({u'dest':dest, u'src':src, u'this':this, u'arguments':arguments}, var)
        var.registers([u'dest', u'src'])
        if (var.get(u'dest').neg() or var.get(u'src').neg()):
            return var.get('undefined')
        @Js
        def PyJs_anonymous_49_(a, b, this, arguments, var=var):
            var = Scope({u'a':a, u'this':this, u'b':b, u'arguments':arguments}, var)
            var.registers([u'a', u'_isArray', u'b', u'_iterator', u'item', u'newArray', u'_i', u'_ref'])
            if (var.get(u'b') and var.get(u'Array').callprop(u'isArray', var.get(u'a'))):
                var.put(u'newArray', var.get(u'b').callprop(u'slice', Js(0.0)))
                #for JS loop
                var.put(u'_iterator', var.get(u'a'))
                var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
                var.put(u'_i', Js(0.0))
                var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
                while 1:
                    pass
                    if var.get(u'_isArray'):
                        if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                            break
                        var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                        if var.get(u'_i').get(u'done'):
                            break
                        var.put(u'_ref', var.get(u'_i').get(u'value'))
                    var.put(u'item', var.get(u'_ref'))
                    if (var.get(u'newArray').callprop(u'indexOf', var.get(u'item'))<Js(0.0)):
                        var.get(u'newArray').callprop(u'push', var.get(u'item'))
                
                return var.get(u'newArray')
        PyJs_anonymous_49_._set_name(u'anonymous')
        return PyJsComma(Js(0.0),var.get(u'_mergeWith2').get(u'default'))(var.get(u'dest'), var.get(u'src'), PyJs_anonymous_49_)
    PyJs_anonymous_48_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_48_)
    var.put(u'_mergeWith', var.get(u'require')(Js(u'lodash/mergeWith')))
    var.put(u'_mergeWith2', var.get(u'_interopRequireDefault')(var.get(u'_mergeWith')))
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_47_._set_name(u'anonymous')
PyJs_Object_51_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'lodash/mergeWith':Js(478.0)})
@Js
def PyJs_anonymous_52_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'require', u'_babelTypes', u'module', u't'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_54_ = Js({})
            var.put(u'newObj', PyJs_Object_54_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_53_(ast, comments, tokens, this, arguments, var=var):
        var = Scope({u'tokens':tokens, u'this':this, u'arguments':arguments, u'comments':comments, u'ast':ast}, var)
        var.registers([u'tokens', u'comments', u'ast'])
        if var.get(u'ast'):
            if PyJsStrictEq(var.get(u'ast').get(u'type'),Js(u'Program')):
                return var.get(u't').callprop(u'file', var.get(u'ast'), (var.get(u'comments') or Js([])), (var.get(u'tokens') or Js([])))
            else:
                if PyJsStrictEq(var.get(u'ast').get(u'type'),Js(u'File')):
                    return var.get(u'ast')
        PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Not a valid ast?')))
        raise PyJsTempException
    PyJs_anonymous_53_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_53_)
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_52_._set_name(u'anonymous')
PyJs_Object_55_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_56_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_57_(process, this, arguments, var=var):
        var = Scope({u'process':process, u'this':this, u'arguments':arguments}, var)
        var.registers([u'_module', u'_typeof2', u'_typeof3', u'process', u'relativeModules', u'_module2', u'_interopRequireDefault', u'_path2', u'_path'])
        @Js
        def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj'])
            PyJs_Object_59_ = Js({u'default':var.get(u'obj')})
            return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_59_)
        PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
        var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
        Js(u'use strict')
        var.get(u'exports').put(u'__esModule', var.get(u'true'))
        var.put(u'_typeof2', var.get(u'require')(Js(u'babel-runtime/helpers/typeof')))
        var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
        @Js
        def PyJs_anonymous_58_(loc, this, arguments, var=var):
            var = Scope({u'this':this, u'loc':loc, u'arguments':arguments}, var)
            var.registers([u'relative', u'loc', u'filename', u'relativeMod'])
            var.put(u'relative', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else var.get(u'process').callprop(u'cwd')))
            if PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'_module2').get(u'default').typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'_module2').get(u'default'))),Js(u'object')):
                return var.get(u"null")
            var.put(u'relativeMod', var.get(u'relativeModules').get(var.get(u'relative')))
            if var.get(u'relativeMod').neg():
                var.put(u'relativeMod', var.get(u'_module2').get(u'default').create())
                var.put(u'filename', var.get(u'_path2').get(u'default').callprop(u'join', var.get(u'relative'), Js(u'.babelrc')))
                var.get(u'relativeMod').put(u'id', var.get(u'filename'))
                var.get(u'relativeMod').put(u'filename', var.get(u'filename'))
                var.get(u'relativeMod').put(u'paths', var.get(u'_module2').get(u'default').callprop(u'_nodeModulePaths', var.get(u'relative')))
                var.get(u'relativeModules').put(var.get(u'relative'), var.get(u'relativeMod'))
            try:
                return var.get(u'_module2').get(u'default').callprop(u'_resolveFilename', var.get(u'loc'), var.get(u'relativeMod'))
            except PyJsException as PyJsTempException:
                PyJsHolder_657272_57087007 = var.own.get(u'err')
                var.force_own_put(u'err', PyExceptionToJs(PyJsTempException))
                try:
                    return var.get(u"null")
                finally:
                    if PyJsHolder_657272_57087007 is not None:
                        var.own[u'err'] = PyJsHolder_657272_57087007
                    else:
                        del var.own[u'err']
                    del PyJsHolder_657272_57087007
        PyJs_anonymous_58_._set_name(u'anonymous')
        var.get(u'exports').put(u'default', PyJs_anonymous_58_)
        var.put(u'_module', var.get(u'require')(Js(u'module')))
        var.put(u'_module2', var.get(u'_interopRequireDefault')(var.get(u'_module')))
        var.put(u'_path', var.get(u'require')(Js(u'path')))
        var.put(u'_path2', var.get(u'_interopRequireDefault')(var.get(u'_path')))
        pass
        PyJs_Object_60_ = Js({})
        var.put(u'relativeModules', PyJs_Object_60_)
        var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
    PyJs_anonymous_57_._set_name(u'anonymous')
    PyJs_anonymous_57_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')))
PyJs_anonymous_56_._set_name(u'anonymous')
PyJs_Object_61_ = Js({u'_process':Js(531.0),u'babel-runtime/helpers/typeof':Js(114.0),u'module':Js(523.0),u'path':Js(530.0)})
@Js
def PyJs_anonymous_62_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_map', u'_inherits3', u'_inherits2', u'require', u'_possibleConstructorReturn3', u'_possibleConstructorReturn2', u'module', u'Store', u'_interopRequireDefault', u'_classCallCheck3', u'_classCallCheck2', u'_map2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_63_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_63_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_map', var.get(u'require')(Js(u'babel-runtime/core-js/map')))
    var.put(u'_map2', var.get(u'_interopRequireDefault')(var.get(u'_map')))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_possibleConstructorReturn2', var.get(u'require')(Js(u'babel-runtime/helpers/possibleConstructorReturn')))
    var.put(u'_possibleConstructorReturn3', var.get(u'_interopRequireDefault')(var.get(u'_possibleConstructorReturn2')))
    var.put(u'_inherits2', var.get(u'require')(Js(u'babel-runtime/helpers/inherits')))
    var.put(u'_inherits3', var.get(u'_interopRequireDefault')(var.get(u'_inherits2')))
    pass
    @Js
    def PyJs_anonymous_64_(_Map, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'_Map':_Map}, var)
        var.registers([u'Store', u'_Map'])
        @Js
        def PyJsHoisted_Store_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'_this'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Store'))
            var.put(u'_this', PyJsComma(Js(0.0),var.get(u'_possibleConstructorReturn3').get(u'default'))(var.get(u"this"), var.get(u'_Map').callprop(u'call', var.get(u"this"))))
            PyJs_Object_65_ = Js({})
            var.get(u'_this').put(u'dynamicData', PyJs_Object_65_)
            return var.get(u'_this')
        PyJsHoisted_Store_.func_name = u'Store'
        var.put(u'Store', PyJsHoisted_Store_)
        PyJsComma(Js(0.0),var.get(u'_inherits3').get(u'default'))(var.get(u'Store'), var.get(u'_Map'))
        pass
        @Js
        def PyJs_setDynamic_66_(key, fn, this, arguments, var=var):
            var = Scope({u'this':this, u'setDynamic':PyJs_setDynamic_66_, u'fn':fn, u'key':key, u'arguments':arguments}, var)
            var.registers([u'fn', u'key'])
            var.get(u"this").get(u'dynamicData').put(var.get(u'key'), var.get(u'fn'))
        PyJs_setDynamic_66_._set_name(u'setDynamic')
        var.get(u'Store').get(u'prototype').put(u'setDynamic', PyJs_setDynamic_66_)
        @Js
        def PyJs_get_67_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'key':key, u'get':PyJs_get_67_}, var)
            var.registers([u'key', u'val'])
            if var.get(u"this").callprop(u'has', var.get(u'key')):
                return var.get(u'_Map').get(u'prototype').get(u'get').callprop(u'call', var.get(u"this"), var.get(u'key'))
            else:
                if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u"this").get(u'dynamicData'), var.get(u'key')):
                    var.put(u'val', var.get(u"this").get(u'dynamicData').callprop(var.get(u'key')))
                    var.get(u"this").callprop(u'set', var.get(u'key'), var.get(u'val'))
                    return var.get(u'val')
        PyJs_get_67_._set_name(u'get')
        var.get(u'Store').get(u'prototype').put(u'get', PyJs_get_67_)
        return var.get(u'Store')
    PyJs_anonymous_64_._set_name(u'anonymous')
    var.put(u'Store', PyJs_anonymous_64_(var.get(u'_map2').get(u'default')))
    var.get(u'exports').put(u'default', var.get(u'Store'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_62_._set_name(u'anonymous')
PyJs_Object_68_ = Js({u'babel-runtime/core-js/map':Js(98.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-runtime/helpers/inherits':Js(111.0),u'babel-runtime/helpers/possibleConstructorReturn':Js(113.0)})
@Js
def PyJs_anonymous_69_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_each', u'_babelTemplate', u'module', u'_babelHelpers', u'buildGlobal', u'_interopRequireDefault', u'buildVar', u'_each2', u'_babelTemplate2', u'_babelMessages', u'exports', u'_interopRequireWildcard', u'buildUmd', u'_babelTypes', u'_babelGenerator', u'buildHelpers', u'_babelGenerator2', u'buildUmdWrapper', u'require', u'messages', u'helpers', u't'])
    @Js
    def PyJsHoisted_buildVar_(namespace, builder, this, arguments, var=var):
        var = Scope({u'this':this, u'builder':builder, u'namespace':namespace, u'arguments':arguments}, var)
        var.registers([u'body', u'builder', u'namespace'])
        var.put(u'body', Js([]))
        var.get(u'body').callprop(u'push', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'namespace'), var.get(u't').callprop(u'objectExpression', Js([])))])))
        var.get(u'builder')(var.get(u'body'))
        var.get(u'body').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u'namespace')))
        return var.get(u't').callprop(u'program', var.get(u'body'))
    PyJsHoisted_buildVar_.func_name = u'buildVar'
    var.put(u'buildVar', PyJsHoisted_buildVar_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_74_ = Js({})
            var.put(u'newObj', PyJs_Object_74_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_buildUmd_(namespace, builder, this, arguments, var=var):
        var = Scope({u'this':this, u'builder':builder, u'namespace':namespace, u'arguments':arguments}, var)
        var.registers([u'body', u'builder', u'namespace'])
        var.put(u'body', Js([]))
        var.get(u'body').callprop(u'push', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'namespace'), var.get(u't').callprop(u'identifier', Js(u'global')))])))
        var.get(u'builder')(var.get(u'body'))
        PyJs_Object_77_ = Js({u'FACTORY_PARAMETERS':var.get(u't').callprop(u'identifier', Js(u'global')),u'BROWSER_ARGUMENTS':var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'root')), var.get(u'namespace')), var.get(u't').callprop(u'objectExpression', Js([]))),u'COMMON_ARGUMENTS':var.get(u't').callprop(u'identifier', Js(u'exports')),u'AMD_ARGUMENTS':var.get(u't').callprop(u'arrayExpression', Js([var.get(u't').callprop(u'stringLiteral', Js(u'exports'))])),u'FACTORY_BODY':var.get(u'body'),u'UMD_ROOT':var.get(u't').callprop(u'identifier', Js(u'this'))})
        return var.get(u't').callprop(u'program', Js([var.get(u'buildUmdWrapper')(PyJs_Object_77_)]))
    PyJsHoisted_buildUmd_.func_name = u'buildUmd'
    var.put(u'buildUmd', PyJsHoisted_buildUmd_)
    @Js
    def PyJsHoisted_buildHelpers_(body, namespace, whitelist, this, arguments, var=var):
        var = Scope({u'body':body, u'this':this, u'whitelist':whitelist, u'namespace':namespace, u'arguments':arguments}, var)
        var.registers([u'body', u'whitelist', u'namespace'])
        @Js
        def PyJs_anonymous_78_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
            var.registers([u'name', u'key'])
            if (var.get(u'whitelist') and (var.get(u'whitelist').callprop(u'indexOf', var.get(u'name'))<Js(0.0))):
                return var.get('undefined')
            var.put(u'key', var.get(u't').callprop(u'identifier', var.get(u'name')))
            var.get(u'body').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u't').callprop(u'memberExpression', var.get(u'namespace'), var.get(u'key')), var.get(u'helpers').callprop(u'get', var.get(u'name')))))
        PyJs_anonymous_78_._set_name(u'anonymous')
        PyJsComma(Js(0.0),var.get(u'_each2').get(u'default'))(var.get(u'helpers').get(u'list'), PyJs_anonymous_78_)
    PyJsHoisted_buildHelpers_.func_name = u'buildHelpers'
    var.put(u'buildHelpers', PyJsHoisted_buildHelpers_)
    @Js
    def PyJsHoisted_buildGlobal_(namespace, builder, this, arguments, var=var):
        var = Scope({u'this':this, u'builder':builder, u'namespace':namespace, u'arguments':arguments}, var)
        var.registers([u'body', u'tree', u'builder', u'namespace', u'container'])
        var.put(u'body', Js([]))
        var.put(u'container', var.get(u't').callprop(u'functionExpression', var.get(u"null"), Js([var.get(u't').callprop(u'identifier', Js(u'global'))]), var.get(u't').callprop(u'blockStatement', var.get(u'body'))))
        var.put(u'tree', var.get(u't').callprop(u'program', Js([var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'callExpression', var.get(u'container'), Js([var.get(u'helpers').callprop(u'get', Js(u'selfGlobal'))])))])))
        def PyJs_LONG_76_(var=var):
            return var.get(u'body').callprop(u'push', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'namespace'), var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'global')), var.get(u'namespace')), var.get(u't').callprop(u'objectExpression', Js([]))))])))
        PyJs_LONG_76_()
        var.get(u'builder')(var.get(u'body'))
        return var.get(u'tree')
    PyJsHoisted_buildGlobal_.func_name = u'buildGlobal'
    var.put(u'buildGlobal', PyJsHoisted_buildGlobal_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_73_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_73_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_70_(whitelist, this, arguments, var=var):
        var = Scope({u'this':this, u'whitelist':whitelist, u'arguments':arguments}, var)
        var.registers([u'namespace', u'whitelist', u'tree', u'outputType', u'build', u'builder'])
        var.put(u'outputType', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else Js(u'global')))
        var.put(u'namespace', var.get(u't').callprop(u'identifier', Js(u'babelHelpers')))
        @Js
        def PyJs_builder_71_(body, this, arguments, var=var):
            var = Scope({u'body':body, u'this':this, u'builder':PyJs_builder_71_, u'arguments':arguments}, var)
            var.registers([u'body'])
            return var.get(u'buildHelpers')(var.get(u'body'), var.get(u'namespace'), var.get(u'whitelist'))
        PyJs_builder_71_._set_name(u'builder')
        var.put(u'builder', PyJs_builder_71_)
        var.put(u'tree', PyJsComma(Js(0.0), Js(None)))
        PyJs_Object_72_ = Js({u'global':var.get(u'buildGlobal'),u'umd':var.get(u'buildUmd'),u'var':var.get(u'buildVar')})
        var.put(u'build', PyJs_Object_72_.get(var.get(u'outputType')))
        if var.get(u'build'):
            var.put(u'tree', var.get(u'build')(var.get(u'namespace'), var.get(u'builder')))
        else:
            PyJsTempException = JsToPyException(var.get(u'Error').create(var.get(u'messages').callprop(u'get', Js(u'unsupportedOutputType'), var.get(u'outputType'))))
            raise PyJsTempException
        return PyJsComma(Js(0.0),var.get(u'_babelGenerator2').get(u'default'))(var.get(u'tree')).get(u'code')
    PyJs_anonymous_70_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_70_)
    var.put(u'_babelHelpers', var.get(u'require')(Js(u'babel-helpers')))
    var.put(u'helpers', var.get(u'_interopRequireWildcard')(var.get(u'_babelHelpers')))
    var.put(u'_babelGenerator', var.get(u'require')(Js(u'babel-generator')))
    var.put(u'_babelGenerator2', var.get(u'_interopRequireDefault')(var.get(u'_babelGenerator')))
    var.put(u'_babelMessages', var.get(u'require')(Js(u'babel-messages')))
    var.put(u'messages', var.get(u'_interopRequireWildcard')(var.get(u'_babelMessages')))
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    var.put(u'_babelTemplate2', var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')))
    var.put(u'_each', var.get(u'require')(Js(u'lodash/each')))
    var.put(u'_each2', var.get(u'_interopRequireDefault')(var.get(u'_each')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    def PyJs_LONG_75_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (root, factory) {\n    if (typeof define === "function" && define.amd) {\n      define(AMD_ARGUMENTS, factory);\n    } else if (typeof exports === "object") {\n      factory(COMMON_ARGUMENTS);\n    } else {\n      factory(BROWSER_ARGUMENTS);\n    }\n  })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n    FACTORY_BODY\n  });\n'))
    var.put(u'buildUmdWrapper', PyJs_LONG_75_())
    pass
    pass
    pass
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_69_._set_name(u'anonymous')
PyJs_Object_79_ = Js({u'babel-generator':Js(40.0),u'babel-helpers':Js(56.0),u'babel-messages':Js(57.0),u'babel-template':Js(221.0),u'babel-types':Js(258.0),u'lodash/each':Js(443.0)})
@Js
def PyJs_anonymous_80_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_81_(process, this, arguments, var=var):
        var = Scope({u'process':process, u'this':this, u'arguments':arguments}, var)
        var.registers([u'_resolve', u'_store', u'_sourceMap', u'_shadowFunctions2', u'_babelHelpers', u'_logger2', u'_interopRequireDefault', u'_convertSourceMap', u'_getIterator3', u'_getIterator2', u'_shadowFunctions', u'_babelCodeFrame2', u'_typeof2', u'_typeof3', u'metadataVisitor', u'INTERNAL_PLUGINS', u'_possibleConstructorReturn3', u'_possibleConstructorReturn2', u'_babylon', u'_create2', u'errorVisitor', u'_metadata', u'_store2', u'_assign2', u'shebangRegex', u'_blockHoist', u'_classCallCheck3', u'_classCallCheck2', u'_pluginPass2', u'_sourceMap2', u'_create', u'_convertSourceMap2', u'process', u'_babelTypes', u'_babelTraverse2', u'_interopRequireWildcard', u'_inherits3', u'_inherits2', u'_pluginPass', u'_assign', u'_babelCodeFrame', u'_babelGenerator', u'_logger', u'_util', u'_defaults2', u'_path2', u'_optionManager2', u'_babelTraverse', u'util', u'_babelGenerator2', u'_blockHoist2', u'_babelHelpers2', u'_defaults', u'_optionManager', u't', u'File', u'_resolve2', u'_path'])
        @Js
        def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj'])
            PyJs_Object_83_ = Js({u'default':var.get(u'obj')})
            return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_83_)
        PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
        var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
        @Js
        def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj', u'key', u'newObj'])
            if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
                return var.get(u'obj')
            else:
                PyJs_Object_82_ = Js({})
                var.put(u'newObj', PyJs_Object_82_)
                if (var.get(u'obj')!=var.get(u"null")):
                    for PyJsTemp in var.get(u'obj'):
                        var.put(u'key', PyJsTemp)
                        if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                            var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
                var.get(u'newObj').put(u'default', var.get(u'obj'))
                return var.get(u'newObj')
        PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
        var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
        Js(u'use strict')
        var.get(u'exports').put(u'__esModule', var.get(u'true'))
        var.get(u'exports').put(u'File', var.get(u'undefined'))
        var.put(u'_typeof2', var.get(u'require')(Js(u'babel-runtime/helpers/typeof')))
        var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
        var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
        var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
        var.put(u'_create', var.get(u'require')(Js(u'babel-runtime/core-js/object/create')))
        var.put(u'_create2', var.get(u'_interopRequireDefault')(var.get(u'_create')))
        var.put(u'_assign', var.get(u'require')(Js(u'babel-runtime/core-js/object/assign')))
        var.put(u'_assign2', var.get(u'_interopRequireDefault')(var.get(u'_assign')))
        var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
        var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
        var.put(u'_possibleConstructorReturn2', var.get(u'require')(Js(u'babel-runtime/helpers/possibleConstructorReturn')))
        var.put(u'_possibleConstructorReturn3', var.get(u'_interopRequireDefault')(var.get(u'_possibleConstructorReturn2')))
        var.put(u'_inherits2', var.get(u'require')(Js(u'babel-runtime/helpers/inherits')))
        var.put(u'_inherits3', var.get(u'_interopRequireDefault')(var.get(u'_inherits2')))
        var.put(u'_babelHelpers', var.get(u'require')(Js(u'babel-helpers')))
        var.put(u'_babelHelpers2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelpers')))
        var.put(u'_metadata', var.get(u'require')(Js(u'./metadata')))
        var.put(u'metadataVisitor', var.get(u'_interopRequireWildcard')(var.get(u'_metadata')))
        var.put(u'_convertSourceMap', var.get(u'require')(Js(u'convert-source-map')))
        var.put(u'_convertSourceMap2', var.get(u'_interopRequireDefault')(var.get(u'_convertSourceMap')))
        var.put(u'_optionManager', var.get(u'require')(Js(u'./options/option-manager')))
        var.put(u'_optionManager2', var.get(u'_interopRequireDefault')(var.get(u'_optionManager')))
        var.put(u'_pluginPass', var.get(u'require')(Js(u'../plugin-pass')))
        var.put(u'_pluginPass2', var.get(u'_interopRequireDefault')(var.get(u'_pluginPass')))
        var.put(u'_babelTraverse', var.get(u'require')(Js(u'babel-traverse')))
        var.put(u'_babelTraverse2', var.get(u'_interopRequireDefault')(var.get(u'_babelTraverse')))
        var.put(u'_sourceMap', var.get(u'require')(Js(u'source-map')))
        var.put(u'_sourceMap2', var.get(u'_interopRequireDefault')(var.get(u'_sourceMap')))
        var.put(u'_babelGenerator', var.get(u'require')(Js(u'babel-generator')))
        var.put(u'_babelGenerator2', var.get(u'_interopRequireDefault')(var.get(u'_babelGenerator')))
        var.put(u'_babelCodeFrame', var.get(u'require')(Js(u'babel-code-frame')))
        var.put(u'_babelCodeFrame2', var.get(u'_interopRequireDefault')(var.get(u'_babelCodeFrame')))
        var.put(u'_defaults', var.get(u'require')(Js(u'lodash/defaults')))
        var.put(u'_defaults2', var.get(u'_interopRequireDefault')(var.get(u'_defaults')))
        var.put(u'_logger', var.get(u'require')(Js(u'./logger')))
        var.put(u'_logger2', var.get(u'_interopRequireDefault')(var.get(u'_logger')))
        var.put(u'_store', var.get(u'require')(Js(u'../../store')))
        var.put(u'_store2', var.get(u'_interopRequireDefault')(var.get(u'_store')))
        var.put(u'_babylon', var.get(u'require')(Js(u'babylon')))
        var.put(u'_util', var.get(u'require')(Js(u'../../util')))
        var.put(u'util', var.get(u'_interopRequireWildcard')(var.get(u'_util')))
        var.put(u'_path', var.get(u'require')(Js(u'path')))
        var.put(u'_path2', var.get(u'_interopRequireDefault')(var.get(u'_path')))
        var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
        var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
        var.put(u'_resolve', var.get(u'require')(Js(u'../../helpers/resolve')))
        var.put(u'_resolve2', var.get(u'_interopRequireDefault')(var.get(u'_resolve')))
        var.put(u'_blockHoist', var.get(u'require')(Js(u'../internal-plugins/block-hoist')))
        var.put(u'_blockHoist2', var.get(u'_interopRequireDefault')(var.get(u'_blockHoist')))
        var.put(u'_shadowFunctions', var.get(u'require')(Js(u'../internal-plugins/shadow-functions')))
        var.put(u'_shadowFunctions2', var.get(u'_interopRequireDefault')(var.get(u'_shadowFunctions')))
        pass
        pass
        var.put(u'shebangRegex', JsRegExp(u'/^#!.*/'))
        var.put(u'INTERNAL_PLUGINS', Js([Js([var.get(u'_blockHoist2').get(u'default')]), Js([var.get(u'_shadowFunctions2').get(u'default')])]))
        @Js
        def PyJs_enter_85_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'enter':PyJs_enter_85_}, var)
            var.registers([u'loc', u'state', u'path'])
            var.put(u'loc', var.get(u'path').get(u'node').get(u'loc'))
            if var.get(u'loc'):
                var.get(u'state').put(u'loc', var.get(u'loc'))
                var.get(u'path').callprop(u'stop')
        PyJs_enter_85_._set_name(u'enter')
        PyJs_Object_84_ = Js({u'enter':PyJs_enter_85_})
        var.put(u'errorVisitor', PyJs_Object_84_)
        @Js
        def PyJs_anonymous_86_(_Store, this, arguments, var=var):
            var = Scope({u'this':this, u'_Store':_Store, u'arguments':arguments}, var)
            var.registers([u'_Store', u'File'])
            @Js
            def PyJsHoisted_File_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'pipeline', u'_this', u'opts'])
                PyJs_Object_87_ = Js({})
                var.put(u'opts', (var.get(u'arguments').get(u'0') if ((var.get(u'arguments').get(u'length')>Js(0.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'0'),var.get(u'undefined'))) else PyJs_Object_87_))
                var.put(u'pipeline', var.get(u'arguments').get(u'1'))
                PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'File'))
                var.put(u'_this', PyJsComma(Js(0.0),var.get(u'_possibleConstructorReturn3').get(u'default'))(var.get(u"this"), var.get(u'_Store').callprop(u'call', var.get(u"this"))))
                var.get(u'_this').put(u'pipeline', var.get(u'pipeline'))
                var.get(u'_this').put(u'log', var.get(u'_logger2').get(u'default').create(var.get(u'_this'), (var.get(u'opts').get(u'filename') or Js(u'unknown'))))
                var.get(u'_this').put(u'opts', var.get(u'_this').callprop(u'initOptions', var.get(u'opts')))
                PyJs_Object_88_ = Js({u'sourceType':var.get(u'_this').get(u'opts').get(u'sourceType'),u'sourceFileName':var.get(u'_this').get(u'opts').get(u'filename'),u'plugins':Js([])})
                var.get(u'_this').put(u'parserOpts', PyJs_Object_88_)
                var.get(u'_this').put(u'pluginVisitors', Js([]))
                var.get(u'_this').put(u'pluginPasses', Js([]))
                var.get(u'_this').callprop(u'buildPluginsForOptions', var.get(u'_this').get(u'opts'))
                if var.get(u'_this').get(u'opts').get(u'passPerPreset'):
                    var.get(u'_this').put(u'perPresetOpts', Js([]))
                    @Js
                    def PyJs_anonymous_89_(presetOpts, this, arguments, var=var):
                        var = Scope({u'this':this, u'presetOpts':presetOpts, u'arguments':arguments}, var)
                        var.registers([u'presetOpts', u'perPresetOpts'])
                        var.put(u'perPresetOpts', PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u'_this').get(u'opts')), var.get(u'presetOpts')))
                        var.get(u'_this').get(u'perPresetOpts').callprop(u'push', var.get(u'perPresetOpts'))
                        var.get(u'_this').callprop(u'buildPluginsForOptions', var.get(u'perPresetOpts'))
                    PyJs_anonymous_89_._set_name(u'anonymous')
                    var.get(u'_this').get(u'opts').get(u'presets').callprop(u'forEach', PyJs_anonymous_89_)
                PyJs_Object_92_ = Js({u'exported':Js([]),u'specifiers':Js([])})
                PyJs_Object_91_ = Js({u'imports':Js([]),u'exports':PyJs_Object_92_})
                PyJs_Object_90_ = Js({u'usedHelpers':Js([]),u'marked':Js([]),u'modules':PyJs_Object_91_})
                var.get(u'_this').put(u'metadata', PyJs_Object_90_)
                PyJs_Object_93_ = Js({})
                var.get(u'_this').put(u'dynamicImportTypes', PyJs_Object_93_)
                PyJs_Object_94_ = Js({})
                var.get(u'_this').put(u'dynamicImportIds', PyJs_Object_94_)
                var.get(u'_this').put(u'dynamicImports', Js([]))
                PyJs_Object_95_ = Js({})
                var.get(u'_this').put(u'declarations', PyJs_Object_95_)
                PyJs_Object_96_ = Js({})
                var.get(u'_this').put(u'usedHelpers', PyJs_Object_96_)
                var.get(u'_this').put(u'path', var.get(u"null"))
                PyJs_Object_97_ = Js({})
                var.get(u'_this').put(u'ast', PyJs_Object_97_)
                var.get(u'_this').put(u'code', Js(u''))
                var.get(u'_this').put(u'shebang', Js(u''))
                var.get(u'_this').put(u'hub', var.get(u'_babelTraverse').get(u'Hub').create(var.get(u'_this')))
                return var.get(u'_this')
            PyJsHoisted_File_.func_name = u'File'
            var.put(u'File', PyJsHoisted_File_)
            PyJsComma(Js(0.0),var.get(u'_inherits3').get(u'default'))(var.get(u'File'), var.get(u'_Store'))
            pass
            @Js
            def PyJs_getMetadata_98_(this, arguments, var=var):
                var = Scope({u'this':this, u'getMetadata':PyJs_getMetadata_98_, u'arguments':arguments}, var)
                var.registers([u'node', u'_isArray', u'_iterator', u'_i', u'_ref', u'has'])
                var.put(u'has', Js(False))
                #for JS loop
                var.put(u'_iterator', var.get(u"this").get(u'ast').get(u'program').get(u'body'))
                var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
                var.put(u'_i', Js(0.0))
                var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
                while 1:
                    pass
                    if var.get(u'_isArray'):
                        if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                            break
                        var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                        if var.get(u'_i').get(u'done'):
                            break
                        var.put(u'_ref', var.get(u'_i').get(u'value'))
                    var.put(u'node', var.get(u'_ref'))
                    if var.get(u't').callprop(u'isModuleDeclaration', var.get(u'node')):
                        var.put(u'has', var.get(u'true'))
                        break
                
                if var.get(u'has'):
                    var.get(u"this").get(u'path').callprop(u'traverse', var.get(u'metadataVisitor'), var.get(u"this"))
            PyJs_getMetadata_98_._set_name(u'getMetadata')
            var.get(u'File').get(u'prototype').put(u'getMetadata', PyJs_getMetadata_98_)
            @Js
            def PyJs_initOptions_99_(opts, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'opts':opts, u'initOptions':PyJs_initOptions_99_}, var)
                var.registers([u'basenameRelative', u'opts'])
                var.put(u'opts', var.get(u'_optionManager2').get(u'default').create(var.get(u"this").get(u'log'), var.get(u"this").get(u'pipeline')).callprop(u'init', var.get(u'opts')))
                if var.get(u'opts').get(u'inputSourceMap'):
                    var.get(u'opts').put(u'sourceMaps', var.get(u'true'))
                if var.get(u'opts').get(u'moduleId'):
                    var.get(u'opts').put(u'moduleIds', var.get(u'true'))
                var.get(u'opts').put(u'basename', var.get(u'_path2').get(u'default').callprop(u'basename', var.get(u'opts').get(u'filename'), var.get(u'_path2').get(u'default').callprop(u'extname', var.get(u'opts').get(u'filename'))))
                var.get(u'opts').put(u'ignore', var.get(u'util').callprop(u'arrayify', var.get(u'opts').get(u'ignore'), var.get(u'util').get(u'regexify')))
                if var.get(u'opts').get(u'only'):
                    var.get(u'opts').put(u'only', var.get(u'util').callprop(u'arrayify', var.get(u'opts').get(u'only'), var.get(u'util').get(u'regexify')))
                PyJs_Object_100_ = Js({u'moduleRoot':var.get(u'opts').get(u'sourceRoot')})
                PyJsComma(Js(0.0),var.get(u'_defaults2').get(u'default'))(var.get(u'opts'), PyJs_Object_100_)
                PyJs_Object_101_ = Js({u'sourceRoot':var.get(u'opts').get(u'moduleRoot')})
                PyJsComma(Js(0.0),var.get(u'_defaults2').get(u'default'))(var.get(u'opts'), PyJs_Object_101_)
                PyJs_Object_102_ = Js({u'filenameRelative':var.get(u'opts').get(u'filename')})
                PyJsComma(Js(0.0),var.get(u'_defaults2').get(u'default'))(var.get(u'opts'), PyJs_Object_102_)
                var.put(u'basenameRelative', var.get(u'_path2').get(u'default').callprop(u'basename', var.get(u'opts').get(u'filenameRelative')))
                PyJs_Object_103_ = Js({u'sourceFileName':var.get(u'basenameRelative'),u'sourceMapTarget':var.get(u'basenameRelative')})
                PyJsComma(Js(0.0),var.get(u'_defaults2').get(u'default'))(var.get(u'opts'), PyJs_Object_103_)
                return var.get(u'opts')
            PyJs_initOptions_99_._set_name(u'initOptions')
            var.get(u'File').get(u'prototype').put(u'initOptions', PyJs_initOptions_99_)
            @Js
            def PyJs_buildPluginsForOptions_104_(opts, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'opts':opts, u'buildPluginsForOptions':PyJs_buildPluginsForOptions_104_}, var)
                var.registers([u'pluginOpts', u'_isArray2', u'plugin', u'_i2', u'_ref2', u'opts', u'plugins', u'currentPluginPasses', u'ref', u'currentPluginVisitors', u'_iterator2'])
                if var.get(u'Array').callprop(u'isArray', var.get(u'opts').get(u'plugins')).neg():
                    return var.get('undefined')
                var.put(u'plugins', var.get(u'opts').get(u'plugins').callprop(u'concat', var.get(u'INTERNAL_PLUGINS')))
                var.put(u'currentPluginVisitors', Js([]))
                var.put(u'currentPluginPasses', Js([]))
                #for JS loop
                var.put(u'_iterator2', var.get(u'plugins'))
                var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
                var.put(u'_i2', Js(0.0))
                var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
                while 1:
                    pass
                    if var.get(u'_isArray2'):
                        if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                            break
                        var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                        if var.get(u'_i2').get(u'done'):
                            break
                        var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                    var.put(u'ref', var.get(u'_ref2'))
                    var.put(u'plugin', var.get(u'ref').get(u'0'))
                    var.put(u'pluginOpts', var.get(u'ref').get(u'1'))
                    var.get(u'currentPluginVisitors').callprop(u'push', var.get(u'plugin').get(u'visitor'))
                    var.get(u'currentPluginPasses').callprop(u'push', var.get(u'_pluginPass2').get(u'default').create(var.get(u"this"), var.get(u'plugin'), var.get(u'pluginOpts')))
                    if var.get(u'plugin').get(u'manipulateOptions'):
                        var.get(u'plugin').callprop(u'manipulateOptions', var.get(u'opts'), var.get(u"this").get(u'parserOpts'), var.get(u"this"))
                
                var.get(u"this").get(u'pluginVisitors').callprop(u'push', var.get(u'currentPluginVisitors'))
                var.get(u"this").get(u'pluginPasses').callprop(u'push', var.get(u'currentPluginPasses'))
            PyJs_buildPluginsForOptions_104_._set_name(u'buildPluginsForOptions')
            var.get(u'File').get(u'prototype').put(u'buildPluginsForOptions', PyJs_buildPluginsForOptions_104_)
            @Js
            def PyJs_getModuleName_105_(this, arguments, var=var):
                var = Scope({u'this':this, u'getModuleName':PyJs_getModuleName_105_, u'arguments':arguments}, var)
                var.registers([u'moduleName', u'sourceRootRegEx', u'opts', u'filenameRelative'])
                var.put(u'opts', var.get(u"this").get(u'opts'))
                if var.get(u'opts').get(u'moduleIds').neg():
                    return var.get(u"null")
                if ((var.get(u'opts').get(u'moduleId')!=var.get(u"null")) and var.get(u'opts').get(u'getModuleId').neg()):
                    return var.get(u'opts').get(u'moduleId')
                var.put(u'filenameRelative', var.get(u'opts').get(u'filenameRelative'))
                var.put(u'moduleName', Js(u''))
                if (var.get(u'opts').get(u'moduleRoot')!=var.get(u"null")):
                    var.put(u'moduleName', (var.get(u'opts').get(u'moduleRoot')+Js(u'/')))
                if var.get(u'opts').get(u'filenameRelative').neg():
                    return (var.get(u'moduleName')+var.get(u'opts').get(u'filename').callprop(u'replace', JsRegExp(u'/^\\//'), Js(u'')))
                if (var.get(u'opts').get(u'sourceRoot')!=var.get(u"null")):
                    var.put(u'sourceRootRegEx', var.get(u'RegExp').create(((Js(u'^')+var.get(u'opts').get(u'sourceRoot'))+Js(u'/?'))))
                    var.put(u'filenameRelative', var.get(u'filenameRelative').callprop(u'replace', var.get(u'sourceRootRegEx'), Js(u'')))
                var.put(u'filenameRelative', var.get(u'filenameRelative').callprop(u'replace', JsRegExp(u'/\\.(\\w*?)$/'), Js(u'')))
                var.put(u'moduleName', var.get(u'filenameRelative'), u'+')
                var.put(u'moduleName', var.get(u'moduleName').callprop(u'replace', JsRegExp(u'/\\\\/g'), Js(u'/')))
                if var.get(u'opts').get(u'getModuleId'):
                    return (var.get(u'opts').callprop(u'getModuleId', var.get(u'moduleName')) or var.get(u'moduleName'))
                else:
                    return var.get(u'moduleName')
            PyJs_getModuleName_105_._set_name(u'getModuleName')
            var.get(u'File').get(u'prototype').put(u'getModuleName', PyJs_getModuleName_105_)
            @Js
            def PyJs_resolveModuleSource_106_(source, this, arguments, var=var):
                var = Scope({u'this':this, u'source':source, u'resolveModuleSource':PyJs_resolveModuleSource_106_, u'arguments':arguments}, var)
                var.registers([u'resolveModuleSource', u'source'])
                var.put(u'resolveModuleSource', var.get(u"this").get(u'opts').get(u'resolveModuleSource'))
                if var.get(u'resolveModuleSource'):
                    var.put(u'source', var.get(u'resolveModuleSource')(var.get(u'source'), var.get(u"this").get(u'opts').get(u'filename')))
                return var.get(u'source')
            PyJs_resolveModuleSource_106_._set_name(u'resolveModuleSource')
            var.get(u'File').get(u'prototype').put(u'resolveModuleSource', PyJs_resolveModuleSource_106_)
            @Js
            def PyJs_addImport_107_(source, imported, this, arguments, var=var):
                var = Scope({u'this':this, u'source':source, u'imported':imported, u'arguments':arguments, u'addImport':PyJs_addImport_107_}, var)
                var.registers([u'specifiers', u'imported', u'name', u'alias', u'source', u'declar', u'id'])
                var.put(u'name', (var.get(u'arguments').get(u'2') if ((var.get(u'arguments').get(u'length')>Js(2.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'2'),var.get(u'undefined'))) else var.get(u'imported')))
                var.put(u'alias', ((var.get(u'source')+Js(u':'))+var.get(u'imported')))
                var.put(u'id', var.get(u"this").get(u'dynamicImportIds').get(var.get(u'alias')))
                if var.get(u'id').neg():
                    var.put(u'source', var.get(u"this").callprop(u'resolveModuleSource', var.get(u'source')))
                    var.put(u'id', var.get(u"this").get(u'dynamicImportIds').put(var.get(u'alias'), var.get(u"this").get(u'scope').callprop(u'generateUidIdentifier', var.get(u'name'))))
                    var.put(u'specifiers', Js([]))
                    if PyJsStrictEq(var.get(u'imported'),Js(u'*')):
                        var.get(u'specifiers').callprop(u'push', var.get(u't').callprop(u'importNamespaceSpecifier', var.get(u'id')))
                    else:
                        if PyJsStrictEq(var.get(u'imported'),Js(u'default')):
                            var.get(u'specifiers').callprop(u'push', var.get(u't').callprop(u'importDefaultSpecifier', var.get(u'id')))
                        else:
                            var.get(u'specifiers').callprop(u'push', var.get(u't').callprop(u'importSpecifier', var.get(u'id'), var.get(u't').callprop(u'identifier', var.get(u'imported'))))
                    var.put(u'declar', var.get(u't').callprop(u'importDeclaration', var.get(u'specifiers'), var.get(u't').callprop(u'stringLiteral', var.get(u'source'))))
                    var.get(u'declar').put(u'_blockHoist', Js(3.0))
                    var.get(u"this").get(u'path').callprop(u'unshiftContainer', Js(u'body'), var.get(u'declar'))
                return var.get(u'id')
            PyJs_addImport_107_._set_name(u'addImport')
            var.get(u'File').get(u'prototype').put(u'addImport', PyJs_addImport_107_)
            @Js
            def PyJs_addHelper_108_(name, this, arguments, var=var):
                var = Scope({u'this':this, u'addHelper':PyJs_addHelper_108_, u'name':name, u'arguments':arguments}, var)
                var.registers([u'uid', u'generator', u'res', u'declar', u'runtime', u'ref', u'name'])
                var.put(u'declar', var.get(u"this").get(u'declarations').get(var.get(u'name')))
                if var.get(u'declar'):
                    return var.get(u'declar')
                if var.get(u"this").get(u'usedHelpers').get(var.get(u'name')).neg():
                    var.get(u"this").get(u'metadata').get(u'usedHelpers').callprop(u'push', var.get(u'name'))
                    var.get(u"this").get(u'usedHelpers').put(var.get(u'name'), var.get(u'true'))
                var.put(u'generator', var.get(u"this").callprop(u'get', Js(u'helperGenerator')))
                var.put(u'runtime', var.get(u"this").callprop(u'get', Js(u'helpersNamespace')))
                if var.get(u'generator'):
                    var.put(u'res', var.get(u'generator')(var.get(u'name')))
                    if var.get(u'res'):
                        return var.get(u'res')
                else:
                    if var.get(u'runtime'):
                        return var.get(u't').callprop(u'memberExpression', var.get(u'runtime'), var.get(u't').callprop(u'identifier', var.get(u'name')))
                var.put(u'ref', PyJsComma(Js(0.0),var.get(u'_babelHelpers2').get(u'default'))(var.get(u'name')))
                var.put(u'uid', var.get(u"this").get(u'declarations').put(var.get(u'name'), var.get(u"this").get(u'scope').callprop(u'generateUidIdentifier', var.get(u'name'))))
                if (var.get(u't').callprop(u'isFunctionExpression', var.get(u'ref')) and var.get(u'ref').get(u'id').neg()):
                    var.get(u'ref').get(u'body').put(u'_compact', var.get(u'true'))
                    var.get(u'ref').put(u'_generated', var.get(u'true'))
                    var.get(u'ref').put(u'id', var.get(u'uid'))
                    var.get(u'ref').put(u'type', Js(u'FunctionDeclaration'))
                    var.get(u"this").get(u'path').callprop(u'unshiftContainer', Js(u'body'), var.get(u'ref'))
                else:
                    var.get(u'ref').put(u'_compact', var.get(u'true'))
                    PyJs_Object_109_ = Js({u'id':var.get(u'uid'),u'init':var.get(u'ref'),u'unique':var.get(u'true')})
                    var.get(u"this").get(u'scope').callprop(u'push', PyJs_Object_109_)
                return var.get(u'uid')
            PyJs_addHelper_108_._set_name(u'addHelper')
            var.get(u'File').get(u'prototype').put(u'addHelper', PyJs_addHelper_108_)
            @Js
            def PyJs_addTemplateObject_110_(helperName, strings, raw, this, arguments, var=var):
                var = Scope({u'this':this, u'helperName':helperName, u'raw':raw, u'arguments':arguments, u'addTemplateObject':PyJs_addTemplateObject_110_, u'strings':strings}, var)
                var.registers([u'name', u'helperName', u'raw', u'init', u'declar', u'stringIds', u'helperId', u'strings', u'uid'])
                @Js
                def PyJs_anonymous_111_(string, this, arguments, var=var):
                    var = Scope({u'this':this, u'string':string, u'arguments':arguments}, var)
                    var.registers([u'string'])
                    return var.get(u'string').get(u'value')
                PyJs_anonymous_111_._set_name(u'anonymous')
                var.put(u'stringIds', var.get(u'raw').get(u'elements').callprop(u'map', PyJs_anonymous_111_))
                var.put(u'name', ((((var.get(u'helperName')+Js(u'_'))+var.get(u'raw').get(u'elements').get(u'length'))+Js(u'_'))+var.get(u'stringIds').callprop(u'join', Js(u','))))
                var.put(u'declar', var.get(u"this").get(u'declarations').get(var.get(u'name')))
                if var.get(u'declar'):
                    return var.get(u'declar')
                var.put(u'uid', var.get(u"this").get(u'declarations').put(var.get(u'name'), var.get(u"this").get(u'scope').callprop(u'generateUidIdentifier', Js(u'templateObject'))))
                var.put(u'helperId', var.get(u"this").callprop(u'addHelper', var.get(u'helperName')))
                var.put(u'init', var.get(u't').callprop(u'callExpression', var.get(u'helperId'), Js([var.get(u'strings'), var.get(u'raw')])))
                var.get(u'init').put(u'_compact', var.get(u'true'))
                PyJs_Object_112_ = Js({u'id':var.get(u'uid'),u'init':var.get(u'init'),u'_blockHoist':Js(1.9)})
                var.get(u"this").get(u'scope').callprop(u'push', PyJs_Object_112_)
                return var.get(u'uid')
            PyJs_addTemplateObject_110_._set_name(u'addTemplateObject')
            var.get(u'File').get(u'prototype').put(u'addTemplateObject', PyJs_addTemplateObject_110_)
            @Js
            def PyJs_buildCodeFrameError_113_(node, msg, this, arguments, var=var):
                var = Scope({u'node':node, u'msg':msg, u'buildCodeFrameError':PyJs_buildCodeFrameError_113_, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node', u'loc', u'msg', u'err', u'Error'])
                var.put(u'Error', (var.get(u'arguments').get(u'2') if ((var.get(u'arguments').get(u'length')>Js(2.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'2'),var.get(u'undefined'))) else var.get(u'SyntaxError')))
                var.put(u'loc', (var.get(u'node') and (var.get(u'node').get(u'loc') or var.get(u'node').get(u'_loc'))))
                var.put(u'err', var.get(u'Error').create(var.get(u'msg')))
                if var.get(u'loc'):
                    var.get(u'err').put(u'loc', var.get(u'loc').get(u'start'))
                else:
                    PyJsComma(Js(0.0),var.get(u'_babelTraverse2').get(u'default'))(var.get(u'node'), var.get(u'errorVisitor'), var.get(u"this").get(u'scope'), var.get(u'err'))
                    var.get(u'err').put(u'message', Js(u' (This is an error on an internal node. Probably an internal error'), u'+')
                    if var.get(u'err').get(u'loc'):
                        var.get(u'err').put(u'message', Js(u'. Location has been estimated.'), u'+')
                    var.get(u'err').put(u'message', Js(u')'), u'+')
                return var.get(u'err')
            PyJs_buildCodeFrameError_113_._set_name(u'buildCodeFrameError')
            var.get(u'File').get(u'prototype').put(u'buildCodeFrameError', PyJs_buildCodeFrameError_113_)
            @Js
            def PyJs_mergeSourceMap_114_(map, this, arguments, var=var):
                var = Scope({u'this':this, u'map':map, u'arguments':arguments, u'mergeSourceMap':PyJs_mergeSourceMap_114_}, var)
                var.registers([u'_ret', u'map', u'inputMap'])
                var.put(u'inputMap', var.get(u"this").get(u'opts').get(u'inputSourceMap'))
                if var.get(u'inputMap'):
                    @Js
                    def PyJs_anonymous_115_(this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments}, var)
                        var.registers([u'mergedGenerator', u'source', u'mergedMap', u'outputMapConsumer', u'inputMapConsumer'])
                        var.put(u'inputMapConsumer', var.get(u'_sourceMap2').get(u'default').get(u'SourceMapConsumer').create(var.get(u'inputMap')))
                        var.put(u'outputMapConsumer', var.get(u'_sourceMap2').get(u'default').get(u'SourceMapConsumer').create(var.get(u'map')))
                        PyJs_Object_116_ = Js({u'file':var.get(u'inputMapConsumer').get(u'file'),u'sourceRoot':var.get(u'inputMapConsumer').get(u'sourceRoot')})
                        var.put(u'mergedGenerator', var.get(u'_sourceMap2').get(u'default').get(u'SourceMapGenerator').create(PyJs_Object_116_))
                        var.put(u'source', var.get(u'outputMapConsumer').get(u'sources').get(u'0'))
                        @Js
                        def PyJs_anonymous_117_(mapping, this, arguments, var=var):
                            var = Scope({u'this':this, u'mapping':mapping, u'arguments':arguments}, var)
                            var.registers([u'generatedPosition', u'mapping'])
                            PyJs_Object_118_ = Js({u'line':var.get(u'mapping').get(u'generatedLine'),u'column':var.get(u'mapping').get(u'generatedColumn'),u'source':var.get(u'source')})
                            var.put(u'generatedPosition', var.get(u'outputMapConsumer').callprop(u'generatedPositionFor', PyJs_Object_118_))
                            if (var.get(u'generatedPosition').get(u'column')!=var.get(u"null")):
                                PyJs_Object_120_ = Js({u'line':var.get(u'mapping').get(u'originalLine'),u'column':var.get(u'mapping').get(u'originalColumn')})
                                PyJs_Object_119_ = Js({u'source':var.get(u'mapping').get(u'source'),u'original':(var.get(u"null") if (var.get(u'mapping').get(u'source')==var.get(u"null")) else PyJs_Object_120_),u'generated':var.get(u'generatedPosition')})
                                var.get(u'mergedGenerator').callprop(u'addMapping', PyJs_Object_119_)
                        PyJs_anonymous_117_._set_name(u'anonymous')
                        var.get(u'inputMapConsumer').callprop(u'eachMapping', PyJs_anonymous_117_)
                        var.put(u'mergedMap', var.get(u'mergedGenerator').callprop(u'toJSON'))
                        var.get(u'inputMap').put(u'mappings', var.get(u'mergedMap').get(u'mappings'))
                        PyJs_Object_121_ = Js({u'v':var.get(u'inputMap')})
                        return PyJs_Object_121_
                    PyJs_anonymous_115_._set_name(u'anonymous')
                    var.put(u'_ret', PyJs_anonymous_115_())
                    if PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'_ret',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'_ret'))),Js(u'object')):
                        return var.get(u'_ret').get(u'v')
                else:
                    return var.get(u'map')
            PyJs_mergeSourceMap_114_._set_name(u'mergeSourceMap')
            var.get(u'File').get(u'prototype').put(u'mergeSourceMap', PyJs_mergeSourceMap_114_)
            @Js
            def PyJs_parse_122_(code, this, arguments, var=var):
                var = Scope({u'this':this, u'parse':PyJs_parse_122_, u'code':code, u'arguments':arguments}, var)
                var.registers([u'code', u'ast', u'parser', u'parseCode', u'dirname', u'parserOpts'])
                var.put(u'parseCode', var.get(u'_babylon').get(u'parse'))
                var.put(u'parserOpts', var.get(u"this").get(u'opts').get(u'parserOpts'))
                if var.get(u'parserOpts'):
                    PyJs_Object_123_ = Js({})
                    var.put(u'parserOpts', PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(PyJs_Object_123_, var.get(u"this").get(u'parserOpts'), var.get(u'parserOpts')))
                    if var.get(u'parserOpts').get(u'parser'):
                        if PyJsStrictEq(var.get(u'parserOpts').get(u'parser').typeof(),Js(u'string')):
                            var.put(u'dirname', (var.get(u'_path2').get(u'default').callprop(u'dirname', var.get(u"this").get(u'opts').get(u'filename')) or var.get(u'process').callprop(u'cwd')))
                            var.put(u'parser', PyJsComma(Js(0.0),var.get(u'_resolve2').get(u'default'))(var.get(u'parserOpts').get(u'parser'), var.get(u'dirname')))
                            if var.get(u'parser'):
                                var.put(u'parseCode', var.get(u'require')(var.get(u'parser')).get(u'parse'))
                            else:
                                PyJsTempException = JsToPyException(var.get(u'Error').create((((Js(u"Couldn't find parser ")+var.get(u'parserOpts').get(u'parser'))+Js(u' with "parse" method relative to directory '))+var.get(u'dirname'))))
                                raise PyJsTempException
                        else:
                            var.put(u'parseCode', var.get(u'parserOpts').get(u'parser'))
                        @Js
                        def PyJs_parse_125_(source, this, arguments, var=var):
                            var = Scope({u'this':this, u'source':source, u'parse':PyJs_parse_125_, u'arguments':arguments}, var)
                            var.registers([u'source'])
                            return PyJsComma(Js(0.0),var.get(u'_babylon').get(u'parse'))(var.get(u'source'), var.get(u'parserOpts'))
                        PyJs_parse_125_._set_name(u'parse')
                        PyJs_Object_124_ = Js({u'parse':PyJs_parse_125_})
                        var.get(u'parserOpts').put(u'parser', PyJs_Object_124_)
                var.get(u"this").get(u'log').callprop(u'debug', Js(u'Parse start'))
                var.put(u'ast', var.get(u'parseCode')(var.get(u'code'), (var.get(u'parserOpts') or var.get(u"this").get(u'parserOpts'))))
                var.get(u"this").get(u'log').callprop(u'debug', Js(u'Parse stop'))
                return var.get(u'ast')
            PyJs_parse_122_._set_name(u'parse')
            var.get(u'File').get(u'prototype').put(u'parse', PyJs_parse_122_)
            @Js
            def PyJs__addAst_126_(ast, this, arguments, var=var):
                var = Scope({u'this':this, u'_addAst':PyJs__addAst_126_, u'arguments':arguments, u'ast':ast}, var)
                var.registers([u'ast'])
                PyJs_Object_127_ = Js({u'hub':var.get(u"this").get(u'hub'),u'parentPath':var.get(u"null"),u'parent':var.get(u'ast'),u'container':var.get(u'ast'),u'key':Js(u'program')})
                var.get(u"this").put(u'path', var.get(u'_babelTraverse').get(u'NodePath').callprop(u'get', PyJs_Object_127_).callprop(u'setContext'))
                var.get(u"this").put(u'scope', var.get(u"this").get(u'path').get(u'scope'))
                var.get(u"this").put(u'ast', var.get(u'ast'))
                var.get(u"this").callprop(u'getMetadata')
            PyJs__addAst_126_._set_name(u'_addAst')
            var.get(u'File').get(u'prototype').put(u'_addAst', PyJs__addAst_126_)
            @Js
            def PyJs_addAst_128_(ast, this, arguments, var=var):
                var = Scope({u'this':this, u'addAst':PyJs_addAst_128_, u'arguments':arguments, u'ast':ast}, var)
                var.registers([u'ast'])
                var.get(u"this").get(u'log').callprop(u'debug', Js(u'Start set AST'))
                var.get(u"this").callprop(u'_addAst', var.get(u'ast'))
                var.get(u"this").get(u'log').callprop(u'debug', Js(u'End set AST'))
            PyJs_addAst_128_._set_name(u'addAst')
            var.get(u'File').get(u'prototype').put(u'addAst', PyJs_addAst_128_)
            @Js
            def PyJs_transform_129_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'transform':PyJs_transform_129_}, var)
                var.registers([u'i', u'visitor', u'pluginPasses'])
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u"this").get(u'pluginPasses').get(u'length')):
                    try:
                        var.put(u'pluginPasses', var.get(u"this").get(u'pluginPasses').get(var.get(u'i')))
                        var.get(u"this").callprop(u'call', Js(u'pre'), var.get(u'pluginPasses'))
                        var.get(u"this").get(u'log').callprop(u'debug', Js(u'Start transform traverse'))
                        var.put(u'visitor', var.get(u'_babelTraverse2').get(u'default').get(u'visitors').callprop(u'merge', var.get(u"this").get(u'pluginVisitors').get(var.get(u'i')), var.get(u'pluginPasses'), var.get(u"this").get(u'opts').get(u'wrapPluginVisitorMethod')))
                        PyJsComma(Js(0.0),var.get(u'_babelTraverse2').get(u'default'))(var.get(u"this").get(u'ast'), var.get(u'visitor'), var.get(u"this").get(u'scope'))
                        var.get(u"this").get(u'log').callprop(u'debug', Js(u'End transform traverse'))
                        var.get(u"this").callprop(u'call', Js(u'post'), var.get(u'pluginPasses'))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                return var.get(u"this").callprop(u'generate')
            PyJs_transform_129_._set_name(u'transform')
            var.get(u'File').get(u'prototype').put(u'transform', PyJs_transform_129_)
            @Js
            def PyJs_wrap_130_(code, callback, this, arguments, var=var):
                var = Scope({u'this':this, u'callback':callback, u'code':code, u'arguments':arguments, u'wrap':PyJs_wrap_130_}, var)
                var.registers([u'loc', u'message', u'code', u'newStack', u'callback'])
                var.put(u'code', (var.get(u'code')+Js(u'')))
                try:
                    if var.get(u"this").callprop(u'shouldIgnore'):
                        PyJs_Object_131_ = Js({u'code':var.get(u'code'),u'ignored':var.get(u'true')})
                        return var.get(u"this").callprop(u'makeResult', PyJs_Object_131_)
                    else:
                        return var.get(u'callback')()
                except PyJsException as PyJsTempException:
                    PyJsHolder_657272_50892639 = var.own.get(u'err')
                    var.force_own_put(u'err', PyExceptionToJs(PyJsTempException))
                    try:
                        if var.get(u'err').get(u'_babel'):
                            PyJsTempException = JsToPyException(var.get(u'err'))
                            raise PyJsTempException
                        else:
                            var.get(u'err').put(u'_babel', var.get(u'true'))
                        var.put(u'message', var.get(u'err').put(u'message', ((var.get(u"this").get(u'opts').get(u'filename')+Js(u': '))+var.get(u'err').get(u'message'))))
                        var.put(u'loc', var.get(u'err').get(u'loc'))
                        if var.get(u'loc'):
                            var.get(u'err').put(u'codeFrame', PyJsComma(Js(0.0),var.get(u'_babelCodeFrame2').get(u'default'))(var.get(u'code'), var.get(u'loc').get(u'line'), (var.get(u'loc').get(u'column')+Js(1.0)), var.get(u"this").get(u'opts')))
                            var.put(u'message', (Js(u'\n')+var.get(u'err').get(u'codeFrame')), u'+')
                        if var.get(u'process').get(u'browser'):
                            var.get(u'err').put(u'message', var.get(u'message'))
                        if var.get(u'err').get(u'stack'):
                            var.put(u'newStack', var.get(u'err').get(u'stack').callprop(u'replace', var.get(u'err').get(u'message'), var.get(u'message')))
                            var.get(u'err').put(u'stack', var.get(u'newStack'))
                        PyJsTempException = JsToPyException(var.get(u'err'))
                        raise PyJsTempException
                    finally:
                        if PyJsHolder_657272_50892639 is not None:
                            var.own[u'err'] = PyJsHolder_657272_50892639
                        else:
                            del var.own[u'err']
                        del PyJsHolder_657272_50892639
            PyJs_wrap_130_._set_name(u'wrap')
            var.get(u'File').get(u'prototype').put(u'wrap', PyJs_wrap_130_)
            @Js
            def PyJs_addCode_132_(code, this, arguments, var=var):
                var = Scope({u'this':this, u'addCode':PyJs_addCode_132_, u'code':code, u'arguments':arguments}, var)
                var.registers([u'code'])
                var.put(u'code', ((var.get(u'code') or Js(u''))+Js(u'')))
                var.put(u'code', var.get(u"this").callprop(u'parseInputSourceMap', var.get(u'code')))
                var.get(u"this").put(u'code', var.get(u'code'))
            PyJs_addCode_132_._set_name(u'addCode')
            var.get(u'File').get(u'prototype').put(u'addCode', PyJs_addCode_132_)
            @Js
            def PyJs_parseCode_133_(this, arguments, var=var):
                var = Scope({u'this':this, u'parseCode':PyJs_parseCode_133_, u'arguments':arguments}, var)
                var.registers([u'ast'])
                var.get(u"this").callprop(u'parseShebang')
                var.put(u'ast', var.get(u"this").callprop(u'parse', var.get(u"this").get(u'code')))
                var.get(u"this").callprop(u'addAst', var.get(u'ast'))
            PyJs_parseCode_133_._set_name(u'parseCode')
            var.get(u'File').get(u'prototype').put(u'parseCode', PyJs_parseCode_133_)
            @Js
            def PyJs_shouldIgnore_134_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'shouldIgnore':PyJs_shouldIgnore_134_}, var)
                var.registers([u'opts'])
                var.put(u'opts', var.get(u"this").get(u'opts'))
                return var.get(u'util').callprop(u'shouldIgnore', var.get(u'opts').get(u'filename'), var.get(u'opts').get(u'ignore'), var.get(u'opts').get(u'only'))
            PyJs_shouldIgnore_134_._set_name(u'shouldIgnore')
            var.get(u'File').get(u'prototype').put(u'shouldIgnore', PyJs_shouldIgnore_134_)
            @Js
            def PyJs_call_135_(key, pluginPasses, this, arguments, var=var):
                var = Scope({u'this':this, u'call':PyJs_call_135_, u'pluginPasses':pluginPasses, u'key':key, u'arguments':arguments}, var)
                var.registers([u'_isArray3', u'pluginPasses', u'plugin', u'_ref3', u'_i3', u'fn', u'key', u'pass', u'_iterator3'])
                #for JS loop
                var.put(u'_iterator3', var.get(u'pluginPasses'))
                var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
                var.put(u'_i3', Js(0.0))
                var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
                while 1:
                    pass
                    if var.get(u'_isArray3'):
                        if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                            break
                        var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                        if var.get(u'_i3').get(u'done'):
                            break
                        var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                    var.put(u'pass', var.get(u'_ref3'))
                    var.put(u'plugin', var.get(u'pass').get(u'plugin'))
                    var.put(u'fn', var.get(u'plugin').get(var.get(u'key')))
                    if var.get(u'fn'):
                        var.get(u'fn').callprop(u'call', var.get(u'pass'), var.get(u"this"))
                
            PyJs_call_135_._set_name(u'call')
            var.get(u'File').get(u'prototype').put(u'call', PyJs_call_135_)
            @Js
            def PyJs_parseInputSourceMap_136_(code, this, arguments, var=var):
                var = Scope({u'this':this, u'parseInputSourceMap':PyJs_parseInputSourceMap_136_, u'code':code, u'arguments':arguments}, var)
                var.registers([u'code', u'inputMap', u'opts'])
                var.put(u'opts', var.get(u"this").get(u'opts'))
                if PyJsStrictNeq(var.get(u'opts').get(u'inputSourceMap'),Js(False)):
                    var.put(u'inputMap', var.get(u'_convertSourceMap2').get(u'default').callprop(u'fromSource', var.get(u'code')))
                    if var.get(u'inputMap'):
                        var.get(u'opts').put(u'inputSourceMap', var.get(u'inputMap').callprop(u'toObject'))
                        var.put(u'code', var.get(u'_convertSourceMap2').get(u'default').callprop(u'removeComments', var.get(u'code')))
                return var.get(u'code')
            PyJs_parseInputSourceMap_136_._set_name(u'parseInputSourceMap')
            var.get(u'File').get(u'prototype').put(u'parseInputSourceMap', PyJs_parseInputSourceMap_136_)
            @Js
            def PyJs_parseShebang_137_(this, arguments, var=var):
                var = Scope({u'this':this, u'parseShebang':PyJs_parseShebang_137_, u'arguments':arguments}, var)
                var.registers([u'shebangMatch'])
                var.put(u'shebangMatch', var.get(u'shebangRegex').callprop(u'exec', var.get(u"this").get(u'code')))
                if var.get(u'shebangMatch'):
                    var.get(u"this").put(u'shebang', var.get(u'shebangMatch').get(u'0'))
                    var.get(u"this").put(u'code', var.get(u"this").get(u'code').callprop(u'replace', var.get(u'shebangRegex'), Js(u'')))
            PyJs_parseShebang_137_._set_name(u'parseShebang')
            var.get(u'File').get(u'prototype').put(u'parseShebang', PyJs_parseShebang_137_)
            @Js
            def PyJs_makeResult_138_(_ref4, this, arguments, var=var):
                var = Scope({u'this':this, u'makeResult':PyJs_makeResult_138_, u'_ref4':_ref4, u'arguments':arguments}, var)
                var.registers([u'ignored', u'code', u'map', u'_ref4', u'ast', u'result'])
                var.put(u'code', var.get(u'_ref4').get(u'code'))
                var.put(u'map', var.get(u'_ref4').get(u'map'))
                var.put(u'ast', var.get(u'_ref4').get(u'ast'))
                var.put(u'ignored', var.get(u'_ref4').get(u'ignored'))
                PyJs_Object_139_ = Js({u'metadata':var.get(u"null"),u'options':var.get(u"this").get(u'opts'),u'ignored':var.get(u'ignored').neg().neg(),u'code':var.get(u"null"),u'ast':var.get(u"null"),u'map':(var.get(u'map') or var.get(u"null"))})
                var.put(u'result', PyJs_Object_139_)
                if var.get(u"this").get(u'opts').get(u'code'):
                    var.get(u'result').put(u'code', var.get(u'code'))
                if var.get(u"this").get(u'opts').get(u'ast'):
                    var.get(u'result').put(u'ast', var.get(u'ast'))
                if var.get(u"this").get(u'opts').get(u'metadata'):
                    var.get(u'result').put(u'metadata', var.get(u"this").get(u'metadata'))
                return var.get(u'result')
            PyJs_makeResult_138_._set_name(u'makeResult')
            var.get(u'File').get(u'prototype').put(u'makeResult', PyJs_makeResult_138_)
            @Js
            def PyJs_generate_140_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'generate':PyJs_generate_140_}, var)
                var.registers([u'_result', u'generator', u'ast', u'result', u'dirname', u'gen', u'opts'])
                var.put(u'opts', var.get(u"this").get(u'opts'))
                var.put(u'ast', var.get(u"this").get(u'ast'))
                PyJs_Object_141_ = Js({u'ast':var.get(u'ast')})
                var.put(u'result', PyJs_Object_141_)
                if var.get(u'opts').get(u'code').neg():
                    return var.get(u"this").callprop(u'makeResult', var.get(u'result'))
                var.put(u'gen', var.get(u'_babelGenerator2').get(u'default'))
                if var.get(u'opts').get(u'generatorOpts').get(u'generator'):
                    var.put(u'gen', var.get(u'opts').get(u'generatorOpts').get(u'generator'))
                    if PyJsStrictEq(var.get(u'gen',throw=False).typeof(),Js(u'string')):
                        var.put(u'dirname', (var.get(u'_path2').get(u'default').callprop(u'dirname', var.get(u"this").get(u'opts').get(u'filename')) or var.get(u'process').callprop(u'cwd')))
                        var.put(u'generator', PyJsComma(Js(0.0),var.get(u'_resolve2').get(u'default'))(var.get(u'gen'), var.get(u'dirname')))
                        if var.get(u'generator'):
                            var.put(u'gen', var.get(u'require')(var.get(u'generator')).get(u'print'))
                        else:
                            PyJsTempException = JsToPyException(var.get(u'Error').create((((Js(u"Couldn't find generator ")+var.get(u'gen'))+Js(u' with "print" method relative to directory '))+var.get(u'dirname'))))
                            raise PyJsTempException
                var.get(u"this").get(u'log').callprop(u'debug', Js(u'Generation start'))
                var.put(u'_result', var.get(u'gen')(var.get(u'ast'), (PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'opts'), var.get(u'opts').get(u'generatorOpts')) if var.get(u'opts').get(u'generatorOpts') else var.get(u'opts')), var.get(u"this").get(u'code')))
                var.get(u'result').put(u'code', var.get(u'_result').get(u'code'))
                var.get(u'result').put(u'map', var.get(u'_result').get(u'map'))
                var.get(u"this").get(u'log').callprop(u'debug', Js(u'Generation end'))
                if var.get(u"this").get(u'shebang'):
                    var.get(u'result').put(u'code', ((var.get(u"this").get(u'shebang')+Js(u'\n'))+var.get(u'result').get(u'code')))
                if var.get(u'result').get(u'map'):
                    var.get(u'result').put(u'map', var.get(u"this").callprop(u'mergeSourceMap', var.get(u'result').get(u'map')))
                if (PyJsStrictEq(var.get(u'opts').get(u'sourceMaps'),Js(u'inline')) or PyJsStrictEq(var.get(u'opts').get(u'sourceMaps'),Js(u'both'))):
                    var.get(u'result').put(u'code', (Js(u'\n')+var.get(u'_convertSourceMap2').get(u'default').callprop(u'fromObject', var.get(u'result').get(u'map')).callprop(u'toComment')), u'+')
                if PyJsStrictEq(var.get(u'opts').get(u'sourceMaps'),Js(u'inline')):
                    var.get(u'result').put(u'map', var.get(u"null"))
                return var.get(u"this").callprop(u'makeResult', var.get(u'result'))
            PyJs_generate_140_._set_name(u'generate')
            var.get(u'File').get(u'prototype').put(u'generate', PyJs_generate_140_)
            return var.get(u'File')
        PyJs_anonymous_86_._set_name(u'anonymous')
        var.put(u'File', PyJs_anonymous_86_(var.get(u'_store2').get(u'default')))
        var.get(u'exports').put(u'default', var.get(u'File'))
        var.get(u'exports').put(u'File', var.get(u'File'))
    PyJs_anonymous_81_._set_name(u'anonymous')
    PyJs_anonymous_81_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')))
PyJs_anonymous_80_._set_name(u'anonymous')
PyJs_Object_142_ = Js({u'../../helpers/resolve':Js(9.0),u'../../store':Js(10.0),u'../../util':Js(26.0),u'../internal-plugins/block-hoist':Js(21.0),u'../internal-plugins/shadow-functions':Js(22.0),u'../plugin-pass':Js(24.0),u'./logger':Js(13.0),u'./metadata':Js(14.0),u'./options/option-manager':Js(18.0),u'_process':Js(531.0),u'babel-code-frame':Js(4.0),u'babel-generator':Js(40.0),u'babel-helpers':Js(56.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/object/assign':Js(100.0),u'babel-runtime/core-js/object/create':Js(101.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-runtime/helpers/inherits':Js(111.0),u'babel-runtime/helpers/possibleConstructorReturn':Js(113.0),u'babel-runtime/helpers/typeof':Js(114.0),u'babel-traverse':Js(225.0),u'babel-types':Js(258.0),u'babylon':Js(262.0),u'convert-source-map':Js(267.0),u'lodash/defaults':Js(442.0),u'path':Js(530.0),u'source-map':Js(519.0)})
@Js
def PyJs_anonymous_143_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'seenDeprecatedMessages', u'require', u'module', u'_node2', u'_node', u'verboseDebug', u'_interopRequireDefault', u'generalDebug', u'_classCallCheck3', u'_classCallCheck2', u'Logger'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_144_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_144_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_node', var.get(u'require')(Js(u'debug/node')))
    var.put(u'_node2', var.get(u'_interopRequireDefault')(var.get(u'_node')))
    pass
    var.put(u'verboseDebug', PyJsComma(Js(0.0),var.get(u'_node2').get(u'default'))(Js(u'babel:verbose')))
    var.put(u'generalDebug', PyJsComma(Js(0.0),var.get(u'_node2').get(u'default'))(Js(u'babel')))
    var.put(u'seenDeprecatedMessages', Js([]))
    @Js
    def PyJs_anonymous_145_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'Logger'])
        @Js
        def PyJsHoisted_Logger_(file, filename, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'file':file, u'filename':filename}, var)
            var.registers([u'file', u'filename'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Logger'))
            var.get(u"this").put(u'filename', var.get(u'filename'))
            var.get(u"this").put(u'file', var.get(u'file'))
        PyJsHoisted_Logger_.func_name = u'Logger'
        var.put(u'Logger', PyJsHoisted_Logger_)
        pass
        @Js
        def PyJs__buildMessage_146_(msg, this, arguments, var=var):
            var = Scope({u'msg':msg, u'this':this, u'_buildMessage':PyJs__buildMessage_146_, u'arguments':arguments}, var)
            var.registers([u'msg', u'parts'])
            var.put(u'parts', (Js(u'[BABEL] ')+var.get(u"this").get(u'filename')))
            if var.get(u'msg'):
                var.put(u'parts', (Js(u': ')+var.get(u'msg')), u'+')
            return var.get(u'parts')
        PyJs__buildMessage_146_._set_name(u'_buildMessage')
        var.get(u'Logger').get(u'prototype').put(u'_buildMessage', PyJs__buildMessage_146_)
        @Js
        def PyJs_warn_147_(msg, this, arguments, var=var):
            var = Scope({u'msg':msg, u'this':this, u'warn':PyJs_warn_147_, u'arguments':arguments}, var)
            var.registers([u'msg'])
            var.get(u'console').callprop(u'warn', var.get(u"this").callprop(u'_buildMessage', var.get(u'msg')))
        PyJs_warn_147_._set_name(u'warn')
        var.get(u'Logger').get(u'prototype').put(u'warn', PyJs_warn_147_)
        @Js
        def PyJs_error_148_(msg, this, arguments, var=var):
            var = Scope({u'msg':msg, u'this':this, u'arguments':arguments, u'error':PyJs_error_148_}, var)
            var.registers([u'msg', u'Constructor'])
            var.put(u'Constructor', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else var.get(u'Error')))
            PyJsTempException = JsToPyException(var.get(u'Constructor').create(var.get(u"this").callprop(u'_buildMessage', var.get(u'msg'))))
            raise PyJsTempException
        PyJs_error_148_._set_name(u'error')
        var.get(u'Logger').get(u'prototype').put(u'error', PyJs_error_148_)
        @Js
        def PyJs_deprecate_149_(msg, this, arguments, var=var):
            var = Scope({u'msg':msg, u'this':this, u'deprecate':PyJs_deprecate_149_, u'arguments':arguments}, var)
            var.registers([u'msg'])
            if (var.get(u"this").get(u'file').get(u'opts') and var.get(u"this").get(u'file').get(u'opts').get(u'suppressDeprecationMessages')):
                return var.get('undefined')
            var.put(u'msg', var.get(u"this").callprop(u'_buildMessage', var.get(u'msg')))
            if (var.get(u'seenDeprecatedMessages').callprop(u'indexOf', var.get(u'msg'))>=Js(0.0)):
                return var.get('undefined')
            var.get(u'seenDeprecatedMessages').callprop(u'push', var.get(u'msg'))
            var.get(u'console').callprop(u'error', var.get(u'msg'))
        PyJs_deprecate_149_._set_name(u'deprecate')
        var.get(u'Logger').get(u'prototype').put(u'deprecate', PyJs_deprecate_149_)
        @Js
        def PyJs_verbose_150_(msg, this, arguments, var=var):
            var = Scope({u'msg':msg, u'this':this, u'arguments':arguments, u'verbose':PyJs_verbose_150_}, var)
            var.registers([u'msg'])
            if var.get(u'verboseDebug').get(u'enabled'):
                var.get(u'verboseDebug')(var.get(u"this").callprop(u'_buildMessage', var.get(u'msg')))
        PyJs_verbose_150_._set_name(u'verbose')
        var.get(u'Logger').get(u'prototype').put(u'verbose', PyJs_verbose_150_)
        @Js
        def PyJs_debug_151_(msg, this, arguments, var=var):
            var = Scope({u'msg':msg, u'this':this, u'arguments':arguments, u'debug':PyJs_debug_151_}, var)
            var.registers([u'msg'])
            if var.get(u'generalDebug').get(u'enabled'):
                var.get(u'generalDebug')(var.get(u"this").callprop(u'_buildMessage', var.get(u'msg')))
        PyJs_debug_151_._set_name(u'debug')
        var.get(u'Logger').get(u'prototype').put(u'debug', PyJs_debug_151_)
        @Js
        def PyJs_deopt_152_(node, msg, this, arguments, var=var):
            var = Scope({u'node':node, u'msg':msg, u'this':this, u'arguments':arguments, u'deopt':PyJs_deopt_152_}, var)
            var.registers([u'node', u'msg'])
            var.get(u"this").callprop(u'debug', var.get(u'msg'))
        PyJs_deopt_152_._set_name(u'deopt')
        var.get(u'Logger').get(u'prototype').put(u'deopt', PyJs_deopt_152_)
        return var.get(u'Logger')
    PyJs_anonymous_145_._set_name(u'anonymous')
    var.put(u'Logger', PyJs_anonymous_145_())
    var.get(u'exports').put(u'default', var.get(u'Logger'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_143_._set_name(u'anonymous')
PyJs_Object_153_ = Js({u'babel-runtime/helpers/classCallCheck':Js(110.0),u'debug/node':Js(270.0)})
@Js
def PyJs_anonymous_154_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'ExportDeclaration', u'ModuleDeclaration', u'_interopRequireWildcard', u'ImportDeclaration', u'require', u'_babelTypes', u'module', u't', u'_interopRequireDefault', u'Scope', u'_getIterator2', u'_getIterator3'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_156_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_156_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_Scope_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
        var.registers([u'path'])
        var.get(u'path').callprop(u'skip')
    PyJsHoisted_Scope_.func_name = u'Scope'
    var.put(u'Scope', PyJsHoisted_Scope_)
    @Js
    def PyJsHoisted_ExportDeclaration_(path, file, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'file':file}, var)
        var.registers([u'node', u'specifier', u'exports', u'name', u'_i2', u'_ref2', u'source', u'declar', u'_isArray2', u'exported', u'file', u'path', u'bindings', u'local', u'_iterator2'])
        var.put(u'node', var.get(u'path').get(u'node'))
        var.put(u'source', (var.get(u'node').get(u'source').get(u'value') if var.get(u'node').get(u'source') else var.get(u"null")))
        var.put(u'exports', var.get(u'file').get(u'metadata').get(u'modules').get(u'exports'))
        var.put(u'declar', var.get(u'path').callprop(u'get', Js(u'declaration')))
        if var.get(u'declar').callprop(u'isStatement'):
            var.put(u'bindings', var.get(u'declar').callprop(u'getBindingIdentifiers'))
            for PyJsTemp in var.get(u'bindings'):
                var.put(u'name', PyJsTemp)
                var.get(u'exports').get(u'exported').callprop(u'push', var.get(u'name'))
                PyJs_Object_165_ = Js({u'kind':Js(u'local'),u'local':var.get(u'name'),u'exported':(Js(u'default') if var.get(u'path').callprop(u'isExportDefaultDeclaration') else var.get(u'name'))})
                var.get(u'exports').get(u'specifiers').callprop(u'push', PyJs_Object_165_)
        if (var.get(u'path').callprop(u'isExportNamedDeclaration') and var.get(u'node').get(u'specifiers')):
            #for JS loop
            var.put(u'_iterator2', var.get(u'node').get(u'specifiers'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                var.put(u'specifier', var.get(u'_ref2'))
                var.put(u'exported', var.get(u'specifier').get(u'exported').get(u'name'))
                var.get(u'exports').get(u'exported').callprop(u'push', var.get(u'exported'))
                if var.get(u't').callprop(u'isExportDefaultSpecifier', var.get(u'specifier')):
                    PyJs_Object_166_ = Js({u'kind':Js(u'external'),u'local':var.get(u'exported'),u'exported':var.get(u'exported'),u'source':var.get(u'source')})
                    var.get(u'exports').get(u'specifiers').callprop(u'push', PyJs_Object_166_)
                if var.get(u't').callprop(u'isExportNamespaceSpecifier', var.get(u'specifier')):
                    PyJs_Object_167_ = Js({u'kind':Js(u'external-namespace'),u'exported':var.get(u'exported'),u'source':var.get(u'source')})
                    var.get(u'exports').get(u'specifiers').callprop(u'push', PyJs_Object_167_)
                var.put(u'local', var.get(u'specifier').get(u'local'))
                if var.get(u'local').neg():
                    continue
                if var.get(u'source'):
                    PyJs_Object_168_ = Js({u'kind':Js(u'external'),u'local':var.get(u'local').get(u'name'),u'exported':var.get(u'exported'),u'source':var.get(u'source')})
                    var.get(u'exports').get(u'specifiers').callprop(u'push', PyJs_Object_168_)
                if var.get(u'source').neg():
                    PyJs_Object_169_ = Js({u'kind':Js(u'local'),u'local':var.get(u'local').get(u'name'),u'exported':var.get(u'exported')})
                    var.get(u'exports').get(u'specifiers').callprop(u'push', PyJs_Object_169_)
            
        if var.get(u'path').callprop(u'isExportAllDeclaration'):
            PyJs_Object_170_ = Js({u'kind':Js(u'external-all'),u'source':var.get(u'source')})
            var.get(u'exports').get(u'specifiers').callprop(u'push', PyJs_Object_170_)
    PyJsHoisted_ExportDeclaration_.func_name = u'ExportDeclaration'
    var.put(u'ExportDeclaration', PyJsHoisted_ExportDeclaration_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_155_ = Js({})
            var.put(u'newObj', PyJs_Object_155_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'ImportDeclaration', var.get(u'exports').put(u'ModuleDeclaration', var.get(u'undefined')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'ExportDeclaration', var.get(u'ExportDeclaration'))
    var.get(u'exports').put(u'Scope', var.get(u'Scope'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    @Js
    def PyJs_enter_158_(path, file, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'file':file, u'enter':PyJs_enter_158_}, var)
        var.registers([u'node', u'path', u'file'])
        var.put(u'node', var.get(u'path').get(u'node'))
        if var.get(u'node').get(u'source'):
            var.get(u'node').get(u'source').put(u'value', var.get(u'file').callprop(u'resolveModuleSource', var.get(u'node').get(u'source').get(u'value')))
    PyJs_enter_158_._set_name(u'enter')
    PyJs_Object_157_ = Js({u'enter':PyJs_enter_158_})
    var.put(u'ModuleDeclaration', var.get(u'exports').put(u'ModuleDeclaration', PyJs_Object_157_))
    @Js
    def PyJs_exit_160_(path, file, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'exit':PyJs_exit_160_, u'arguments':arguments, u'file':file}, var)
        var.registers([u'node', u'specifiers', u'_isArray', u'imported', u'file', u'specifier', u'_i', u'importedName', u'_iterator', u'_ref', u'path', u'local'])
        var.put(u'node', var.get(u'path').get(u'node'))
        var.put(u'specifiers', Js([]))
        var.put(u'imported', Js([]))
        PyJs_Object_161_ = Js({u'source':var.get(u'node').get(u'source').get(u'value'),u'imported':var.get(u'imported'),u'specifiers':var.get(u'specifiers')})
        var.get(u'file').get(u'metadata').get(u'modules').get(u'imports').callprop(u'push', PyJs_Object_161_)
        #for JS loop
        var.put(u'_iterator', var.get(u'path').callprop(u'get', Js(u'specifiers')))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'specifier', var.get(u'_ref'))
            var.put(u'local', var.get(u'specifier').get(u'node').get(u'local').get(u'name'))
            if var.get(u'specifier').callprop(u'isImportDefaultSpecifier'):
                var.get(u'imported').callprop(u'push', Js(u'default'))
                PyJs_Object_162_ = Js({u'kind':Js(u'named'),u'imported':Js(u'default'),u'local':var.get(u'local')})
                var.get(u'specifiers').callprop(u'push', PyJs_Object_162_)
            if var.get(u'specifier').callprop(u'isImportSpecifier'):
                var.put(u'importedName', var.get(u'specifier').get(u'node').get(u'imported').get(u'name'))
                var.get(u'imported').callprop(u'push', var.get(u'importedName'))
                PyJs_Object_163_ = Js({u'kind':Js(u'named'),u'imported':var.get(u'importedName'),u'local':var.get(u'local')})
                var.get(u'specifiers').callprop(u'push', PyJs_Object_163_)
            if var.get(u'specifier').callprop(u'isImportNamespaceSpecifier'):
                var.get(u'imported').callprop(u'push', Js(u'*'))
                PyJs_Object_164_ = Js({u'kind':Js(u'namespace'),u'local':var.get(u'local')})
                var.get(u'specifiers').callprop(u'push', PyJs_Object_164_)
        
    PyJs_exit_160_._set_name(u'exit')
    PyJs_Object_159_ = Js({u'exit':PyJs_exit_160_})
    var.put(u'ImportDeclaration', var.get(u'exports').put(u'ImportDeclaration', PyJs_Object_159_))
    pass
    pass
PyJs_anonymous_154_._set_name(u'anonymous')
PyJs_Object_171_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_172_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_173_(process, this, arguments, var=var):
        var = Scope({u'process':process, u'this':this, u'arguments':arguments}, var)
        var.registers([u'_resolve', u'existsCache', u'exists', u'_fs', u'process', u'buildConfigChain', u'_json2', u'_interopRequireDefault', u'_fs2', u'BABELIGNORE_FILENAME', u'_json', u'PACKAGE_FILENAME', u'jsonCache', u'_classCallCheck3', u'_classCallCheck2', u'_assign', u'BABELRC_FILENAME', u'_pathIsAbsolute2', u'_path2', u'_assign2', u'_resolve2', u'_pathIsAbsolute', u'ConfigChainBuilder', u'_path'])
        @Js
        def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj'])
            PyJs_Object_174_ = Js({u'default':var.get(u'obj')})
            return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_174_)
        PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
        var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
        @Js
        def PyJsHoisted_buildConfigChain_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'builder', u'log', u'opts', u'filename'])
            PyJs_Object_177_ = Js({})
            var.put(u'opts', (var.get(u'arguments').get(u'0') if ((var.get(u'arguments').get(u'length')>Js(0.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'0'),var.get(u'undefined'))) else PyJs_Object_177_))
            var.put(u'log', var.get(u'arguments').get(u'1'))
            var.put(u'filename', var.get(u'opts').get(u'filename'))
            var.put(u'builder', var.get(u'ConfigChainBuilder').create(var.get(u'log')))
            if PyJsStrictNeq(var.get(u'opts').get(u'babelrc'),Js(False)):
                var.get(u'builder').callprop(u'findConfigs', var.get(u'filename'))
            PyJs_Object_178_ = Js({u'options':var.get(u'opts'),u'alias':Js(u'base'),u'dirname':(var.get(u'filename') and var.get(u'_path2').get(u'default').callprop(u'dirname', var.get(u'filename')))})
            var.get(u'builder').callprop(u'mergeConfig', PyJs_Object_178_)
            return var.get(u'builder').get(u'configs')
        PyJsHoisted_buildConfigChain_.func_name = u'buildConfigChain'
        var.put(u'buildConfigChain', PyJsHoisted_buildConfigChain_)
        @Js
        def PyJsHoisted_exists_(filename, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'filename':filename}, var)
            var.registers([u'cached', u'filename'])
            var.put(u'cached', var.get(u'existsCache').get(var.get(u'filename')))
            if (var.get(u'cached')==var.get(u"null")):
                return var.get(u'existsCache').put(var.get(u'filename'), var.get(u'_fs2').get(u'default').callprop(u'existsSync', var.get(u'filename')))
            else:
                return var.get(u'cached')
        PyJsHoisted_exists_.func_name = u'exists'
        var.put(u'exists', PyJsHoisted_exists_)
        Js(u'use strict')
        var.get(u'exports').put(u'__esModule', var.get(u'true'))
        var.put(u'_assign', var.get(u'require')(Js(u'babel-runtime/core-js/object/assign')))
        var.put(u'_assign2', var.get(u'_interopRequireDefault')(var.get(u'_assign')))
        var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
        var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
        var.get(u'exports').put(u'default', var.get(u'buildConfigChain'))
        var.put(u'_resolve', var.get(u'require')(Js(u'../../../helpers/resolve')))
        var.put(u'_resolve2', var.get(u'_interopRequireDefault')(var.get(u'_resolve')))
        var.put(u'_json', var.get(u'require')(Js(u'json5')))
        var.put(u'_json2', var.get(u'_interopRequireDefault')(var.get(u'_json')))
        var.put(u'_pathIsAbsolute', var.get(u'require')(Js(u'path-is-absolute')))
        var.put(u'_pathIsAbsolute2', var.get(u'_interopRequireDefault')(var.get(u'_pathIsAbsolute')))
        var.put(u'_path', var.get(u'require')(Js(u'path')))
        var.put(u'_path2', var.get(u'_interopRequireDefault')(var.get(u'_path')))
        var.put(u'_fs', var.get(u'require')(Js(u'fs')))
        var.put(u'_fs2', var.get(u'_interopRequireDefault')(var.get(u'_fs')))
        pass
        PyJs_Object_175_ = Js({})
        var.put(u'existsCache', PyJs_Object_175_)
        PyJs_Object_176_ = Js({})
        var.put(u'jsonCache', PyJs_Object_176_)
        var.put(u'BABELIGNORE_FILENAME', Js(u'.babelignore'))
        var.put(u'BABELRC_FILENAME', Js(u'.babelrc'))
        var.put(u'PACKAGE_FILENAME', Js(u'package.json'))
        pass
        pass
        @Js
        def PyJs_anonymous_179_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'ConfigChainBuilder'])
            @Js
            def PyJsHoisted_ConfigChainBuilder_(log, this, arguments, var=var):
                var = Scope({u'this':this, u'log':log, u'arguments':arguments}, var)
                var.registers([u'log'])
                PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'ConfigChainBuilder'))
                var.get(u"this").put(u'resolvedConfigs', Js([]))
                var.get(u"this").put(u'configs', Js([]))
                var.get(u"this").put(u'log', var.get(u'log'))
            PyJsHoisted_ConfigChainBuilder_.func_name = u'ConfigChainBuilder'
            var.put(u'ConfigChainBuilder', PyJsHoisted_ConfigChainBuilder_)
            pass
            @Js
            def PyJs_findConfigs_180_(loc, this, arguments, var=var):
                var = Scope({u'this':this, u'loc':loc, u'arguments':arguments, u'findConfigs':PyJs_findConfigs_180_}, var)
                var.registers([u'loc', u'ignoreLoc', u'foundIgnore', u'pkgLoc', u'foundConfig', u'configLoc'])
                if var.get(u'loc').neg():
                    return var.get('undefined')
                if PyJsComma(Js(0.0),var.get(u'_pathIsAbsolute2').get(u'default'))(var.get(u'loc')).neg():
                    var.put(u'loc', var.get(u'_path2').get(u'default').callprop(u'join', var.get(u'process').callprop(u'cwd'), var.get(u'loc')))
                var.put(u'foundConfig', Js(False))
                var.put(u'foundIgnore', Js(False))
                while PyJsStrictNeq(var.get(u'loc'),var.put(u'loc', var.get(u'_path2').get(u'default').callprop(u'dirname', var.get(u'loc')))):
                    if var.get(u'foundConfig').neg():
                        var.put(u'configLoc', var.get(u'_path2').get(u'default').callprop(u'join', var.get(u'loc'), var.get(u'BABELRC_FILENAME')))
                        if var.get(u'exists')(var.get(u'configLoc')):
                            var.get(u"this").callprop(u'addConfig', var.get(u'configLoc'))
                            var.put(u'foundConfig', var.get(u'true'))
                        var.put(u'pkgLoc', var.get(u'_path2').get(u'default').callprop(u'join', var.get(u'loc'), var.get(u'PACKAGE_FILENAME')))
                        if (var.get(u'foundConfig').neg() and var.get(u'exists')(var.get(u'pkgLoc'))):
                            var.put(u'foundConfig', var.get(u"this").callprop(u'addConfig', var.get(u'pkgLoc'), Js(u'babel'), var.get(u'JSON')))
                    if var.get(u'foundIgnore').neg():
                        var.put(u'ignoreLoc', var.get(u'_path2').get(u'default').callprop(u'join', var.get(u'loc'), var.get(u'BABELIGNORE_FILENAME')))
                        if var.get(u'exists')(var.get(u'ignoreLoc')):
                            var.get(u"this").callprop(u'addIgnoreConfig', var.get(u'ignoreLoc'))
                            var.put(u'foundIgnore', var.get(u'true'))
                    if (var.get(u'foundIgnore') and var.get(u'foundConfig')):
                        return var.get('undefined')
            PyJs_findConfigs_180_._set_name(u'findConfigs')
            var.get(u'ConfigChainBuilder').get(u'prototype').put(u'findConfigs', PyJs_findConfigs_180_)
            @Js
            def PyJs_addIgnoreConfig_181_(loc, this, arguments, var=var):
                var = Scope({u'this':this, u'loc':loc, u'arguments':arguments, u'addIgnoreConfig':PyJs_addIgnoreConfig_181_}, var)
                var.registers([u'loc', u'lines', u'file'])
                var.put(u'file', var.get(u'_fs2').get(u'default').callprop(u'readFileSync', var.get(u'loc'), Js(u'utf8')))
                var.put(u'lines', var.get(u'file').callprop(u'split', Js(u'\n')))
                @Js
                def PyJs_anonymous_182_(line, this, arguments, var=var):
                    var = Scope({u'this':this, u'line':line, u'arguments':arguments}, var)
                    var.registers([u'line'])
                    return var.get(u'line').neg().neg()
                PyJs_anonymous_182_._set_name(u'anonymous')
                @Js
                def PyJs_anonymous_183_(line, this, arguments, var=var):
                    var = Scope({u'this':this, u'line':line, u'arguments':arguments}, var)
                    var.registers([u'line'])
                    return var.get(u'line').callprop(u'replace', JsRegExp(u'/#(.*?)$/'), Js(u'')).callprop(u'trim')
                PyJs_anonymous_183_._set_name(u'anonymous')
                var.put(u'lines', var.get(u'lines').callprop(u'map', PyJs_anonymous_183_).callprop(u'filter', PyJs_anonymous_182_))
                if var.get(u'lines').get(u'length'):
                    PyJs_Object_185_ = Js({u'ignore':var.get(u'lines')})
                    PyJs_Object_184_ = Js({u'options':PyJs_Object_185_,u'alias':var.get(u'loc'),u'dirname':var.get(u'_path2').get(u'default').callprop(u'dirname', var.get(u'loc'))})
                    var.get(u"this").callprop(u'mergeConfig', PyJs_Object_184_)
            PyJs_addIgnoreConfig_181_._set_name(u'addIgnoreConfig')
            var.get(u'ConfigChainBuilder').get(u'prototype').put(u'addIgnoreConfig', PyJs_addIgnoreConfig_181_)
            @Js
            def PyJs_addConfig_186_(loc, key, this, arguments, var=var):
                var = Scope({u'this':this, u'loc':loc, u'addConfig':PyJs_addConfig_186_, u'arguments':arguments, u'key':key}, var)
                var.registers([u'content', u'loc', u'json', u'options', u'key'])
                var.put(u'json', (var.get(u'arguments').get(u'2') if ((var.get(u'arguments').get(u'length')>Js(2.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'2'),var.get(u'undefined'))) else var.get(u'_json2').get(u'default')))
                if (var.get(u"this").get(u'resolvedConfigs').callprop(u'indexOf', var.get(u'loc'))>=Js(0.0)):
                    return Js(False)
                var.get(u"this").get(u'resolvedConfigs').callprop(u'push', var.get(u'loc'))
                var.put(u'content', var.get(u'_fs2').get(u'default').callprop(u'readFileSync', var.get(u'loc'), Js(u'utf8')))
                var.put(u'options', PyJsComma(Js(0.0), Js(None)))
                try:
                    var.put(u'options', var.get(u'jsonCache').put(var.get(u'content'), (var.get(u'jsonCache').get(var.get(u'content')) or var.get(u'json').callprop(u'parse', var.get(u'content')))))
                    if var.get(u'key'):
                        var.put(u'options', var.get(u'options').get(var.get(u'key')))
                except PyJsException as PyJsTempException:
                    PyJsHolder_657272_93340872 = var.own.get(u'err')
                    var.force_own_put(u'err', PyExceptionToJs(PyJsTempException))
                    try:
                        var.get(u'err').put(u'message', ((var.get(u'loc')+Js(u': Error while parsing JSON - '))+var.get(u'err').get(u'message')))
                        PyJsTempException = JsToPyException(var.get(u'err'))
                        raise PyJsTempException
                    finally:
                        if PyJsHolder_657272_93340872 is not None:
                            var.own[u'err'] = PyJsHolder_657272_93340872
                        else:
                            del var.own[u'err']
                        del PyJsHolder_657272_93340872
                PyJs_Object_187_ = Js({u'options':var.get(u'options'),u'alias':var.get(u'loc'),u'dirname':var.get(u'_path2').get(u'default').callprop(u'dirname', var.get(u'loc'))})
                var.get(u"this").callprop(u'mergeConfig', PyJs_Object_187_)
                return var.get(u'options').neg().neg()
            PyJs_addConfig_186_._set_name(u'addConfig')
            var.get(u'ConfigChainBuilder').get(u'prototype').put(u'addConfig', PyJs_addConfig_186_)
            @Js
            def PyJs_mergeConfig_188_(_ref, this, arguments, var=var):
                var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments, u'mergeConfig':PyJs_mergeConfig_188_}, var)
                var.registers([u'loc', u'envOpts', u'alias', u'envKey', u'extendsLoc', u'_ref', u'dirname', u'options'])
                var.put(u'options', var.get(u'_ref').get(u'options'))
                var.put(u'alias', var.get(u'_ref').get(u'alias'))
                var.put(u'loc', var.get(u'_ref').get(u'loc'))
                var.put(u'dirname', var.get(u'_ref').get(u'dirname'))
                if var.get(u'options').neg():
                    return Js(False)
                PyJs_Object_189_ = Js({})
                var.put(u'options', PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(PyJs_Object_189_, var.get(u'options')))
                var.put(u'dirname', (var.get(u'dirname') or var.get(u'process').callprop(u'cwd')))
                var.put(u'loc', (var.get(u'loc') or var.get(u'alias')))
                if var.get(u'options').get(u'extends'):
                    var.put(u'extendsLoc', PyJsComma(Js(0.0),var.get(u'_resolve2').get(u'default'))(var.get(u'options').get(u'extends'), var.get(u'dirname')))
                    if var.get(u'extendsLoc'):
                        var.get(u"this").callprop(u'addConfig', var.get(u'extendsLoc'))
                    else:
                        if var.get(u"this").get(u'log'):
                            var.get(u"this").get(u'log').callprop(u'error', (((Js(u"Couldn't resolve extends clause of ")+var.get(u'options').get(u'extends'))+Js(u' in '))+var.get(u'alias')))
                    var.get(u'options').delete(u'extends')
                PyJs_Object_190_ = Js({u'options':var.get(u'options'),u'alias':var.get(u'alias'),u'loc':var.get(u'loc'),u'dirname':var.get(u'dirname')})
                var.get(u"this").get(u'configs').callprop(u'push', PyJs_Object_190_)
                var.put(u'envOpts', PyJsComma(Js(0.0), Js(None)))
                var.put(u'envKey', ((var.get(u'process').get(u'env').get(u'BABEL_ENV') or var.get(u'process').get(u'env').get(u'NODE_ENV')) or Js(u'development')))
                if var.get(u'options').get(u'env'):
                    var.put(u'envOpts', var.get(u'options').get(u'env').get(var.get(u'envKey')))
                    var.get(u'options').delete(u'env')
                PyJs_Object_191_ = Js({u'options':var.get(u'envOpts'),u'alias':((var.get(u'alias')+Js(u'.env.'))+var.get(u'envKey')),u'dirname':var.get(u'dirname')})
                var.get(u"this").callprop(u'mergeConfig', PyJs_Object_191_)
            PyJs_mergeConfig_188_._set_name(u'mergeConfig')
            var.get(u'ConfigChainBuilder').get(u'prototype').put(u'mergeConfig', PyJs_mergeConfig_188_)
            return var.get(u'ConfigChainBuilder')
        PyJs_anonymous_179_._set_name(u'anonymous')
        var.put(u'ConfigChainBuilder', PyJs_anonymous_179_())
        var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
    PyJs_anonymous_173_._set_name(u'anonymous')
    PyJs_anonymous_173_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')))
PyJs_anonymous_172_._set_name(u'anonymous')
PyJs_Object_192_ = Js({u'../../../helpers/resolve':Js(9.0),u'_process':Js(531.0),u'babel-runtime/core-js/object/assign':Js(100.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'fs':Js(523.0),u'json5':Js(284.0),u'path':Js(530.0),u'path-is-absolute':Js(499.0)})
@Js
def PyJs_anonymous_193_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    PyJs_Object_195_ = Js({u'type':Js(u'filename'),u'description':Js(u'filename to use when reading from stdin - this will be used in source-maps, errors etc'),u'default':Js(u'unknown'),u'shorthand':Js(u'f')})
    PyJs_Object_196_ = Js({u'hidden':var.get(u'true'),u'type':Js(u'string')})
    PyJs_Object_197_ = Js({u'hidden':var.get(u'true')})
    PyJs_Object_199_ = Js({})
    PyJs_Object_198_ = Js({u'hidden':var.get(u'true'),u'default':PyJs_Object_199_})
    PyJs_Object_200_ = Js({u'description':Js(u''),u'hidden':var.get(u'true')})
    PyJs_Object_201_ = Js({u'type':Js(u'boolean'),u'default':Js(False),u'description':Js(u'retain line numbers - will result in really ugly code')})
    PyJs_Object_202_ = Js({u'description':Js(u'enable/disable ANSI syntax highlighting of code frames (on by default)'),u'type':Js(u'boolean'),u'default':var.get(u'true')})
    PyJs_Object_203_ = Js({u'type':Js(u'boolean'),u'default':Js(False),u'hidden':var.get(u'true')})
    PyJs_Object_204_ = Js({u'type':Js(u'list'),u'description':Js(u''),u'default':Js([])})
    PyJs_Object_205_ = Js({u'type':Js(u'list'),u'default':Js([]),u'description':Js(u'')})
    PyJs_Object_206_ = Js({u'type':Js(u'list'),u'description':Js(u'list of glob paths to **not** compile'),u'default':Js([])})
    PyJs_Object_207_ = Js({u'type':Js(u'list'),u'description':Js(u'list of glob paths to **only** compile')})
    PyJs_Object_208_ = Js({u'hidden':var.get(u'true'),u'default':var.get(u'true'),u'type':Js(u'boolean')})
    PyJs_Object_209_ = Js({u'hidden':var.get(u'true'),u'default':var.get(u'true'),u'type':Js(u'boolean')})
    PyJs_Object_210_ = Js({u'hidden':var.get(u'true'),u'default':var.get(u'true'),u'type':Js(u'boolean')})
    PyJs_Object_211_ = Js({u'type':Js(u'string'),u'hidden':var.get(u'true')})
    PyJs_Object_212_ = Js({u'type':Js(u'boolean'),u'default':var.get(u'true'),u'description':Js(u'write comments to generated output (true by default)')})
    PyJs_Object_213_ = Js({u'hidden':var.get(u'true'),u'description':Js(u'optional callback to control whether a comment should be inserted, when this is used the comments option is ignored')})
    PyJs_Object_214_ = Js({u'hidden':var.get(u'true'),u'description':Js(u'optional callback to wrap all visitor methods')})
    PyJs_Object_215_ = Js({u'type':Js(u'booleanString'),u'default':Js(u'auto'),u'description':Js(u'do not include superfluous whitespace characters and line terminators [true|false|auto]')})
    PyJs_Object_216_ = Js({u'type':Js(u'boolean'),u'default':Js(False),u'description':Js(u'save as much bytes when printing [true|false]')})
    PyJs_Object_217_ = Js({u'alias':Js(u'sourceMaps'),u'hidden':var.get(u'true')})
    PyJs_Object_218_ = Js({u'type':Js(u'booleanString'),u'description':Js(u'[true|false|inline]'),u'default':Js(False),u'shorthand':Js(u's')})
    PyJs_Object_219_ = Js({u'type':Js(u'string'),u'description':Js(u'set `file` on returned source map')})
    PyJs_Object_220_ = Js({u'type':Js(u'string'),u'description':Js(u'set `sources[0]` on returned source map')})
    PyJs_Object_221_ = Js({u'type':Js(u'filename'),u'description':Js(u'the root from which all sources are relative')})
    PyJs_Object_222_ = Js({u'description':Js(u'Whether or not to look up .babelrc and .babelignore files'),u'type':Js(u'boolean'),u'default':var.get(u'true')})
    PyJs_Object_223_ = Js({u'description':Js(u''),u'default':Js(u'module')})
    PyJs_Object_224_ = Js({u'type':Js(u'string'),u'description':Js(u'print a comment before any injected non-user code')})
    PyJs_Object_225_ = Js({u'type':Js(u'string'),u'description':Js(u'print a comment after any injected non-user code')})
    PyJs_Object_226_ = Js({u'hidden':var.get(u'true')})
    PyJs_Object_227_ = Js({u'hidden':var.get(u'true')})
    PyJs_Object_228_ = Js({u'type':Js(u'filename'),u'description':Js(u'optional prefix for the AMD module formatter that will be prepend to the filename on module definitions')})
    PyJs_Object_229_ = Js({u'type':Js(u'boolean'),u'default':Js(False),u'shorthand':Js(u'M'),u'description':Js(u'insert an explicit id for modules')})
    PyJs_Object_230_ = Js({u'description':Js(u'specify a custom name for module ids'),u'type':Js(u'string')})
    PyJs_Object_231_ = Js({u'description':Js(u'Whether to spawn a traversal pass per a preset. By default all presets are merged.'),u'type':Js(u'boolean'),u'default':Js(False),u'hidden':var.get(u'true')})
    PyJs_Object_232_ = Js({u'description':Js(u'Options to pass into the parser, or to change parsers (parserOpts.parser)'),u'default':Js(False)})
    PyJs_Object_233_ = Js({u'description':Js(u'Options to pass into the generator, or to change generators (generatorOpts.generator)'),u'default':Js(False)})
    PyJs_Object_194_ = Js({u'filename':PyJs_Object_195_,u'filenameRelative':PyJs_Object_196_,u'inputSourceMap':PyJs_Object_197_,u'env':PyJs_Object_198_,u'mode':PyJs_Object_200_,u'retainLines':PyJs_Object_201_,u'highlightCode':PyJs_Object_202_,u'suppressDeprecationMessages':PyJs_Object_203_,u'presets':PyJs_Object_204_,u'plugins':PyJs_Object_205_,u'ignore':PyJs_Object_206_,u'only':PyJs_Object_207_,u'code':PyJs_Object_208_,u'metadata':PyJs_Object_209_,u'ast':PyJs_Object_210_,u'extends':PyJs_Object_211_,u'comments':PyJs_Object_212_,u'shouldPrintComment':PyJs_Object_213_,u'wrapPluginVisitorMethod':PyJs_Object_214_,u'compact':PyJs_Object_215_,u'minified':PyJs_Object_216_,u'sourceMap':PyJs_Object_217_,u'sourceMaps':PyJs_Object_218_,u'sourceMapTarget':PyJs_Object_219_,u'sourceFileName':PyJs_Object_220_,u'sourceRoot':PyJs_Object_221_,u'babelrc':PyJs_Object_222_,u'sourceType':PyJs_Object_223_,u'auxiliaryCommentBefore':PyJs_Object_224_,u'auxiliaryCommentAfter':PyJs_Object_225_,u'resolveModuleSource':PyJs_Object_226_,u'getModuleId':PyJs_Object_227_,u'moduleRoot':PyJs_Object_228_,u'moduleIds':PyJs_Object_229_,u'moduleId':PyJs_Object_230_,u'passPerPreset':PyJs_Object_231_,u'parserOpts':PyJs_Object_232_,u'generatorOpts':PyJs_Object_233_})
    var.get(u'module').put(u'exports', PyJs_Object_194_)
PyJs_anonymous_193_._set_name(u'anonymous')
PyJs_Object_234_ = Js({})
@Js
def PyJs_anonymous_235_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_config', u'_interopRequireWildcard', u'_parsers', u'require', u'exports', u'module', u'normaliseOptions', u'parsers', u'_config2', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_236_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_236_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_normaliseOptions_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'opt', u'val', u'parser', u'options', u'key'])
        PyJs_Object_238_ = Js({})
        var.put(u'options', (var.get(u'arguments').get(u'0') if ((var.get(u'arguments').get(u'length')>Js(0.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'0'),var.get(u'undefined'))) else PyJs_Object_238_))
        for PyJsTemp in var.get(u'options'):
            var.put(u'key', PyJsTemp)
            var.put(u'val', var.get(u'options').get(var.get(u'key')))
            if (var.get(u'val')==var.get(u"null")):
                continue
            var.put(u'opt', var.get(u'_config2').get(u'default').get(var.get(u'key')))
            if (var.get(u'opt') and var.get(u'opt').get(u'alias')):
                var.put(u'opt', var.get(u'_config2').get(u'default').get(var.get(u'opt').get(u'alias')))
            if var.get(u'opt').neg():
                continue
            var.put(u'parser', var.get(u'parsers').get(var.get(u'opt').get(u'type')))
            if var.get(u'parser'):
                var.put(u'val', var.get(u'parser')(var.get(u'val')))
            var.get(u'options').put(var.get(u'key'), var.get(u'val'))
        return var.get(u'options')
    PyJsHoisted_normaliseOptions_.func_name = u'normaliseOptions'
    var.put(u'normaliseOptions', PyJsHoisted_normaliseOptions_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_237_ = Js({})
            var.put(u'newObj', PyJs_Object_237_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'config', var.get(u'undefined'))
    var.get(u'exports').put(u'normaliseOptions', var.get(u'normaliseOptions'))
    var.put(u'_parsers', var.get(u'require')(Js(u'./parsers')))
    var.put(u'parsers', var.get(u'_interopRequireWildcard')(var.get(u'_parsers')))
    var.put(u'_config', var.get(u'require')(Js(u'./config')))
    var.put(u'_config2', var.get(u'_interopRequireDefault')(var.get(u'_config')))
    pass
    pass
    var.get(u'exports').put(u'config', var.get(u'_config2').get(u'default'))
    pass
PyJs_anonymous_235_._set_name(u'anonymous')
PyJs_Object_239_ = Js({u'./config':Js(16.0),u'./parsers':Js(19.0)})
@Js
def PyJs_anonymous_240_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_241_(process, this, arguments, var=var):
        var = Scope({u'process':process, u'this':this, u'arguments':arguments}, var)
        var.registers([u'_resolve', u'_plugin2', u'_plugin3', u'_interopRequireDefault', u'_merge', u'_clone', u'_getIterator2', u'_getIterator3', u'_path2', u'_typeof2', u'_typeof3', u'process', u'_node', u'_removed', u'_objectWithoutProperties2', u'_classCallCheck3', u'_classCallCheck2', u'_babelMessages', u'_stringify2', u'OptionManager', u'_interopRequireWildcard', u'_assign', u'_config3', u'_config2', u'_buildConfigChain2', u'_merge2', u'_assign2', u'_resolve2', u'_index', u'messages', u'_cloneDeepWith2', u'_clone2', u'_stringify', u'_objectWithoutProperties3', u'context', u'_removed2', u'_path', u'_cloneDeepWith', u'_buildConfigChain'])
        @Js
        def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj'])
            PyJs_Object_243_ = Js({u'default':var.get(u'obj')})
            return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_243_)
        PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
        var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
        @Js
        def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj', u'key', u'newObj'])
            if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
                return var.get(u'obj')
            else:
                PyJs_Object_242_ = Js({})
                var.put(u'newObj', PyJs_Object_242_)
                if (var.get(u'obj')!=var.get(u"null")):
                    for PyJsTemp in var.get(u'obj'):
                        var.put(u'key', PyJsTemp)
                        if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                            var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
                var.get(u'newObj').put(u'default', var.get(u'obj'))
                return var.get(u'newObj')
        PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
        var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
        Js(u'use strict')
        var.get(u'exports').put(u'__esModule', var.get(u'true'))
        var.put(u'_objectWithoutProperties2', var.get(u'require')(Js(u'babel-runtime/helpers/objectWithoutProperties')))
        var.put(u'_objectWithoutProperties3', var.get(u'_interopRequireDefault')(var.get(u'_objectWithoutProperties2')))
        var.put(u'_stringify', var.get(u'require')(Js(u'babel-runtime/core-js/json/stringify')))
        var.put(u'_stringify2', var.get(u'_interopRequireDefault')(var.get(u'_stringify')))
        var.put(u'_assign', var.get(u'require')(Js(u'babel-runtime/core-js/object/assign')))
        var.put(u'_assign2', var.get(u'_interopRequireDefault')(var.get(u'_assign')))
        var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
        var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
        var.put(u'_typeof2', var.get(u'require')(Js(u'babel-runtime/helpers/typeof')))
        var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
        var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
        var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
        var.put(u'_node', var.get(u'require')(Js(u'../../../api/node')))
        var.put(u'context', var.get(u'_interopRequireWildcard')(var.get(u'_node')))
        var.put(u'_plugin2', var.get(u'require')(Js(u'../../plugin')))
        var.put(u'_plugin3', var.get(u'_interopRequireDefault')(var.get(u'_plugin2')))
        var.put(u'_babelMessages', var.get(u'require')(Js(u'babel-messages')))
        var.put(u'messages', var.get(u'_interopRequireWildcard')(var.get(u'_babelMessages')))
        var.put(u'_index', var.get(u'require')(Js(u'./index')))
        var.put(u'_resolve', var.get(u'require')(Js(u'../../../helpers/resolve')))
        var.put(u'_resolve2', var.get(u'_interopRequireDefault')(var.get(u'_resolve')))
        var.put(u'_cloneDeepWith', var.get(u'require')(Js(u'lodash/cloneDeepWith')))
        var.put(u'_cloneDeepWith2', var.get(u'_interopRequireDefault')(var.get(u'_cloneDeepWith')))
        var.put(u'_clone', var.get(u'require')(Js(u'lodash/clone')))
        var.put(u'_clone2', var.get(u'_interopRequireDefault')(var.get(u'_clone')))
        var.put(u'_merge', var.get(u'require')(Js(u'../../../helpers/merge')))
        var.put(u'_merge2', var.get(u'_interopRequireDefault')(var.get(u'_merge')))
        var.put(u'_config2', var.get(u'require')(Js(u'./config')))
        var.put(u'_config3', var.get(u'_interopRequireDefault')(var.get(u'_config2')))
        var.put(u'_removed', var.get(u'require')(Js(u'./removed')))
        var.put(u'_removed2', var.get(u'_interopRequireDefault')(var.get(u'_removed')))
        var.put(u'_buildConfigChain', var.get(u'require')(Js(u'./build-config-chain')))
        var.put(u'_buildConfigChain2', var.get(u'_interopRequireDefault')(var.get(u'_buildConfigChain')))
        var.put(u'_path', var.get(u'require')(Js(u'path')))
        var.put(u'_path2', var.get(u'_interopRequireDefault')(var.get(u'_path')))
        pass
        pass
        @Js
        def PyJs_anonymous_244_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'OptionManager'])
            @Js
            def PyJsHoisted_OptionManager_(log, this, arguments, var=var):
                var = Scope({u'this':this, u'log':log, u'arguments':arguments}, var)
                var.registers([u'log'])
                PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'OptionManager'))
                var.get(u"this").put(u'resolvedConfigs', Js([]))
                var.get(u"this").put(u'options', var.get(u'OptionManager').callprop(u'createBareOptions'))
                var.get(u"this").put(u'log', var.get(u'log'))
            PyJsHoisted_OptionManager_.func_name = u'OptionManager'
            var.put(u'OptionManager', PyJsHoisted_OptionManager_)
            pass
            @Js
            def PyJs_memoisePluginContainer_245_(fn, loc, i, alias, this, arguments, var=var):
                var = Scope({u'loc':loc, u'arguments':arguments, u'alias':alias, u'i':i, u'memoisePluginContainer':PyJs_memoisePluginContainer_245_, u'this':this, u'fn':fn}, var)
                var.registers([u'_plugin', u'_isArray', u'obj', u'loc', u'i', u'cache', u'alias', u'_i', u'_iterator', u'_ref', u'fn'])
                #for JS loop
                var.put(u'_iterator', var.get(u'OptionManager').get(u'memoisedPlugins'))
                var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
                var.put(u'_i', Js(0.0))
                var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
                while 1:
                    pass
                    if var.get(u'_isArray'):
                        if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                            break
                        var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                        if var.get(u'_i').get(u'done'):
                            break
                        var.put(u'_ref', var.get(u'_i').get(u'value'))
                    var.put(u'cache', var.get(u'_ref'))
                    if PyJsStrictEq(var.get(u'cache').get(u'container'),var.get(u'fn')):
                        return var.get(u'cache').get(u'plugin')
                
                var.put(u'obj', PyJsComma(Js(0.0), Js(None)))
                if PyJsStrictEq(var.get(u'fn',throw=False).typeof(),Js(u'function')):
                    var.put(u'obj', var.get(u'fn')(var.get(u'context')))
                else:
                    var.put(u'obj', var.get(u'fn'))
                if PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'obj',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'obj'))),Js(u'object')):
                    var.put(u'_plugin', var.get(u'_plugin3').get(u'default').create(var.get(u'obj'), var.get(u'alias')))
                    PyJs_Object_246_ = Js({u'container':var.get(u'fn'),u'plugin':var.get(u'_plugin')})
                    var.get(u'OptionManager').get(u'memoisedPlugins').callprop(u'push', PyJs_Object_246_)
                    return var.get(u'_plugin')
                else:
                    PyJsTempException = JsToPyException(var.get(u'TypeError').create(((var.get(u'messages').callprop(u'get', Js(u'pluginNotObject'), var.get(u'loc'), var.get(u'i'), (Js(u'undefined') if PyJsStrictEq(var.get(u'obj',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'obj'))))+var.get(u'loc'))+var.get(u'i'))))
                    raise PyJsTempException
            PyJs_memoisePluginContainer_245_._set_name(u'memoisePluginContainer')
            var.get(u'OptionManager').put(u'memoisePluginContainer', PyJs_memoisePluginContainer_245_)
            @Js
            def PyJs_createBareOptions_247_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'createBareOptions':PyJs_createBareOptions_247_}, var)
                var.registers([u'_key', u'opt', u'opts'])
                PyJs_Object_248_ = Js({})
                var.put(u'opts', PyJs_Object_248_)
                for PyJsTemp in var.get(u'_config3').get(u'default'):
                    var.put(u'_key', PyJsTemp)
                    var.put(u'opt', var.get(u'_config3').get(u'default').get(var.get(u'_key')))
                    var.get(u'opts').put(var.get(u'_key'), PyJsComma(Js(0.0),var.get(u'_clone2').get(u'default'))(var.get(u'opt').get(u'default')))
                return var.get(u'opts')
            PyJs_createBareOptions_247_._set_name(u'createBareOptions')
            var.get(u'OptionManager').put(u'createBareOptions', PyJs_createBareOptions_247_)
            @Js
            def PyJs_normalisePlugin_249_(plugin, loc, i, alias, this, arguments, var=var):
                var = Scope({u'loc':loc, u'normalisePlugin':PyJs_normalisePlugin_249_, u'arguments':arguments, u'alias':alias, u'i':i, u'plugin':plugin, u'this':this}, var)
                var.registers([u'i', u'loc', u'alias', u'plugin'])
                var.put(u'plugin', (var.get(u'plugin').get(u'default') if var.get(u'plugin').get(u'__esModule') else var.get(u'plugin')))
                if var.get(u'plugin').instanceof(var.get(u'_plugin3').get(u'default')).neg():
                    if (PyJsStrictEq(var.get(u'plugin',throw=False).typeof(),Js(u'function')) or PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'plugin',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'plugin'))),Js(u'object'))):
                        var.put(u'plugin', var.get(u'OptionManager').callprop(u'memoisePluginContainer', var.get(u'plugin'), var.get(u'loc'), var.get(u'i'), var.get(u'alias')))
                    else:
                        PyJsTempException = JsToPyException(var.get(u'TypeError').create(var.get(u'messages').callprop(u'get', Js(u'pluginNotFunction'), var.get(u'loc'), var.get(u'i'), (Js(u'undefined') if PyJsStrictEq(var.get(u'plugin',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'plugin'))))))
                        raise PyJsTempException
                var.get(u'plugin').callprop(u'init', var.get(u'loc'), var.get(u'i'))
                return var.get(u'plugin')
            PyJs_normalisePlugin_249_._set_name(u'normalisePlugin')
            var.get(u'OptionManager').put(u'normalisePlugin', PyJs_normalisePlugin_249_)
            @Js
            def PyJs_normalisePlugins_250_(loc, dirname, plugins, this, arguments, var=var):
                var = Scope({u'loc':loc, u'this':this, u'normalisePlugins':PyJs_normalisePlugins_250_, u'arguments':arguments, u'plugins':plugins, u'dirname':dirname}, var)
                var.registers([u'loc', u'dirname', u'plugins'])
                @Js
                def PyJs_anonymous_251_(val, i, this, arguments, var=var):
                    var = Scope({u'i':i, u'this':this, u'arguments':arguments, u'val':val}, var)
                    var.registers([u'val', u'plugin', u'i', u'pluginLoc', u'alias', u'options'])
                    var.put(u'plugin', PyJsComma(Js(0.0), Js(None)))
                    var.put(u'options', PyJsComma(Js(0.0), Js(None)))
                    if var.get(u'val').neg():
                        PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Falsy value found in plugins')))
                        raise PyJsTempException
                    if var.get(u'Array').callprop(u'isArray', var.get(u'val')):
                        var.put(u'plugin', var.get(u'val').get(u'0'))
                        var.put(u'options', var.get(u'val').get(u'1'))
                    else:
                        var.put(u'plugin', var.get(u'val'))
                    var.put(u'alias', (var.get(u'plugin') if PyJsStrictEq(var.get(u'plugin',throw=False).typeof(),Js(u'string')) else ((var.get(u'loc')+Js(u'$'))+var.get(u'i'))))
                    if PyJsStrictEq(var.get(u'plugin',throw=False).typeof(),Js(u'string')):
                        var.put(u'pluginLoc', (PyJsComma(Js(0.0),var.get(u'_resolve2').get(u'default'))((Js(u'babel-plugin-')+var.get(u'plugin')), var.get(u'dirname')) or PyJsComma(Js(0.0),var.get(u'_resolve2').get(u'default'))(var.get(u'plugin'), var.get(u'dirname'))))
                        if var.get(u'pluginLoc'):
                            var.put(u'plugin', var.get(u'require')(var.get(u'pluginLoc')))
                        else:
                            PyJsTempException = JsToPyException(var.get(u'ReferenceError').create(var.get(u'messages').callprop(u'get', Js(u'pluginUnknown'), var.get(u'plugin'), var.get(u'loc'), var.get(u'i'), var.get(u'dirname'))))
                            raise PyJsTempException
                    var.put(u'plugin', var.get(u'OptionManager').callprop(u'normalisePlugin', var.get(u'plugin'), var.get(u'loc'), var.get(u'i'), var.get(u'alias')))
                    return Js([var.get(u'plugin'), var.get(u'options')])
                PyJs_anonymous_251_._set_name(u'anonymous')
                return var.get(u'plugins').callprop(u'map', PyJs_anonymous_251_)
            PyJs_normalisePlugins_250_._set_name(u'normalisePlugins')
            var.get(u'OptionManager').put(u'normalisePlugins', PyJs_normalisePlugins_250_)
            @Js
            def PyJs_mergeOptions_252_(_ref2, this, arguments, var=var):
                var = Scope({u'this':this, u'mergeOptions':PyJs_mergeOptions_252_, u'_ref2':_ref2, u'arguments':arguments}, var)
                var.registers([u'loc', u'presetConfigErr', u'dirname', u'option', u'_this', u'unknownOptErr', u'_ref2', u'extendingOpts', u'alias', u'_key2', u'rawOpts', u'opts'])
                var.put(u'_this', var.get(u"this"))
                var.put(u'rawOpts', var.get(u'_ref2').get(u'options'))
                var.put(u'extendingOpts', var.get(u'_ref2').get(u'extending'))
                var.put(u'alias', var.get(u'_ref2').get(u'alias'))
                var.put(u'loc', var.get(u'_ref2').get(u'loc'))
                var.put(u'dirname', var.get(u'_ref2').get(u'dirname'))
                var.put(u'alias', (var.get(u'alias') or Js(u'foreign')))
                if var.get(u'rawOpts').neg():
                    return var.get('undefined')
                if (PyJsStrictNeq((Js(u'undefined') if PyJsStrictEq(var.get(u'rawOpts',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'rawOpts'))),Js(u'object')) or var.get(u'Array').callprop(u'isArray', var.get(u'rawOpts'))):
                    var.get(u"this").get(u'log').callprop(u'error', (Js(u'Invalid options type for ')+var.get(u'alias')), var.get(u'TypeError'))
                @Js
                def PyJs_anonymous_253_(val, this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
                    var.registers([u'val'])
                    if var.get(u'val').instanceof(var.get(u'_plugin3').get(u'default')):
                        return var.get(u'val')
                PyJs_anonymous_253_._set_name(u'anonymous')
                var.put(u'opts', PyJsComma(Js(0.0),var.get(u'_cloneDeepWith2').get(u'default'))(var.get(u'rawOpts'), PyJs_anonymous_253_))
                var.put(u'dirname', (var.get(u'dirname') or var.get(u'process').callprop(u'cwd')))
                var.put(u'loc', (var.get(u'loc') or var.get(u'alias')))
                for PyJsTemp in var.get(u'opts'):
                    var.put(u'_key2', PyJsTemp)
                    var.put(u'option', var.get(u'_config3').get(u'default').get(var.get(u'_key2')))
                    if (var.get(u'option').neg() and var.get(u"this").get(u'log')):
                        if var.get(u'_removed2').get(u'default').get(var.get(u'_key2')):
                            var.get(u"this").get(u'log').callprop(u'error', (((((Js(u'Using removed Babel 5 option: ')+var.get(u'alias'))+Js(u'.'))+var.get(u'_key2'))+Js(u' - '))+var.get(u'_removed2').get(u'default').get(var.get(u'_key2')).get(u'message')), var.get(u'ReferenceError'))
                        else:
                            var.put(u'unknownOptErr', ((((Js(u'Unknown option: ')+var.get(u'alias'))+Js(u'.'))+var.get(u'_key2'))+Js(u'. Check out http://babeljs.io/docs/usage/options/ for more information about options.')))
                            var.put(u'presetConfigErr', Js(u"A common cause of this error is the presence of a configuration options object without the corresponding preset name. Example:\n\nInvalid:\n  `{ presets: [{option: value}] }`\nValid:\n  `{ presets: [['presetName', {option: value}]] }`\n\nFor more detailed information on preset configuration, please see http://babeljs.io/docs/plugins/#pluginpresets-options."))
                            var.get(u"this").get(u'log').callprop(u'error', ((var.get(u'unknownOptErr')+Js(u'\n\n'))+var.get(u'presetConfigErr')), var.get(u'ReferenceError'))
                PyJsComma(Js(0.0),var.get(u'_index').get(u'normaliseOptions'))(var.get(u'opts'))
                if var.get(u'opts').get(u'plugins'):
                    var.get(u'opts').put(u'plugins', var.get(u'OptionManager').callprop(u'normalisePlugins', var.get(u'loc'), var.get(u'dirname'), var.get(u'opts').get(u'plugins')))
                if var.get(u'opts').get(u'presets'):
                    if var.get(u'opts').get(u'passPerPreset'):
                        @Js
                        def PyJs_anonymous_254_(preset, presetLoc, this, arguments, var=var):
                            var = Scope({u'presetLoc':presetLoc, u'this':this, u'preset':preset, u'arguments':arguments}, var)
                            var.registers([u'presetLoc', u'preset'])
                            PyJs_Object_255_ = Js({u'options':var.get(u'preset'),u'extending':var.get(u'preset'),u'alias':var.get(u'presetLoc'),u'loc':var.get(u'presetLoc'),u'dirname':var.get(u'dirname')})
                            var.get(u'_this').callprop(u'mergeOptions', PyJs_Object_255_)
                        PyJs_anonymous_254_._set_name(u'anonymous')
                        var.get(u'opts').put(u'presets', var.get(u"this").callprop(u'resolvePresets', var.get(u'opts').get(u'presets'), var.get(u'dirname'), PyJs_anonymous_254_))
                    else:
                        var.get(u"this").callprop(u'mergePresets', var.get(u'opts').get(u'presets'), var.get(u'dirname'))
                        var.get(u'opts').delete(u'presets')
                if PyJsStrictEq(var.get(u'rawOpts'),var.get(u'extendingOpts')):
                    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'extendingOpts'), var.get(u'opts'))
                else:
                    PyJsComma(Js(0.0),var.get(u'_merge2').get(u'default'))((var.get(u'extendingOpts') or var.get(u"this").get(u'options')), var.get(u'opts'))
            PyJs_mergeOptions_252_._set_name(u'mergeOptions')
            var.get(u'OptionManager').get(u'prototype').put(u'mergeOptions', PyJs_mergeOptions_252_)
            @Js
            def PyJs_mergePresets_256_(presets, dirname, this, arguments, var=var):
                var = Scope({u'this':this, u'mergePresets':PyJs_mergePresets_256_, u'presets':presets, u'dirname':dirname, u'arguments':arguments}, var)
                var.registers([u'presets', u'dirname', u'_this2'])
                var.put(u'_this2', var.get(u"this"))
                @Js
                def PyJs_anonymous_257_(presetOpts, presetLoc, this, arguments, var=var):
                    var = Scope({u'presetLoc':presetLoc, u'this':this, u'presetOpts':presetOpts, u'arguments':arguments}, var)
                    var.registers([u'presetLoc', u'presetOpts'])
                    PyJs_Object_258_ = Js({u'options':var.get(u'presetOpts'),u'alias':var.get(u'presetLoc'),u'loc':var.get(u'presetLoc'),u'dirname':var.get(u'_path2').get(u'default').callprop(u'dirname', (var.get(u'presetLoc') or Js(u'')))})
                    var.get(u'_this2').callprop(u'mergeOptions', PyJs_Object_258_)
                PyJs_anonymous_257_._set_name(u'anonymous')
                var.get(u"this").callprop(u'resolvePresets', var.get(u'presets'), var.get(u'dirname'), PyJs_anonymous_257_)
            PyJs_mergePresets_256_._set_name(u'mergePresets')
            var.get(u'OptionManager').get(u'prototype').put(u'mergePresets', PyJs_mergePresets_256_)
            @Js
            def PyJs_resolvePresets_259_(presets, dirname, onResolve, this, arguments, var=var):
                var = Scope({u'this':this, u'presets':presets, u'onResolve':onResolve, u'arguments':arguments, u'dirname':dirname, u'resolvePresets':PyJs_resolvePresets_259_}, var)
                var.registers([u'onResolve', u'presets', u'dirname'])
                @Js
                def PyJs_anonymous_260_(val, this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
                    var.registers([u'val', u'_val', u'matches', u'rest', u'presetLoc', u'presetPath', u'_val2', u'__esModule', u'options', u'orgName'])
                    var.put(u'options', PyJsComma(Js(0.0), Js(None)))
                    if var.get(u'Array').callprop(u'isArray', var.get(u'val')):
                        if (var.get(u'val').get(u'length')>Js(2.0)):
                            PyJsTempException = JsToPyException(var.get(u'Error').create(((Js(u'Unexpected extra options ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'val').callprop(u'slice', Js(2.0))))+Js(u' passed to preset.'))))
                            raise PyJsTempException
                        var.put(u'_val', var.get(u'val'))
                        var.put(u'val', var.get(u'_val').get(u'0'))
                        var.put(u'options', var.get(u'_val').get(u'1'))
                    var.put(u'presetLoc', PyJsComma(Js(0.0), Js(None)))
                    try:
                        if PyJsStrictEq(var.get(u'val',throw=False).typeof(),Js(u'string')):
                            var.put(u'presetLoc', (PyJsComma(Js(0.0),var.get(u'_resolve2').get(u'default'))((Js(u'babel-preset-')+var.get(u'val')), var.get(u'dirname')) or PyJsComma(Js(0.0),var.get(u'_resolve2').get(u'default'))(var.get(u'val'), var.get(u'dirname'))))
                            if var.get(u'presetLoc').neg():
                                var.put(u'matches', var.get(u'val').callprop(u'match', JsRegExp(u'/^(@[^/]+)\\/(.+)$/')))
                                if var.get(u'matches'):
                                    var.put(u'orgName', var.get(u'matches').get(u'1'))
                                    var.put(u'presetPath', var.get(u'matches').get(u'2'))
                                    var.put(u'val', ((var.get(u'orgName')+Js(u'/babel-preset-'))+var.get(u'presetPath')))
                                    var.put(u'presetLoc', PyJsComma(Js(0.0),var.get(u'_resolve2').get(u'default'))(var.get(u'val'), var.get(u'dirname')))
                            if var.get(u'presetLoc').neg():
                                PyJsTempException = JsToPyException(var.get(u'Error').create((((Js(u"Couldn't find preset ")+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'val')))+Js(u' relative to directory '))+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'dirname')))))
                                raise PyJsTempException
                            var.put(u'val', var.get(u'require')(var.get(u'presetLoc')))
                        if (PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'val',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'val'))),Js(u'object')) and var.get(u'val').get(u'__esModule')):
                            if var.get(u'val').get(u'default'):
                                var.put(u'val', var.get(u'val').get(u'default'))
                            else:
                                var.put(u'_val2', var.get(u'val'))
                                var.put(u'__esModule', var.get(u'_val2').get(u'__esModule'))
                                var.put(u'rest', PyJsComma(Js(0.0),var.get(u'_objectWithoutProperties3').get(u'default'))(var.get(u'_val2'), Js([Js(u'__esModule')])))
                                var.put(u'val', var.get(u'rest'))
                        if (PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'val',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'val'))),Js(u'object')) and var.get(u'val').get(u'buildPreset')):
                            var.put(u'val', var.get(u'val').get(u'buildPreset'))
                        if (PyJsStrictNeq(var.get(u'val',throw=False).typeof(),Js(u'function')) and PyJsStrictNeq(var.get(u'options'),var.get(u'undefined'))):
                            PyJsTempException = JsToPyException(var.get(u'Error').create(((((Js(u'Options ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'options')))+Js(u' passed to '))+(var.get(u'presetLoc') or Js(u'a preset')))+Js(u' which does not accept options.'))))
                            raise PyJsTempException
                        if PyJsStrictEq(var.get(u'val',throw=False).typeof(),Js(u'function')):
                            var.put(u'val', var.get(u'val')(var.get(u'context'), var.get(u'options')))
                        if PyJsStrictNeq((Js(u'undefined') if PyJsStrictEq(var.get(u'val',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'val'))),Js(u'object')):
                            PyJsTempException = JsToPyException(var.get(u'Error').create(((Js(u'Unsupported preset format: ')+var.get(u'val'))+Js(u'.'))))
                            raise PyJsTempException
                        (var.get(u'onResolve') and var.get(u'onResolve')(var.get(u'val'), var.get(u'presetLoc')))
                    except PyJsException as PyJsTempException:
                        PyJsHolder_65_49729099 = var.own.get(u'e')
                        var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
                        try:
                            if var.get(u'presetLoc'):
                                var.get(u'e').put(u'message', ((Js(u' (While processing preset: ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'presetLoc')))+Js(u')')), u'+')
                            PyJsTempException = JsToPyException(var.get(u'e'))
                            raise PyJsTempException
                        finally:
                            if PyJsHolder_65_49729099 is not None:
                                var.own[u'e'] = PyJsHolder_65_49729099
                            else:
                                del var.own[u'e']
                            del PyJsHolder_65_49729099
                    return var.get(u'val')
                PyJs_anonymous_260_._set_name(u'anonymous')
                return var.get(u'presets').callprop(u'map', PyJs_anonymous_260_)
            PyJs_resolvePresets_259_._set_name(u'resolvePresets')
            var.get(u'OptionManager').get(u'prototype').put(u'resolvePresets', PyJs_resolvePresets_259_)
            @Js
            def PyJs_normaliseOptions_261_(this, arguments, var=var):
                var = Scope({u'this':this, u'normaliseOptions':PyJs_normaliseOptions_261_, u'arguments':arguments}, var)
                var.registers([u'_key3', u'val', u'option', u'opts'])
                var.put(u'opts', var.get(u"this").get(u'options'))
                for PyJsTemp in var.get(u'_config3').get(u'default'):
                    var.put(u'_key3', PyJsTemp)
                    var.put(u'option', var.get(u'_config3').get(u'default').get(var.get(u'_key3')))
                    var.put(u'val', var.get(u'opts').get(var.get(u'_key3')))
                    if (var.get(u'val').neg() and var.get(u'option').get(u'optional')):
                        continue
                    if var.get(u'option').get(u'alias'):
                        var.get(u'opts').put(var.get(u'option').get(u'alias'), (var.get(u'opts').get(var.get(u'option').get(u'alias')) or var.get(u'val')))
                    else:
                        var.get(u'opts').put(var.get(u'_key3'), var.get(u'val'))
            PyJs_normaliseOptions_261_._set_name(u'normaliseOptions')
            var.get(u'OptionManager').get(u'prototype').put(u'normaliseOptions', PyJs_normaliseOptions_261_)
            @Js
            def PyJs_init_262_(this, arguments, var=var):
                var = Scope({u'this':this, u'init':PyJs_init_262_, u'arguments':arguments}, var)
                var.registers([u'_config', u'_isArray2', u'_ref3', u'_i2', u'opts', u'_iterator2'])
                PyJs_Object_263_ = Js({})
                var.put(u'opts', (var.get(u'arguments').get(u'0') if ((var.get(u'arguments').get(u'length')>Js(0.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'0'),var.get(u'undefined'))) else PyJs_Object_263_))
                #for JS loop
                var.put(u'_iterator2', PyJsComma(Js(0.0),var.get(u'_buildConfigChain2').get(u'default'))(var.get(u'opts'), var.get(u"this").get(u'log')))
                var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
                var.put(u'_i2', Js(0.0))
                var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
                while 1:
                    pass
                    if var.get(u'_isArray2'):
                        if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                            break
                        var.put(u'_ref3', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                        if var.get(u'_i2').get(u'done'):
                            break
                        var.put(u'_ref3', var.get(u'_i2').get(u'value'))
                    var.put(u'_config', var.get(u'_ref3'))
                    var.get(u"this").callprop(u'mergeOptions', var.get(u'_config'))
                
                var.get(u"this").callprop(u'normaliseOptions', var.get(u'opts'))
                return var.get(u"this").get(u'options')
            PyJs_init_262_._set_name(u'init')
            var.get(u'OptionManager').get(u'prototype').put(u'init', PyJs_init_262_)
            return var.get(u'OptionManager')
        PyJs_anonymous_244_._set_name(u'anonymous')
        var.put(u'OptionManager', PyJs_anonymous_244_())
        var.get(u'exports').put(u'default', var.get(u'OptionManager'))
        var.get(u'OptionManager').put(u'memoisedPlugins', Js([]))
        var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
    PyJs_anonymous_241_._set_name(u'anonymous')
    PyJs_anonymous_241_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')))
PyJs_anonymous_240_._set_name(u'anonymous')
PyJs_Object_264_ = Js({u'../../../api/node':Js(6.0),u'../../../helpers/merge':Js(7.0),u'../../../helpers/resolve':Js(9.0),u'../../plugin':Js(25.0),u'./build-config-chain':Js(15.0),u'./config':Js(16.0),u'./index':Js(17.0),u'./removed':Js(20.0),u'_process':Js(531.0),u'babel-messages':Js(57.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/json/stringify':Js(97.0),u'babel-runtime/core-js/object/assign':Js(100.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-runtime/helpers/objectWithoutProperties':Js(112.0),u'babel-runtime/helpers/typeof':Js(114.0),u'lodash/clone':Js(438.0),u'lodash/cloneDeepWith':Js(440.0),u'path':Js(530.0)})
@Js
def PyJs_anonymous_265_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'util', u'exports', u'_interopRequireWildcard', u'require', u'list', u'_util', u'filename', u'_slash', u'booleanString', u'boolean', u'module', u'_slash2', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_267_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_267_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_booleanString_(val, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
        var.registers([u'val'])
        return var.get(u'util').callprop(u'booleanify', var.get(u'val'))
    PyJsHoisted_booleanString_.func_name = u'booleanString'
    var.put(u'booleanString', PyJsHoisted_booleanString_)
    @Js
    def PyJsHoisted_boolean_(val, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
        var.registers([u'val'])
        return var.get(u'val').neg().neg()
    PyJsHoisted_boolean_.func_name = u'boolean'
    var.put(u'boolean', PyJsHoisted_boolean_)
    @Js
    def PyJsHoisted_list_(val, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
        var.registers([u'val'])
        return var.get(u'util').callprop(u'list', var.get(u'val'))
    PyJsHoisted_list_.func_name = u'list'
    var.put(u'list', PyJsHoisted_list_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_266_ = Js({})
            var.put(u'newObj', PyJs_Object_266_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'filename', var.get(u'undefined'))
    var.get(u'exports').put(u'boolean', var.get(u'boolean'))
    var.get(u'exports').put(u'booleanString', var.get(u'booleanString'))
    var.get(u'exports').put(u'list', var.get(u'list'))
    var.put(u'_slash', var.get(u'require')(Js(u'slash')))
    var.put(u'_slash2', var.get(u'_interopRequireDefault')(var.get(u'_slash')))
    var.put(u'_util', var.get(u'require')(Js(u'../../../util')))
    var.put(u'util', var.get(u'_interopRequireWildcard')(var.get(u'_util')))
    pass
    pass
    var.put(u'filename', var.get(u'exports').put(u'filename', var.get(u'_slash2').get(u'default')))
    pass
    pass
    pass
PyJs_anonymous_265_._set_name(u'anonymous')
PyJs_Object_268_ = Js({u'../../../util':Js(26.0),u'slash':Js(508.0)})
@Js
def PyJs_anonymous_269_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    PyJs_Object_271_ = Js({u'message':Js(u'Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`')})
    PyJs_Object_272_ = Js({u'message':Js(u'Put the specific transforms you want in the `plugins` option')})
    PyJs_Object_273_ = Js({u'message':Js(u'This is not a necessary option in Babel 6')})
    PyJs_Object_274_ = Js({u'message':Js(u'Put the specific transforms you want in the `plugins` option')})
    PyJs_Object_275_ = Js({u'message':Js(u'Use the `external-helpers` plugin instead. Check out http://babeljs.io/docs/plugins/external-helpers/')})
    PyJs_Object_276_ = Js({u'message':Js(u'')})
    PyJs_Object_277_ = Js({u'message':Js(u'use the `pragma` option in the `react-jsx` plugin . Check out http://babeljs.io/docs/plugins/transform-react-jsx/')})
    PyJs_Object_278_ = Js({u'message':Js(u'Specify the `loose` option for the relevant plugin you are using or use a preset that sets the option.')})
    PyJs_Object_279_ = Js({u'message':Js(u'Not required anymore as this is enabled by default')})
    PyJs_Object_280_ = Js({u'message':Js(u'Use the corresponding module transform plugin in the `plugins` option. Check out http://babeljs.io/docs/plugins/#modules')})
    PyJs_Object_281_ = Js({u'message':Js(u'Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. Also check out the react preset http://babeljs.io/docs/plugins/preset-react/')})
    PyJs_Object_282_ = Js({u'message':Js(u'Put the specific transforms you want in the `plugins` option')})
    PyJs_Object_283_ = Js({u'message':Js(u'Use the `sourceMapTarget` option')})
    PyJs_Object_284_ = Js({u'message':Js(u'Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets')})
    PyJs_Object_285_ = Js({u'message':Js(u'Put the specific transforms you want in the `plugins` option')})
    PyJs_Object_270_ = Js({u'auxiliaryComment':PyJs_Object_271_,u'blacklist':PyJs_Object_272_,u'breakConfig':PyJs_Object_273_,u'experimental':PyJs_Object_274_,u'externalHelpers':PyJs_Object_275_,u'extra':PyJs_Object_276_,u'jsxPragma':PyJs_Object_277_,u'loose':PyJs_Object_278_,u'metadataUsedHelpers':PyJs_Object_279_,u'modules':PyJs_Object_280_,u'nonStandard':PyJs_Object_281_,u'optional':PyJs_Object_282_,u'sourceMapName':PyJs_Object_283_,u'stage':PyJs_Object_284_,u'whitelist':PyJs_Object_285_})
    var.get(u'module').put(u'exports', PyJs_Object_270_)
PyJs_anonymous_269_._set_name(u'anonymous')
PyJs_Object_286_ = Js({})
@Js
def PyJs_anonymous_287_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_plugin', u'exports', u'_plugin2', u'require', u'module', u'_sortBy2', u'_interopRequireDefault', u'_sortBy'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_288_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_288_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_plugin', var.get(u'require')(Js(u'../plugin')))
    var.put(u'_plugin2', var.get(u'_interopRequireDefault')(var.get(u'_plugin')))
    var.put(u'_sortBy', var.get(u'require')(Js(u'lodash/sortBy')))
    var.put(u'_sortBy2', var.get(u'_interopRequireDefault')(var.get(u'_sortBy')))
    pass
    @Js
    def PyJs_exit_292_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'exit':PyJs_exit_292_, u'arguments':arguments}, var)
        var.registers([u'node', u'hasChange', u'_ref', u'bodyNode', u'i'])
        var.put(u'node', var.get(u'_ref').get(u'node'))
        var.put(u'hasChange', Js(False))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'node').get(u'body').get(u'length')):
            try:
                var.put(u'bodyNode', var.get(u'node').get(u'body').get(var.get(u'i')))
                if (var.get(u'bodyNode') and (var.get(u'bodyNode').get(u'_blockHoist')!=var.get(u"null"))):
                    var.put(u'hasChange', var.get(u'true'))
                    break
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        if var.get(u'hasChange').neg():
            return var.get('undefined')
        @Js
        def PyJs_anonymous_293_(bodyNode, this, arguments, var=var):
            var = Scope({u'bodyNode':bodyNode, u'this':this, u'arguments':arguments}, var)
            var.registers([u'priority', u'bodyNode'])
            var.put(u'priority', (var.get(u'bodyNode') and var.get(u'bodyNode').get(u'_blockHoist')))
            if (var.get(u'priority')==var.get(u"null")):
                var.put(u'priority', Js(1.0))
            if PyJsStrictEq(var.get(u'priority'),var.get(u'true')):
                var.put(u'priority', Js(2.0))
            return ((-Js(1.0))*var.get(u'priority'))
        PyJs_anonymous_293_._set_name(u'anonymous')
        var.get(u'node').put(u'body', PyJsComma(Js(0.0),var.get(u'_sortBy2').get(u'default'))(var.get(u'node').get(u'body'), PyJs_anonymous_293_))
    PyJs_exit_292_._set_name(u'exit')
    PyJs_Object_291_ = Js({u'exit':PyJs_exit_292_})
    PyJs_Object_290_ = Js({u'Block':PyJs_Object_291_})
    PyJs_Object_289_ = Js({u'name':Js(u'internal.blockHoist'),u'visitor':PyJs_Object_290_})
    var.get(u'exports').put(u'default', var.get(u'_plugin2').get(u'default').create(PyJs_Object_289_))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_287_._set_name(u'anonymous')
PyJs_Object_294_ = Js({u'../plugin':Js(25.0),u'lodash/sortBy':Js(485.0)})
@Js
def PyJs_anonymous_295_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_plugin', u'remap', u'_symbol2', u'superVisitor', u'_interopRequireWildcard', u'_plugin2', u'SUPER_THIS_BOUND', u'require', u'_babelTypes', u'exports', u'module', u'_symbol', u't', u'_interopRequireDefault', u'shouldShadow'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_297_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_297_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_remap_(path, key, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'key':key}, var)
        var.registers([u'passedShadowFunction', u'cached', u'shadowFunction', u'classPath', u'hasSuperClass', u'init', u'key', u'fnPath', u'path', u'shadowPath', u'currentFunction', u'id'])
        var.put(u'shadowPath', var.get(u'path').callprop(u'inShadow', var.get(u'key')))
        if var.get(u'shouldShadow')(var.get(u'path'), var.get(u'shadowPath')).neg():
            return var.get('undefined')
        var.put(u'shadowFunction', var.get(u'path').get(u'node').get(u'_shadowedFunctionLiteral'))
        var.put(u'currentFunction', PyJsComma(Js(0.0), Js(None)))
        var.put(u'passedShadowFunction', Js(False))
        @Js
        def PyJs_anonymous_304_(innerPath, this, arguments, var=var):
            var = Scope({u'this':this, u'innerPath':innerPath, u'arguments':arguments}, var)
            var.registers([u'innerPath'])
            if ((var.get(u'innerPath').get(u'parentPath') and var.get(u'innerPath').get(u'parentPath').callprop(u'isClassProperty')) and PyJsStrictEq(var.get(u'innerPath').get(u'key'),Js(u'value'))):
                return var.get(u'true')
            if PyJsStrictEq(var.get(u'path'),var.get(u'innerPath')):
                return Js(False)
            if (var.get(u'innerPath').callprop(u'isProgram') or var.get(u'innerPath').callprop(u'isFunction')):
                var.put(u'currentFunction', (var.get(u'currentFunction') or var.get(u'innerPath')))
            if var.get(u'innerPath').callprop(u'isProgram'):
                var.put(u'passedShadowFunction', var.get(u'true'))
                return var.get(u'true')
            else:
                if (var.get(u'innerPath').callprop(u'isFunction') and var.get(u'innerPath').callprop(u'isArrowFunctionExpression').neg()):
                    if var.get(u'shadowFunction'):
                        if (PyJsStrictEq(var.get(u'innerPath'),var.get(u'shadowFunction')) or PyJsStrictEq(var.get(u'innerPath').get(u'node'),var.get(u'shadowFunction').get(u'node'))):
                            return var.get(u'true')
                    else:
                        if var.get(u'innerPath').callprop(u'is', Js(u'shadow')).neg():
                            return var.get(u'true')
                    var.put(u'passedShadowFunction', var.get(u'true'))
                    return Js(False)
            return Js(False)
        PyJs_anonymous_304_._set_name(u'anonymous')
        var.put(u'fnPath', var.get(u'path').callprop(u'find', PyJs_anonymous_304_))
        if ((var.get(u'shadowFunction') and var.get(u'fnPath').callprop(u'isProgram')) and var.get(u'shadowFunction').callprop(u'isProgram').neg()):
            @Js
            def PyJs_anonymous_305_(p, this, arguments, var=var):
                var = Scope({u'this':this, u'p':p, u'arguments':arguments}, var)
                var.registers([u'p'])
                return (var.get(u'p').callprop(u'isProgram') or var.get(u'p').callprop(u'isFunction'))
            PyJs_anonymous_305_._set_name(u'anonymous')
            var.put(u'fnPath', var.get(u'path').callprop(u'findParent', PyJs_anonymous_305_))
        if PyJsStrictEq(var.get(u'fnPath'),var.get(u'currentFunction')):
            return var.get('undefined')
        if var.get(u'passedShadowFunction').neg():
            return var.get('undefined')
        var.put(u'cached', var.get(u'fnPath').callprop(u'getData', var.get(u'key')))
        if var.get(u'cached'):
            return var.get(u'path').callprop(u'replaceWith', var.get(u'cached'))
        var.put(u'id', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', var.get(u'key')))
        var.get(u'fnPath').callprop(u'setData', var.get(u'key'), var.get(u'id'))
        @Js
        def PyJs_anonymous_306_(p, this, arguments, var=var):
            var = Scope({u'this':this, u'p':p, u'arguments':arguments}, var)
            var.registers([u'p'])
            return var.get(u'p').callprop(u'isClass')
        PyJs_anonymous_306_._set_name(u'anonymous')
        var.put(u'classPath', var.get(u'fnPath').callprop(u'findParent', PyJs_anonymous_306_))
        var.put(u'hasSuperClass', ((var.get(u'classPath') and var.get(u'classPath').get(u'node')) and var.get(u'classPath').get(u'node').get(u'superClass')).neg().neg())
        PyJs_Object_307_ = Js({u'kind':Js(u'constructor')})
        if ((PyJsStrictEq(var.get(u'key'),Js(u'this')) and var.get(u'fnPath').callprop(u'isMethod', PyJs_Object_307_)) and var.get(u'hasSuperClass')):
            PyJs_Object_308_ = Js({u'id':var.get(u'id')})
            var.get(u'fnPath').get(u'scope').callprop(u'push', PyJs_Object_308_)
            PyJs_Object_309_ = Js({u'id':var.get(u'id')})
            var.get(u'fnPath').callprop(u'traverse', var.get(u'superVisitor'), PyJs_Object_309_)
        else:
            var.put(u'init', (var.get(u't').callprop(u'thisExpression') if PyJsStrictEq(var.get(u'key'),Js(u'this')) else var.get(u't').callprop(u'identifier', var.get(u'key'))))
            if var.get(u'shadowFunction'):
                var.get(u'init').put(u'_shadowedFunctionLiteral', var.get(u'shadowFunction'))
            PyJs_Object_310_ = Js({u'id':var.get(u'id'),u'init':var.get(u'init')})
            var.get(u'fnPath').get(u'scope').callprop(u'push', PyJs_Object_310_)
        return var.get(u'path').callprop(u'replaceWith', var.get(u'id'))
    PyJsHoisted_remap_.func_name = u'remap'
    var.put(u'remap', PyJsHoisted_remap_)
    @Js
    def PyJsHoisted_shouldShadow_(path, shadowPath, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'shadowPath':shadowPath, u'arguments':arguments}, var)
        var.registers([u'path', u'shadowPath'])
        if var.get(u'path').callprop(u'is', Js(u'_forceShadow')):
            return var.get(u'true')
        else:
            return var.get(u'shadowPath')
    PyJsHoisted_shouldShadow_.func_name = u'shouldShadow'
    var.put(u'shouldShadow', PyJsHoisted_shouldShadow_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_296_ = Js({})
            var.put(u'newObj', PyJs_Object_296_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_symbol', var.get(u'require')(Js(u'babel-runtime/core-js/symbol')))
    var.put(u'_symbol2', var.get(u'_interopRequireDefault')(var.get(u'_symbol')))
    var.put(u'_plugin', var.get(u'require')(Js(u'../plugin')))
    var.put(u'_plugin2', var.get(u'_interopRequireDefault')(var.get(u'_plugin')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.put(u'SUPER_THIS_BOUND', PyJsComma(Js(0.0),var.get(u'_symbol2').get(u'default'))(Js(u'super this bound')))
    @Js
    def PyJs_CallExpression_299_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'CallExpression':PyJs_CallExpression_299_}, var)
        var.registers([u'node', u'path'])
        if var.get(u'path').callprop(u'get', Js(u'callee')).callprop(u'isSuper').neg():
            return var.get('undefined')
        var.put(u'node', var.get(u'path').get(u'node'))
        if var.get(u'node').get(var.get(u'SUPER_THIS_BOUND')):
            return var.get('undefined')
        var.get(u'node').put(var.get(u'SUPER_THIS_BOUND'), var.get(u'true'))
        var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u"this").get(u'id'), var.get(u'node')))
    PyJs_CallExpression_299_._set_name(u'CallExpression')
    PyJs_Object_298_ = Js({u'CallExpression':PyJs_CallExpression_299_})
    var.put(u'superVisitor', PyJs_Object_298_)
    @Js
    def PyJs_ThisExpression_302_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'ThisExpression':PyJs_ThisExpression_302_, u'arguments':arguments}, var)
        var.registers([u'path'])
        var.get(u'remap')(var.get(u'path'), Js(u'this'))
    PyJs_ThisExpression_302_._set_name(u'ThisExpression')
    @Js
    def PyJs_ReferencedIdentifier_303_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_303_, u'arguments':arguments}, var)
        var.registers([u'path'])
        if PyJsStrictEq(var.get(u'path').get(u'node').get(u'name'),Js(u'arguments')):
            var.get(u'remap')(var.get(u'path'), Js(u'arguments'))
    PyJs_ReferencedIdentifier_303_._set_name(u'ReferencedIdentifier')
    PyJs_Object_301_ = Js({u'ThisExpression':PyJs_ThisExpression_302_,u'ReferencedIdentifier':PyJs_ReferencedIdentifier_303_})
    PyJs_Object_300_ = Js({u'name':Js(u'internal.shadowFunctions'),u'visitor':PyJs_Object_301_})
    var.get(u'exports').put(u'default', var.get(u'_plugin2').get(u'default').create(PyJs_Object_300_))
    pass
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_295_._set_name(u'anonymous')
PyJs_Object_311_ = Js({u'../plugin':Js(25.0),u'babel-runtime/core-js/symbol':Js(105.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_312_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_plugin', u'Pipeline', u'_plugin2', u'_file', u'require', u'_normalizeAst2', u'exports', u'module', u'_file2', u'_interopRequireDefault', u'_classCallCheck3', u'_classCallCheck2', u'_normalizeAst'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_313_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_313_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_normalizeAst', var.get(u'require')(Js(u'../helpers/normalize-ast')))
    var.put(u'_normalizeAst2', var.get(u'_interopRequireDefault')(var.get(u'_normalizeAst')))
    var.put(u'_plugin', var.get(u'require')(Js(u'./plugin')))
    var.put(u'_plugin2', var.get(u'_interopRequireDefault')(var.get(u'_plugin')))
    var.put(u'_file', var.get(u'require')(Js(u'./file')))
    var.put(u'_file2', var.get(u'_interopRequireDefault')(var.get(u'_file')))
    pass
    @Js
    def PyJs_anonymous_314_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'Pipeline'])
        @Js
        def PyJsHoisted_Pipeline_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Pipeline'))
        PyJsHoisted_Pipeline_.func_name = u'Pipeline'
        var.put(u'Pipeline', PyJsHoisted_Pipeline_)
        pass
        @Js
        def PyJs_lint_315_(code, this, arguments, var=var):
            var = Scope({u'this':this, u'lint':PyJs_lint_315_, u'code':code, u'arguments':arguments}, var)
            var.registers([u'code', u'opts'])
            PyJs_Object_316_ = Js({})
            var.put(u'opts', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else PyJs_Object_316_))
            var.get(u'opts').put(u'code', Js(False))
            var.get(u'opts').put(u'mode', Js(u'lint'))
            return var.get(u"this").callprop(u'transform', var.get(u'code'), var.get(u'opts'))
        PyJs_lint_315_._set_name(u'lint')
        var.get(u'Pipeline').get(u'prototype').put(u'lint', PyJs_lint_315_)
        @Js
        def PyJs_pretransform_317_(code, opts, this, arguments, var=var):
            var = Scope({u'this':this, u'pretransform':PyJs_pretransform_317_, u'code':code, u'arguments':arguments, u'opts':opts}, var)
            var.registers([u'code', u'opts', u'file'])
            var.put(u'file', var.get(u'_file2').get(u'default').create(var.get(u'opts'), var.get(u"this")))
            @Js
            def PyJs_anonymous_318_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                var.get(u'file').callprop(u'addCode', var.get(u'code'))
                var.get(u'file').callprop(u'parseCode', var.get(u'code'))
                return var.get(u'file')
            PyJs_anonymous_318_._set_name(u'anonymous')
            return var.get(u'file').callprop(u'wrap', var.get(u'code'), PyJs_anonymous_318_)
        PyJs_pretransform_317_._set_name(u'pretransform')
        var.get(u'Pipeline').get(u'prototype').put(u'pretransform', PyJs_pretransform_317_)
        @Js
        def PyJs_transform_319_(code, opts, this, arguments, var=var):
            var = Scope({u'this':this, u'code':code, u'arguments':arguments, u'opts':opts, u'transform':PyJs_transform_319_}, var)
            var.registers([u'code', u'opts', u'file'])
            var.put(u'file', var.get(u'_file2').get(u'default').create(var.get(u'opts'), var.get(u"this")))
            @Js
            def PyJs_anonymous_320_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                var.get(u'file').callprop(u'addCode', var.get(u'code'))
                var.get(u'file').callprop(u'parseCode', var.get(u'code'))
                return var.get(u'file').callprop(u'transform')
            PyJs_anonymous_320_._set_name(u'anonymous')
            return var.get(u'file').callprop(u'wrap', var.get(u'code'), PyJs_anonymous_320_)
        PyJs_transform_319_._set_name(u'transform')
        var.get(u'Pipeline').get(u'prototype').put(u'transform', PyJs_transform_319_)
        @Js
        def PyJs_analyse_321_(code, this, arguments, var=var):
            var = Scope({u'this':this, u'code':code, u'analyse':PyJs_analyse_321_, u'arguments':arguments}, var)
            var.registers([u'visitor', u'code', u'opts'])
            PyJs_Object_322_ = Js({})
            var.put(u'opts', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else PyJs_Object_322_))
            var.put(u'visitor', var.get(u'arguments').get(u'2'))
            var.get(u'opts').put(u'code', Js(False))
            if var.get(u'visitor'):
                var.get(u'opts').put(u'plugins', (var.get(u'opts').get(u'plugins') or Js([])))
                PyJs_Object_323_ = Js({u'visitor':var.get(u'visitor')})
                var.get(u'opts').get(u'plugins').callprop(u'push', var.get(u'_plugin2').get(u'default').create(PyJs_Object_323_))
            return var.get(u"this").callprop(u'transform', var.get(u'code'), var.get(u'opts')).get(u'metadata')
        PyJs_analyse_321_._set_name(u'analyse')
        var.get(u'Pipeline').get(u'prototype').put(u'analyse', PyJs_analyse_321_)
        @Js
        def PyJs_transformFromAst_324_(ast, code, opts, this, arguments, var=var):
            var = Scope({u'code':code, u'ast':ast, u'this':this, u'transformFromAst':PyJs_transformFromAst_324_, u'arguments':arguments, u'opts':opts}, var)
            var.registers([u'code', u'opts', u'file', u'ast'])
            var.put(u'ast', PyJsComma(Js(0.0),var.get(u'_normalizeAst2').get(u'default'))(var.get(u'ast')))
            var.put(u'file', var.get(u'_file2').get(u'default').create(var.get(u'opts'), var.get(u"this")))
            @Js
            def PyJs_anonymous_325_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                var.get(u'file').callprop(u'addCode', var.get(u'code'))
                var.get(u'file').callprop(u'addAst', var.get(u'ast'))
                return var.get(u'file').callprop(u'transform')
            PyJs_anonymous_325_._set_name(u'anonymous')
            return var.get(u'file').callprop(u'wrap', var.get(u'code'), PyJs_anonymous_325_)
        PyJs_transformFromAst_324_._set_name(u'transformFromAst')
        var.get(u'Pipeline').get(u'prototype').put(u'transformFromAst', PyJs_transformFromAst_324_)
        return var.get(u'Pipeline')
    PyJs_anonymous_314_._set_name(u'anonymous')
    var.put(u'Pipeline', PyJs_anonymous_314_())
    var.get(u'exports').put(u'default', var.get(u'Pipeline'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_312_._set_name(u'anonymous')
PyJs_Object_326_ = Js({u'../helpers/normalize-ast':Js(8.0),u'./file':Js(12.0),u'./plugin':Js(25.0),u'babel-runtime/helpers/classCallCheck':Js(110.0)})
@Js
def PyJs_anonymous_327_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_store', u'_inherits3', u'_inherits2', u'require', u'_file6', u'_possibleConstructorReturn3', u'_possibleConstructorReturn2', u'module', u'_file5', u'_store2', u'PluginPass', u'_interopRequireDefault', u'_classCallCheck3', u'_classCallCheck2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_328_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_328_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_possibleConstructorReturn2', var.get(u'require')(Js(u'babel-runtime/helpers/possibleConstructorReturn')))
    var.put(u'_possibleConstructorReturn3', var.get(u'_interopRequireDefault')(var.get(u'_possibleConstructorReturn2')))
    var.put(u'_inherits2', var.get(u'require')(Js(u'babel-runtime/helpers/inherits')))
    var.put(u'_inherits3', var.get(u'_interopRequireDefault')(var.get(u'_inherits2')))
    var.put(u'_store', var.get(u'require')(Js(u'../store')))
    var.put(u'_store2', var.get(u'_interopRequireDefault')(var.get(u'_store')))
    var.put(u'_file5', var.get(u'require')(Js(u'./file')))
    var.put(u'_file6', var.get(u'_interopRequireDefault')(var.get(u'_file5')))
    pass
    @Js
    def PyJs_anonymous_329_(_Store, this, arguments, var=var):
        var = Scope({u'this':this, u'_Store':_Store, u'arguments':arguments}, var)
        var.registers([u'PluginPass', u'_Store'])
        @Js
        def PyJsHoisted_PluginPass_(file, plugin, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'file':file, u'plugin':plugin}, var)
            var.registers([u'file', u'options', u'_this', u'plugin'])
            PyJs_Object_330_ = Js({})
            var.put(u'options', (var.get(u'arguments').get(u'2') if ((var.get(u'arguments').get(u'length')>Js(2.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'2'),var.get(u'undefined'))) else PyJs_Object_330_))
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'PluginPass'))
            var.put(u'_this', PyJsComma(Js(0.0),var.get(u'_possibleConstructorReturn3').get(u'default'))(var.get(u"this"), var.get(u'_Store').callprop(u'call', var.get(u"this"))))
            var.get(u'_this').put(u'plugin', var.get(u'plugin'))
            var.get(u'_this').put(u'key', var.get(u'plugin').get(u'key'))
            var.get(u'_this').put(u'file', var.get(u'file'))
            var.get(u'_this').put(u'opts', var.get(u'options'))
            return var.get(u'_this')
        PyJsHoisted_PluginPass_.func_name = u'PluginPass'
        var.put(u'PluginPass', PyJsHoisted_PluginPass_)
        PyJsComma(Js(0.0),var.get(u'_inherits3').get(u'default'))(var.get(u'PluginPass'), var.get(u'_Store'))
        pass
        @Js
        def PyJs_addHelper_331_(this, arguments, var=var):
            var = Scope({u'this':this, u'addHelper':PyJs_addHelper_331_, u'arguments':arguments}, var)
            var.registers([u'_file'])
            pass
            return var.put(u'_file', var.get(u"this").get(u'file')).get(u'addHelper').callprop(u'apply', var.get(u'_file'), var.get(u'arguments'))
        PyJs_addHelper_331_._set_name(u'addHelper')
        var.get(u'PluginPass').get(u'prototype').put(u'addHelper', PyJs_addHelper_331_)
        @Js
        def PyJs_addImport_332_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'addImport':PyJs_addImport_332_}, var)
            var.registers([u'_file2'])
            pass
            return var.put(u'_file2', var.get(u"this").get(u'file')).get(u'addImport').callprop(u'apply', var.get(u'_file2'), var.get(u'arguments'))
        PyJs_addImport_332_._set_name(u'addImport')
        var.get(u'PluginPass').get(u'prototype').put(u'addImport', PyJs_addImport_332_)
        @Js
        def PyJs_getModuleName_333_(this, arguments, var=var):
            var = Scope({u'this':this, u'getModuleName':PyJs_getModuleName_333_, u'arguments':arguments}, var)
            var.registers([u'_file3'])
            pass
            return var.put(u'_file3', var.get(u"this").get(u'file')).get(u'getModuleName').callprop(u'apply', var.get(u'_file3'), var.get(u'arguments'))
        PyJs_getModuleName_333_._set_name(u'getModuleName')
        var.get(u'PluginPass').get(u'prototype').put(u'getModuleName', PyJs_getModuleName_333_)
        @Js
        def PyJs_buildCodeFrameError_334_(this, arguments, var=var):
            var = Scope({u'this':this, u'buildCodeFrameError':PyJs_buildCodeFrameError_334_, u'arguments':arguments}, var)
            var.registers([u'_file4'])
            pass
            return var.put(u'_file4', var.get(u"this").get(u'file')).get(u'buildCodeFrameError').callprop(u'apply', var.get(u'_file4'), var.get(u'arguments'))
        PyJs_buildCodeFrameError_334_._set_name(u'buildCodeFrameError')
        var.get(u'PluginPass').get(u'prototype').put(u'buildCodeFrameError', PyJs_buildCodeFrameError_334_)
        return var.get(u'PluginPass')
    PyJs_anonymous_329_._set_name(u'anonymous')
    var.put(u'PluginPass', PyJs_anonymous_329_(var.get(u'_store2').get(u'default')))
    var.get(u'exports').put(u'default', var.get(u'PluginPass'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_327_._set_name(u'anonymous')
PyJs_Object_335_ = Js({u'../store':Js(10.0),u'./file':Js(12.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-runtime/helpers/inherits':Js(111.0),u'babel-runtime/helpers/possibleConstructorReturn':Js(113.0)})
@Js
def PyJs_anonymous_336_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_store', u'module', u'_clone', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'_babelTraverse', u'_possibleConstructorReturn3', u'_possibleConstructorReturn2', u'_store2', u'_optionManager2', u'_classCallCheck3', u'_classCallCheck2', u'_optionManager', u'exports', u'_babelTraverse2', u'_interopRequireWildcard', u'Plugin', u'_inherits3', u'_inherits2', u'_assign', u'_assign2', u'require', u'messages', u'GLOBAL_VISITOR_PROPS', u'_clone2', u'_babelMessages'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_338_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_338_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_337_ = Js({})
            var.put(u'newObj', PyJs_Object_337_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_possibleConstructorReturn2', var.get(u'require')(Js(u'babel-runtime/helpers/possibleConstructorReturn')))
    var.put(u'_possibleConstructorReturn3', var.get(u'_interopRequireDefault')(var.get(u'_possibleConstructorReturn2')))
    var.put(u'_inherits2', var.get(u'require')(Js(u'babel-runtime/helpers/inherits')))
    var.put(u'_inherits3', var.get(u'_interopRequireDefault')(var.get(u'_inherits2')))
    var.put(u'_optionManager', var.get(u'require')(Js(u'./file/options/option-manager')))
    var.put(u'_optionManager2', var.get(u'_interopRequireDefault')(var.get(u'_optionManager')))
    var.put(u'_babelMessages', var.get(u'require')(Js(u'babel-messages')))
    var.put(u'messages', var.get(u'_interopRequireWildcard')(var.get(u'_babelMessages')))
    var.put(u'_store', var.get(u'require')(Js(u'../store')))
    var.put(u'_store2', var.get(u'_interopRequireDefault')(var.get(u'_store')))
    var.put(u'_babelTraverse', var.get(u'require')(Js(u'babel-traverse')))
    var.put(u'_babelTraverse2', var.get(u'_interopRequireDefault')(var.get(u'_babelTraverse')))
    var.put(u'_assign', var.get(u'require')(Js(u'lodash/assign')))
    var.put(u'_assign2', var.get(u'_interopRequireDefault')(var.get(u'_assign')))
    var.put(u'_clone', var.get(u'require')(Js(u'lodash/clone')))
    var.put(u'_clone2', var.get(u'_interopRequireDefault')(var.get(u'_clone')))
    pass
    pass
    var.put(u'GLOBAL_VISITOR_PROPS', Js([Js(u'enter'), Js(u'exit')]))
    @Js
    def PyJs_anonymous_339_(_Store, this, arguments, var=var):
        var = Scope({u'this':this, u'_Store':_Store, u'arguments':arguments}, var)
        var.registers([u'_Store', u'Plugin'])
        @Js
        def PyJsHoisted_Plugin_(plugin, key, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'key':key, u'plugin':plugin}, var)
            var.registers([u'key', u'_this', u'plugin'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Plugin'))
            var.put(u'_this', PyJsComma(Js(0.0),var.get(u'_possibleConstructorReturn3').get(u'default'))(var.get(u"this"), var.get(u'_Store').callprop(u'call', var.get(u"this"))))
            var.get(u'_this').put(u'initialized', Js(False))
            PyJs_Object_340_ = Js({})
            var.get(u'_this').put(u'raw', PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(PyJs_Object_340_, var.get(u'plugin')))
            var.get(u'_this').put(u'key', (var.get(u'_this').callprop(u'take', Js(u'name')) or var.get(u'key')))
            var.get(u'_this').put(u'manipulateOptions', var.get(u'_this').callprop(u'take', Js(u'manipulateOptions')))
            var.get(u'_this').put(u'post', var.get(u'_this').callprop(u'take', Js(u'post')))
            var.get(u'_this').put(u'pre', var.get(u'_this').callprop(u'take', Js(u'pre')))
            PyJs_Object_341_ = Js({})
            var.get(u'_this').put(u'visitor', var.get(u'_this').callprop(u'normaliseVisitor', (PyJsComma(Js(0.0),var.get(u'_clone2').get(u'default'))(var.get(u'_this').callprop(u'take', Js(u'visitor'))) or PyJs_Object_341_)))
            return var.get(u'_this')
        PyJsHoisted_Plugin_.func_name = u'Plugin'
        var.put(u'Plugin', PyJsHoisted_Plugin_)
        PyJsComma(Js(0.0),var.get(u'_inherits3').get(u'default'))(var.get(u'Plugin'), var.get(u'_Store'))
        pass
        @Js
        def PyJs_take_342_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'key':key, u'take':PyJs_take_342_}, var)
            var.registers([u'key', u'val'])
            var.put(u'val', var.get(u"this").get(u'raw').get(var.get(u'key')))
            var.get(u"this").get(u'raw').delete(var.get(u'key'))
            return var.get(u'val')
        PyJs_take_342_._set_name(u'take')
        var.get(u'Plugin').get(u'prototype').put(u'take', PyJs_take_342_)
        @Js
        def PyJs_chain_343_(target, key, this, arguments, var=var):
            var = Scope({u'this':this, u'chain':PyJs_chain_343_, u'target':target, u'key':key, u'arguments':arguments}, var)
            var.registers([u'fns', u'target', u'key'])
            if var.get(u'target').get(var.get(u'key')).neg():
                return var.get(u"this").get(var.get(u'key'))
            if var.get(u"this").get(var.get(u'key')).neg():
                return var.get(u'target').get(var.get(u'key'))
            var.put(u'fns', Js([var.get(u'target').get(var.get(u'key')), var.get(u"this").get(var.get(u'key'))]))
            @Js
            def PyJs_anonymous_344_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'_isArray', u'_iterator', u'val', u'_len', u'args', u'ret', u'_key', u'_i', u'_ref', u'fn'])
                var.put(u'val', PyJsComma(Js(0.0), Js(None)))
                #for JS loop
                var.put(u'_len', var.get(u'arguments').get(u'length'))
                var.put(u'args', var.get(u'Array')(var.get(u'_len')))
                var.put(u'_key', Js(0.0))
                while (var.get(u'_key')<var.get(u'_len')):
                    try:
                        var.get(u'args').put(var.get(u'_key'), var.get(u'arguments').get(var.get(u'_key')))
                    finally:
                            (var.put(u'_key',Js(var.get(u'_key').to_number())+Js(1))-Js(1))
                #for JS loop
                var.put(u'_iterator', var.get(u'fns'))
                var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
                var.put(u'_i', Js(0.0))
                var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
                while 1:
                    pass
                    if var.get(u'_isArray'):
                        if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                            break
                        var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                        if var.get(u'_i').get(u'done'):
                            break
                        var.put(u'_ref', var.get(u'_i').get(u'value'))
                    var.put(u'fn', var.get(u'_ref'))
                    if var.get(u'fn'):
                        var.put(u'ret', var.get(u'fn').callprop(u'apply', var.get(u"this"), var.get(u'args')))
                        if (var.get(u'ret')!=var.get(u"null")):
                            var.put(u'val', var.get(u'ret'))
                
                return var.get(u'val')
            PyJs_anonymous_344_._set_name(u'anonymous')
            return PyJs_anonymous_344_
        PyJs_chain_343_._set_name(u'chain')
        var.get(u'Plugin').get(u'prototype').put(u'chain', PyJs_chain_343_)
        @Js
        def PyJs_maybeInherit_345_(loc, this, arguments, var=var):
            var = Scope({u'this':this, u'loc':loc, u'arguments':arguments, u'maybeInherit':PyJs_maybeInherit_345_}, var)
            var.registers([u'inherits', u'loc'])
            var.put(u'inherits', var.get(u"this").callprop(u'take', Js(u'inherits')))
            if var.get(u'inherits').neg():
                return var.get('undefined')
            var.put(u'inherits', var.get(u'_optionManager2').get(u'default').callprop(u'normalisePlugin', var.get(u'inherits'), var.get(u'loc'), Js(u'inherits')))
            var.get(u"this").put(u'manipulateOptions', var.get(u"this").callprop(u'chain', var.get(u'inherits'), Js(u'manipulateOptions')))
            var.get(u"this").put(u'post', var.get(u"this").callprop(u'chain', var.get(u'inherits'), Js(u'post')))
            var.get(u"this").put(u'pre', var.get(u"this").callprop(u'chain', var.get(u'inherits'), Js(u'pre')))
            var.get(u"this").put(u'visitor', var.get(u'_babelTraverse2').get(u'default').get(u'visitors').callprop(u'merge', Js([var.get(u'inherits').get(u'visitor'), var.get(u"this").get(u'visitor')])))
        PyJs_maybeInherit_345_._set_name(u'maybeInherit')
        var.get(u'Plugin').get(u'prototype').put(u'maybeInherit', PyJs_maybeInherit_345_)
        @Js
        def PyJs_init_346_(loc, i, this, arguments, var=var):
            var = Scope({u'i':i, u'loc':loc, u'init':PyJs_init_346_, u'this':this, u'arguments':arguments}, var)
            var.registers([u'i', u'loc', u'key'])
            if var.get(u"this").get(u'initialized'):
                return var.get('undefined')
            var.get(u"this").put(u'initialized', var.get(u'true'))
            var.get(u"this").callprop(u'maybeInherit', var.get(u'loc'))
            for PyJsTemp in var.get(u"this").get(u'raw'):
                var.put(u'key', PyJsTemp)
                PyJsTempException = JsToPyException(var.get(u'Error').create(var.get(u'messages').callprop(u'get', Js(u'pluginInvalidProperty'), var.get(u'loc'), var.get(u'i'), var.get(u'key'))))
                raise PyJsTempException
        PyJs_init_346_._set_name(u'init')
        var.get(u'Plugin').get(u'prototype').put(u'init', PyJs_init_346_)
        @Js
        def PyJs_normaliseVisitor_347_(visitor, this, arguments, var=var):
            var = Scope({u'this':this, u'visitor':visitor, u'normaliseVisitor':PyJs_normaliseVisitor_347_, u'arguments':arguments}, var)
            var.registers([u'_isArray2', u'visitor', u'_i2', u'_ref2', u'key', u'_iterator2'])
            #for JS loop
            var.put(u'_iterator2', var.get(u'GLOBAL_VISITOR_PROPS'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                var.put(u'key', var.get(u'_ref2'))
                if var.get(u'visitor').get(var.get(u'key')):
                    PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"Plugins aren't allowed to specify catch-all enter/exit handlers. Please target individual nodes.")))
                    raise PyJsTempException
            
            var.get(u'_babelTraverse2').get(u'default').callprop(u'explode', var.get(u'visitor'))
            return var.get(u'visitor')
        PyJs_normaliseVisitor_347_._set_name(u'normaliseVisitor')
        var.get(u'Plugin').get(u'prototype').put(u'normaliseVisitor', PyJs_normaliseVisitor_347_)
        return var.get(u'Plugin')
    PyJs_anonymous_339_._set_name(u'anonymous')
    var.put(u'Plugin', PyJs_anonymous_339_(var.get(u'_store2').get(u'default')))
    var.get(u'exports').put(u'default', var.get(u'Plugin'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_336_._set_name(u'anonymous')
PyJs_Object_348_ = Js({u'../store':Js(10.0),u'./file/options/option-manager':Js(18.0),u'babel-messages':Js(57.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-runtime/helpers/inherits':Js(111.0),u'babel-runtime/helpers/possibleConstructorReturn':Js(113.0),u'babel-traverse':Js(225.0),u'lodash/assign':Js(435.0),u'lodash/clone':Js(438.0)})
@Js
def PyJs_anonymous_349_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_shouldIgnore', u'_startsWith', u'module', u'_isString2', u'_slash2', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'_isBoolean', u'_isRegExp2', u'shouldIgnore', u'_slash', u'booleanify', u'_isRegExp', u'_minimatch2', u'exports', u'_escapeRegExp2', u'_minimatch', u'_includes2', u'_util', u'canCompile', u'_path2', u'arrayify', u'_escapeRegExp', u'_isString', u'_startsWith2', u'list', u'regexify', u'_includes', u'require', u'_isBoolean2', u'_path'])
    @Js
    def PyJsHoisted__shouldIgnore_(pattern, filename, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'arguments':arguments, u'filename':filename}, var)
        var.registers([u'pattern', u'filename'])
        if PyJsStrictEq(var.get(u'pattern',throw=False).typeof(),Js(u'function')):
            return var.get(u'pattern')(var.get(u'filename'))
        else:
            return var.get(u'pattern').callprop(u'test', var.get(u'filename'))
    PyJsHoisted__shouldIgnore_.func_name = u'_shouldIgnore'
    var.put(u'_shouldIgnore', PyJsHoisted__shouldIgnore_)
    @Js
    def PyJsHoisted_shouldIgnore_(filename, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'filename':filename}, var)
        var.registers([u'_isArray', u'_pattern', u'_iterator', u'_isArray2', u'pattern', u'_i2', u'_ref2', u'ignore', u'only', u'_i', u'_ref', u'filename', u'_iterator2'])
        var.put(u'ignore', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else Js([])))
        var.put(u'only', var.get(u'arguments').get(u'2'))
        var.put(u'filename', var.get(u'filename').callprop(u'replace', JsRegExp(u'/\\\\/g'), Js(u'/')))
        if var.get(u'only'):
            #for JS loop
            var.put(u'_iterator', var.get(u'only'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'pattern', var.get(u'_ref'))
                if var.get(u'_shouldIgnore')(var.get(u'pattern'), var.get(u'filename')):
                    return Js(False)
            
            return var.get(u'true')
        else:
            if var.get(u'ignore').get(u'length'):
                #for JS loop
                var.put(u'_iterator2', var.get(u'ignore'))
                var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
                var.put(u'_i2', Js(0.0))
                var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
                while 1:
                    pass
                    if var.get(u'_isArray2'):
                        if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                            break
                        var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                        if var.get(u'_i2').get(u'done'):
                            break
                        var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                    var.put(u'_pattern', var.get(u'_ref2'))
                    if var.get(u'_shouldIgnore')(var.get(u'_pattern'), var.get(u'filename')):
                        return var.get(u'true')
                
        return Js(False)
    PyJsHoisted_shouldIgnore_.func_name = u'shouldIgnore'
    var.put(u'shouldIgnore', PyJsHoisted_shouldIgnore_)
    @Js
    def PyJsHoisted_list_(val, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
        var.registers([u'val'])
        if var.get(u'val').neg():
            return Js([])
        else:
            if var.get(u'Array').callprop(u'isArray', var.get(u'val')):
                return var.get(u'val')
            else:
                if PyJsStrictEq(var.get(u'val',throw=False).typeof(),Js(u'string')):
                    return var.get(u'val').callprop(u'split', Js(u','))
                else:
                    return Js([var.get(u'val')])
    PyJsHoisted_list_.func_name = u'list'
    var.put(u'list', PyJsHoisted_list_)
    @Js
    def PyJsHoisted_regexify_(val, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
        var.registers([u'regex', u'val'])
        if var.get(u'val').neg():
            return var.get(u'RegExp').create(JsRegExp(u'/.^/'))
        if var.get(u'Array').callprop(u'isArray', var.get(u'val')):
            var.put(u'val', var.get(u'RegExp').create(var.get(u'val').callprop(u'map', var.get(u'_escapeRegExp2').get(u'default')).callprop(u'join', Js(u'|')), Js(u'i')))
        if PyJsStrictEq(var.get(u'val',throw=False).typeof(),Js(u'string')):
            var.put(u'val', PyJsComma(Js(0.0),var.get(u'_slash2').get(u'default'))(var.get(u'val')))
            if (PyJsComma(Js(0.0),var.get(u'_startsWith2').get(u'default'))(var.get(u'val'), Js(u'./')) or PyJsComma(Js(0.0),var.get(u'_startsWith2').get(u'default'))(var.get(u'val'), Js(u'*/'))):
                var.put(u'val', var.get(u'val').callprop(u'slice', Js(2.0)))
            if PyJsComma(Js(0.0),var.get(u'_startsWith2').get(u'default'))(var.get(u'val'), Js(u'**/')):
                var.put(u'val', var.get(u'val').callprop(u'slice', Js(3.0)))
            PyJs_Object_355_ = Js({u'nocase':var.get(u'true')})
            var.put(u'regex', var.get(u'_minimatch2').get(u'default').callprop(u'makeRe', var.get(u'val'), PyJs_Object_355_))
            return var.get(u'RegExp').create(var.get(u'regex').get(u'source').callprop(u'slice', Js(1.0), (-Js(1.0))), Js(u'i'))
        if PyJsComma(Js(0.0),var.get(u'_isRegExp2').get(u'default'))(var.get(u'val')):
            return var.get(u'val')
        PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'illegal type for regexify')))
        raise PyJsTempException
    PyJsHoisted_regexify_.func_name = u'regexify'
    var.put(u'regexify', PyJsHoisted_regexify_)
    @Js
    def PyJsHoisted_booleanify_(val, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
        var.registers([u'val'])
        if (PyJsStrictEq(var.get(u'val'),Js(u'true')) or (var.get(u'val')==Js(1.0))):
            return var.get(u'true')
        if ((PyJsStrictEq(var.get(u'val'),Js(u'false')) or (var.get(u'val')==Js(0.0))) or var.get(u'val').neg()):
            return Js(False)
        return var.get(u'val')
    PyJsHoisted_booleanify_.func_name = u'booleanify'
    var.put(u'booleanify', PyJsHoisted_booleanify_)
    @Js
    def PyJsHoisted_canCompile_(filename, altExts, this, arguments, var=var):
        var = Scope({u'this':this, u'altExts':altExts, u'arguments':arguments, u'filename':filename}, var)
        var.registers([u'ext', u'exts', u'altExts', u'filename'])
        var.put(u'exts', (var.get(u'altExts') or var.get(u'canCompile').get(u'EXTENSIONS')))
        var.put(u'ext', var.get(u'_path2').get(u'default').callprop(u'extname', var.get(u'filename')))
        return PyJsComma(Js(0.0),var.get(u'_includes2').get(u'default'))(var.get(u'exts'), var.get(u'ext'))
    PyJsHoisted_canCompile_.func_name = u'canCompile'
    var.put(u'canCompile', PyJsHoisted_canCompile_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_354_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_354_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_arrayify_(val, mapFn, this, arguments, var=var):
        var = Scope({u'this':this, u'mapFn':mapFn, u'arguments':arguments, u'val':val}, var)
        var.registers([u'mapFn', u'val'])
        if var.get(u'val').neg():
            return Js([])
        if PyJsComma(Js(0.0),var.get(u'_isBoolean2').get(u'default'))(var.get(u'val')):
            return var.get(u'arrayify')(Js([var.get(u'val')]), var.get(u'mapFn'))
        if PyJsComma(Js(0.0),var.get(u'_isString2').get(u'default'))(var.get(u'val')):
            return var.get(u'arrayify')(var.get(u'list')(var.get(u'val')), var.get(u'mapFn'))
        if var.get(u'Array').callprop(u'isArray', var.get(u'val')):
            if var.get(u'mapFn'):
                var.put(u'val', var.get(u'val').callprop(u'map', var.get(u'mapFn')))
            return var.get(u'val')
        return Js([var.get(u'val')])
    PyJsHoisted_arrayify_.func_name = u'arrayify'
    var.put(u'arrayify', PyJsHoisted_arrayify_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'inspect', var.get(u'exports').put(u'inherits', var.get(u'undefined')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_util', var.get(u'require')(Js(u'util')))
    @Js
    def PyJs_get_351_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_351_}, var)
        var.registers([])
        return var.get(u'_util').get(u'inherits')
    PyJs_get_351_._set_name(u'get')
    PyJs_Object_350_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_351_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'inherits'), PyJs_Object_350_)
    @Js
    def PyJs_get_353_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_353_}, var)
        var.registers([])
        return var.get(u'_util').get(u'inspect')
    PyJs_get_353_._set_name(u'get')
    PyJs_Object_352_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_353_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'inspect'), PyJs_Object_352_)
    var.get(u'exports').put(u'canCompile', var.get(u'canCompile'))
    var.get(u'exports').put(u'list', var.get(u'list'))
    var.get(u'exports').put(u'regexify', var.get(u'regexify'))
    var.get(u'exports').put(u'arrayify', var.get(u'arrayify'))
    var.get(u'exports').put(u'booleanify', var.get(u'booleanify'))
    var.get(u'exports').put(u'shouldIgnore', var.get(u'shouldIgnore'))
    var.put(u'_escapeRegExp', var.get(u'require')(Js(u'lodash/escapeRegExp')))
    var.put(u'_escapeRegExp2', var.get(u'_interopRequireDefault')(var.get(u'_escapeRegExp')))
    var.put(u'_startsWith', var.get(u'require')(Js(u'lodash/startsWith')))
    var.put(u'_startsWith2', var.get(u'_interopRequireDefault')(var.get(u'_startsWith')))
    var.put(u'_isBoolean', var.get(u'require')(Js(u'lodash/isBoolean')))
    var.put(u'_isBoolean2', var.get(u'_interopRequireDefault')(var.get(u'_isBoolean')))
    var.put(u'_minimatch', var.get(u'require')(Js(u'minimatch')))
    var.put(u'_minimatch2', var.get(u'_interopRequireDefault')(var.get(u'_minimatch')))
    var.put(u'_includes', var.get(u'require')(Js(u'lodash/includes')))
    var.put(u'_includes2', var.get(u'_interopRequireDefault')(var.get(u'_includes')))
    var.put(u'_isString', var.get(u'require')(Js(u'lodash/isString')))
    var.put(u'_isString2', var.get(u'_interopRequireDefault')(var.get(u'_isString')))
    var.put(u'_isRegExp', var.get(u'require')(Js(u'lodash/isRegExp')))
    var.put(u'_isRegExp2', var.get(u'_interopRequireDefault')(var.get(u'_isRegExp')))
    var.put(u'_path', var.get(u'require')(Js(u'path')))
    var.put(u'_path2', var.get(u'_interopRequireDefault')(var.get(u'_path')))
    var.put(u'_slash', var.get(u'require')(Js(u'slash')))
    var.put(u'_slash2', var.get(u'_interopRequireDefault')(var.get(u'_slash')))
    pass
    pass
    var.get(u'canCompile').put(u'EXTENSIONS', Js([Js(u'.js'), Js(u'.jsx'), Js(u'.es6'), Js(u'.es')]))
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_349_._set_name(u'anonymous')
PyJs_Object_356_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'lodash/escapeRegExp':Js(445.0),u'lodash/includes':Js(456.0),u'lodash/isBoolean':Js(461.0),u'lodash/isRegExp':Js(470.0),u'lodash/isString':Js(471.0),u'lodash/startsWith':Js(486.0),u'minimatch':Js(27.0),u'path':Js(530.0),u'slash':Js(508.0),u'util':Js(534.0)})
@Js
def PyJs_anonymous_357_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'Minimatch', u'qmark', u'module', u'parse', u'regExpEscape', u'path', u'minimatch', u'reSpecials', u'make', u'twoStarNoDot', u'match', u'exports', u'star', u'plTypes', u'charSet', u'parseNegate', u'twoStarDot', u'expand', u'SUBPARSE', u'globUnescape', u'braceExpand', u'makeRe', u'GLOBSTAR', u'slashSplit', u'filter', u'ext', u'require'])
    @Js
    def PyJsHoisted_minimatch_(p, pattern, options, this, arguments, var=var):
        var = Scope({u'this':this, u'p':p, u'options':options, u'arguments':arguments, u'pattern':pattern}, var)
        var.registers([u'p', u'options', u'pattern'])
        if PyJsStrictNeq(var.get(u'pattern',throw=False).typeof(),Js(u'string')):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'glob pattern string required')))
            raise PyJsTempException
        if var.get(u'options').neg():
            PyJs_Object_379_ = Js({})
            var.put(u'options', PyJs_Object_379_)
        if (var.get(u'options').get(u'nocomment').neg() and PyJsStrictEq(var.get(u'pattern').callprop(u'charAt', Js(0.0)),Js(u'#'))):
            return Js(False)
        if PyJsStrictEq(var.get(u'pattern').callprop(u'trim'),Js(u'')):
            return PyJsStrictEq(var.get(u'p'),Js(u''))
        return var.get(u'Minimatch').create(var.get(u'pattern'), var.get(u'options')).callprop(u'match', var.get(u'p'))
    PyJsHoisted_minimatch_.func_name = u'minimatch'
    var.put(u'minimatch', PyJsHoisted_minimatch_)
    @Js
    def PyJsHoisted_globUnescape_(s, this, arguments, var=var):
        var = Scope({u'this':this, u's':s, u'arguments':arguments}, var)
        var.registers([u's'])
        return var.get(u's').callprop(u'replace', JsRegExp(u'/\\\\(.)/g'), Js(u'$1'))
    PyJsHoisted_globUnescape_.func_name = u'globUnescape'
    var.put(u'globUnescape', PyJsHoisted_globUnescape_)
    @Js
    def PyJsHoisted_makeRe_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'twoStar', u'set', u'flags', u'options', u're'])
        if (var.get(u"this").get(u'regexp') or PyJsStrictEq(var.get(u"this").get(u'regexp'),Js(False))):
            return var.get(u"this").get(u'regexp')
        var.put(u'set', var.get(u"this").get(u'set'))
        if var.get(u'set').get(u'length').neg():
            var.get(u"this").put(u'regexp', Js(False))
            return var.get(u"this").get(u'regexp')
        var.put(u'options', var.get(u"this").get(u'options'))
        var.put(u'twoStar', (var.get(u'star') if var.get(u'options').get(u'noglobstar') else (var.get(u'twoStarDot') if var.get(u'options').get(u'dot') else var.get(u'twoStarNoDot'))))
        var.put(u'flags', (Js(u'i') if var.get(u'options').get(u'nocase') else Js(u'')))
        @Js
        def PyJs_anonymous_392_(pattern, this, arguments, var=var):
            var = Scope({u'this':this, u'pattern':pattern, u'arguments':arguments}, var)
            var.registers([u'pattern'])
            @Js
            def PyJs_anonymous_393_(p, this, arguments, var=var):
                var = Scope({u'this':this, u'p':p, u'arguments':arguments}, var)
                var.registers([u'p'])
                return (var.get(u'twoStar') if PyJsStrictEq(var.get(u'p'),var.get(u'GLOBSTAR')) else (var.get(u'regExpEscape')(var.get(u'p')) if PyJsStrictEq(var.get(u'p',throw=False).typeof(),Js(u'string')) else var.get(u'p').get(u'_src')))
            PyJs_anonymous_393_._set_name(u'anonymous')
            return var.get(u'pattern').callprop(u'map', PyJs_anonymous_393_).callprop(u'join', Js(u'\\/'))
        PyJs_anonymous_392_._set_name(u'anonymous')
        var.put(u're', var.get(u'set').callprop(u'map', PyJs_anonymous_392_).callprop(u'join', Js(u'|')))
        var.put(u're', ((Js(u'^(?:')+var.get(u're'))+Js(u')$')))
        if var.get(u"this").get(u'negate'):
            var.put(u're', ((Js(u'^(?!')+var.get(u're'))+Js(u').*$')))
        try:
            var.get(u"this").put(u'regexp', var.get(u'RegExp').create(var.get(u're'), var.get(u'flags')))
        except PyJsException as PyJsTempException:
            PyJsHolder_6578_58961032 = var.own.get(u'ex')
            var.force_own_put(u'ex', PyExceptionToJs(PyJsTempException))
            try:
                var.get(u"this").put(u'regexp', Js(False))
            finally:
                if PyJsHolder_6578_58961032 is not None:
                    var.own[u'ex'] = PyJsHolder_6578_58961032
                else:
                    del var.own[u'ex']
                del PyJsHolder_6578_58961032
        return var.get(u"this").get(u'regexp')
    PyJsHoisted_makeRe_.func_name = u'makeRe'
    var.put(u'makeRe', PyJsHoisted_makeRe_)
    @Js
    def PyJsHoisted_regExpEscape_(s, this, arguments, var=var):
        var = Scope({u'this':this, u's':s, u'arguments':arguments}, var)
        var.registers([u's'])
        return var.get(u's').callprop(u'replace', JsRegExp(u'/[-[\\]{}()*+?.,\\\\^$|#\\s]/g'), Js(u'\\$&'))
    PyJsHoisted_regExpEscape_.func_name = u'regExpEscape'
    var.put(u'regExpEscape', PyJsHoisted_regExpEscape_)
    @Js
    def PyJsHoisted_Minimatch_(pattern, options, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'options':options, u'arguments':arguments}, var)
        var.registers([u'pattern', u'options'])
        if var.get(u"this").instanceof(var.get(u'Minimatch')).neg():
            return var.get(u'Minimatch').create(var.get(u'pattern'), var.get(u'options'))
        if PyJsStrictNeq(var.get(u'pattern',throw=False).typeof(),Js(u'string')):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'glob pattern string required')))
            raise PyJsTempException
        if var.get(u'options').neg():
            PyJs_Object_380_ = Js({})
            var.put(u'options', PyJs_Object_380_)
        var.put(u'pattern', var.get(u'pattern').callprop(u'trim'))
        if PyJsStrictNeq(var.get(u'path').get(u'sep'),Js(u'/')):
            var.put(u'pattern', var.get(u'pattern').callprop(u'split', var.get(u'path').get(u'sep')).callprop(u'join', Js(u'/')))
        var.get(u"this").put(u'options', var.get(u'options'))
        var.get(u"this").put(u'set', Js([]))
        var.get(u"this").put(u'pattern', var.get(u'pattern'))
        var.get(u"this").put(u'regexp', var.get(u"null"))
        var.get(u"this").put(u'negate', Js(False))
        var.get(u"this").put(u'comment', Js(False))
        var.get(u"this").put(u'empty', Js(False))
        var.get(u"this").callprop(u'make')
    PyJsHoisted_Minimatch_.func_name = u'Minimatch'
    var.put(u'Minimatch', PyJsHoisted_Minimatch_)
    @Js
    def PyJsHoisted_make_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'pattern', u'set', u'options'])
        if var.get(u"this").get(u'_made'):
            return var.get('undefined')
        var.put(u'pattern', var.get(u"this").get(u'pattern'))
        var.put(u'options', var.get(u"this").get(u'options'))
        if (var.get(u'options').get(u'nocomment').neg() and PyJsStrictEq(var.get(u'pattern').callprop(u'charAt', Js(0.0)),Js(u'#'))):
            var.get(u"this").put(u'comment', var.get(u'true'))
            return var.get('undefined')
        if var.get(u'pattern').neg():
            var.get(u"this").put(u'empty', var.get(u'true'))
            return var.get('undefined')
        var.get(u"this").callprop(u'parseNegate')
        var.put(u'set', var.get(u"this").put(u'globSet', var.get(u"this").callprop(u'braceExpand')))
        if var.get(u'options').get(u'debug'):
            var.get(u"this").put(u'debug', var.get(u'console').get(u'error'))
        var.get(u"this").callprop(u'debug', var.get(u"this").get(u'pattern'), var.get(u'set'))
        @Js
        def PyJs_anonymous_382_(s, this, arguments, var=var):
            var = Scope({u'this':this, u's':s, u'arguments':arguments}, var)
            var.registers([u's'])
            return var.get(u's').callprop(u'split', var.get(u'slashSplit'))
        PyJs_anonymous_382_._set_name(u'anonymous')
        var.put(u'set', var.get(u"this").put(u'globParts', var.get(u'set').callprop(u'map', PyJs_anonymous_382_)))
        var.get(u"this").callprop(u'debug', var.get(u"this").get(u'pattern'), var.get(u'set'))
        @Js
        def PyJs_anonymous_383_(s, si, set, this, arguments, var=var):
            var = Scope({u'this':this, u's':s, u'set':set, u'si':si, u'arguments':arguments}, var)
            var.registers([u's', u'set', u'si'])
            return var.get(u's').callprop(u'map', var.get(u"this").get(u'parse'), var.get(u"this"))
        PyJs_anonymous_383_._set_name(u'anonymous')
        var.put(u'set', var.get(u'set').callprop(u'map', PyJs_anonymous_383_, var.get(u"this")))
        var.get(u"this").callprop(u'debug', var.get(u"this").get(u'pattern'), var.get(u'set'))
        @Js
        def PyJs_anonymous_384_(s, this, arguments, var=var):
            var = Scope({u'this':this, u's':s, u'arguments':arguments}, var)
            var.registers([u's'])
            return PyJsStrictEq(var.get(u's').callprop(u'indexOf', Js(False)),(-Js(1.0)))
        PyJs_anonymous_384_._set_name(u'anonymous')
        var.put(u'set', var.get(u'set').callprop(u'filter', PyJs_anonymous_384_))
        var.get(u"this").callprop(u'debug', var.get(u"this").get(u'pattern'), var.get(u'set'))
        var.get(u"this").put(u'set', var.get(u'set'))
    PyJsHoisted_make_.func_name = u'make'
    var.put(u'make', PyJsHoisted_make_)
    @Js
    def PyJsHoisted_charSet_(s, this, arguments, var=var):
        var = Scope({u'this':this, u's':s, u'arguments':arguments}, var)
        var.registers([u's'])
        @Js
        def PyJs_anonymous_366_(set, c, this, arguments, var=var):
            var = Scope({u'this':this, u'c':c, u'set':set, u'arguments':arguments}, var)
            var.registers([u'c', u'set'])
            var.get(u'set').put(var.get(u'c'), var.get(u'true'))
            return var.get(u'set')
        PyJs_anonymous_366_._set_name(u'anonymous')
        PyJs_Object_367_ = Js({})
        return var.get(u's').callprop(u'split', Js(u'')).callprop(u'reduce', PyJs_anonymous_366_, PyJs_Object_367_)
    PyJsHoisted_charSet_.func_name = u'charSet'
    var.put(u'charSet', PyJsHoisted_charSet_)
    @Js
    def PyJsHoisted_filter_(pattern, options, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'options':options, u'arguments':arguments}, var)
        var.registers([u'pattern', u'options'])
        PyJs_Object_368_ = Js({})
        var.put(u'options', (var.get(u'options') or PyJs_Object_368_))
        @Js
        def PyJs_anonymous_369_(p, i, list, this, arguments, var=var):
            var = Scope({u'i':i, u'p':p, u'this':this, u'list':list, u'arguments':arguments}, var)
            var.registers([u'i', u'p', u'list'])
            return var.get(u'minimatch')(var.get(u'p'), var.get(u'pattern'), var.get(u'options'))
        PyJs_anonymous_369_._set_name(u'anonymous')
        return PyJs_anonymous_369_
    PyJsHoisted_filter_.func_name = u'filter'
    var.put(u'filter', PyJsHoisted_filter_)
    @Js
    def PyJsHoisted_ext_(a, b, this, arguments, var=var):
        var = Scope({u'a':a, u'this':this, u'b':b, u'arguments':arguments}, var)
        var.registers([u'a', u'b', u't'])
        PyJs_Object_370_ = Js({})
        var.put(u'a', (var.get(u'a') or PyJs_Object_370_))
        PyJs_Object_371_ = Js({})
        var.put(u'b', (var.get(u'b') or PyJs_Object_371_))
        PyJs_Object_372_ = Js({})
        var.put(u't', PyJs_Object_372_)
        @Js
        def PyJs_anonymous_373_(k, this, arguments, var=var):
            var = Scope({u'this':this, u'k':k, u'arguments':arguments}, var)
            var.registers([u'k'])
            var.get(u't').put(var.get(u'k'), var.get(u'b').get(var.get(u'k')))
        PyJs_anonymous_373_._set_name(u'anonymous')
        var.get(u'Object').callprop(u'keys', var.get(u'b')).callprop(u'forEach', PyJs_anonymous_373_)
        @Js
        def PyJs_anonymous_374_(k, this, arguments, var=var):
            var = Scope({u'this':this, u'k':k, u'arguments':arguments}, var)
            var.registers([u'k'])
            var.get(u't').put(var.get(u'k'), var.get(u'a').get(var.get(u'k')))
        PyJs_anonymous_374_._set_name(u'anonymous')
        var.get(u'Object').callprop(u'keys', var.get(u'a')).callprop(u'forEach', PyJs_anonymous_374_)
        return var.get(u't')
    PyJsHoisted_ext_.func_name = u'ext'
    var.put(u'ext', PyJsHoisted_ext_)
    @Js
    def PyJsHoisted_parseNegate_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'i', u'pattern', u'l', u'negateOffset', u'negate', u'options'])
        var.put(u'pattern', var.get(u"this").get(u'pattern'))
        var.put(u'negate', Js(False))
        var.put(u'options', var.get(u"this").get(u'options'))
        var.put(u'negateOffset', Js(0.0))
        if var.get(u'options').get(u'nonegate'):
            return var.get('undefined')
        #for JS loop
        var.put(u'i', Js(0.0))
        var.put(u'l', var.get(u'pattern').get(u'length'))
        while ((var.get(u'i')<var.get(u'l')) and PyJsStrictEq(var.get(u'pattern').callprop(u'charAt', var.get(u'i')),Js(u'!'))):
            try:
                var.put(u'negate', var.get(u'negate').neg())
                (var.put(u'negateOffset',Js(var.get(u'negateOffset').to_number())+Js(1))-Js(1))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        if var.get(u'negateOffset'):
            var.get(u"this").put(u'pattern', var.get(u'pattern').callprop(u'substr', var.get(u'negateOffset')))
        var.get(u"this").put(u'negate', var.get(u'negate'))
    PyJsHoisted_parseNegate_.func_name = u'parseNegate'
    var.put(u'parseNegate', PyJsHoisted_parseNegate_)
    @Js
    def PyJsHoisted_parse_(pattern, isSub, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'isSub':isSub, u'arguments':arguments}, var)
        var.registers([u'hasMagic', u'newRe', u'patternStart', u'dollar', u'nlLast', u'cs', u'isSub', u'nl', u'cleanAfter', u'reClassStart', u'pattern', u'self', u'addPatternStart', u'nlFirst', u're', u'tail', u'classStart', u'clearStateChar', u'regExp', u'pl', u'patternListStack', u'escaping', u'stateChar', u'len', u'nlAfter', u'nlBefore', u'c', u'i', u'sp', u'inClass', u'n', u'openParensBefore', u'flags', u't', u'negativeLists', u'options'])
        @Js
        def PyJsHoisted_clearStateChar_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            if var.get(u'stateChar'):
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'stateChar'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'*')):
                        SWITCHED = True
                        var.put(u're', var.get(u'star'), u'+')
                        var.put(u'hasMagic', var.get(u'true'))
                        break
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'?')):
                        SWITCHED = True
                        var.put(u're', var.get(u'qmark'), u'+')
                        var.put(u'hasMagic', var.get(u'true'))
                        break
                    if True:
                        SWITCHED = True
                        var.put(u're', (Js(u'\\')+var.get(u'stateChar')), u'+')
                        break
                    SWITCHED = True
                    break
                var.get(u'self').callprop(u'debug', Js(u'clearStateChar %j %j'), var.get(u'stateChar'), var.get(u're'))
                var.put(u'stateChar', Js(False))
        PyJsHoisted_clearStateChar_.func_name = u'clearStateChar'
        var.put(u'clearStateChar', PyJsHoisted_clearStateChar_)
        if (var.get(u'pattern').get(u'length')>(Js(1024.0)*Js(64.0))):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'pattern is too long')))
            raise PyJsTempException
        var.put(u'options', var.get(u"this").get(u'options'))
        if (var.get(u'options').get(u'noglobstar').neg() and PyJsStrictEq(var.get(u'pattern'),Js(u'**'))):
            return var.get(u'GLOBSTAR')
        if PyJsStrictEq(var.get(u'pattern'),Js(u'')):
            return Js(u'')
        var.put(u're', Js(u''))
        var.put(u'hasMagic', var.get(u'options').get(u'nocase').neg().neg())
        var.put(u'escaping', Js(False))
        var.put(u'patternListStack', Js([]))
        var.put(u'negativeLists', Js([]))
        pass
        var.put(u'inClass', Js(False))
        var.put(u'reClassStart', (-Js(1.0)))
        var.put(u'classStart', (-Js(1.0)))
        var.put(u'patternStart', (Js(u'') if PyJsStrictEq(var.get(u'pattern').callprop(u'charAt', Js(0.0)),Js(u'.')) else (Js(u'(?!(?:^|\\/)\\.{1,2}(?:$|\\/))') if var.get(u'options').get(u'dot') else Js(u'(?!\\.)'))))
        var.put(u'self', var.get(u"this"))
        pass
        #for JS loop
        var.put(u'i', Js(0.0))
        var.put(u'len', var.get(u'pattern').get(u'length'))
        while ((var.get(u'i')<var.get(u'len')) and var.put(u'c', var.get(u'pattern').callprop(u'charAt', var.get(u'i')))):
            try:
                var.get(u"this").callprop(u'debug', Js(u'%s\t%s %s %j'), var.get(u'pattern'), var.get(u'i'), var.get(u're'), var.get(u'c'))
                if (var.get(u'escaping') and var.get(u'reSpecials').get(var.get(u'c'))):
                    var.put(u're', (Js(u'\\')+var.get(u'c')), u'+')
                    var.put(u'escaping', Js(False))
                    continue
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'c'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'/')):
                        SWITCHED = True
                        return Js(False)
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'\\')):
                        SWITCHED = True
                        var.get(u'clearStateChar')()
                        var.put(u'escaping', var.get(u'true'))
                        continue
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'?')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'*')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'+')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'@')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'!')):
                        SWITCHED = True
                        var.get(u"this").callprop(u'debug', Js(u'%s\t%s %s %j <-- stateChar'), var.get(u'pattern'), var.get(u'i'), var.get(u're'), var.get(u'c'))
                        if var.get(u'inClass'):
                            var.get(u"this").callprop(u'debug', Js(u'  in class'))
                            if (PyJsStrictEq(var.get(u'c'),Js(u'!')) and PyJsStrictEq(var.get(u'i'),(var.get(u'classStart')+Js(1.0)))):
                                var.put(u'c', Js(u'^'))
                            var.put(u're', var.get(u'c'), u'+')
                            continue
                        var.get(u'self').callprop(u'debug', Js(u'call clearStateChar %j'), var.get(u'stateChar'))
                        var.get(u'clearStateChar')()
                        var.put(u'stateChar', var.get(u'c'))
                        if var.get(u'options').get(u'noext'):
                            var.get(u'clearStateChar')()
                        continue
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'(')):
                        SWITCHED = True
                        if var.get(u'inClass'):
                            var.put(u're', Js(u'('), u'+')
                            continue
                        if var.get(u'stateChar').neg():
                            var.put(u're', Js(u'\\('), u'+')
                            continue
                        PyJs_Object_388_ = Js({u'type':var.get(u'stateChar'),u'start':(var.get(u'i')-Js(1.0)),u'reStart':var.get(u're').get(u'length'),u'open':var.get(u'plTypes').get(var.get(u'stateChar')).get(u'open'),u'close':var.get(u'plTypes').get(var.get(u'stateChar')).get(u'close')})
                        var.get(u'patternListStack').callprop(u'push', PyJs_Object_388_)
                        var.put(u're', (Js(u'(?:(?!(?:') if PyJsStrictEq(var.get(u'stateChar'),Js(u'!')) else Js(u'(?:')), u'+')
                        var.get(u"this").callprop(u'debug', Js(u'plType %j %j'), var.get(u'stateChar'), var.get(u're'))
                        var.put(u'stateChar', Js(False))
                        continue
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u')')):
                        SWITCHED = True
                        if (var.get(u'inClass') or var.get(u'patternListStack').get(u'length').neg()):
                            var.put(u're', Js(u'\\)'), u'+')
                            continue
                        var.get(u'clearStateChar')()
                        var.put(u'hasMagic', var.get(u'true'))
                        var.put(u'pl', var.get(u'patternListStack').callprop(u'pop'))
                        var.put(u're', var.get(u'pl').get(u'close'), u'+')
                        if PyJsStrictEq(var.get(u'pl').get(u'type'),Js(u'!')):
                            var.get(u'negativeLists').callprop(u'push', var.get(u'pl'))
                        var.get(u'pl').put(u'reEnd', var.get(u're').get(u'length'))
                        continue
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'|')):
                        SWITCHED = True
                        if ((var.get(u'inClass') or var.get(u'patternListStack').get(u'length').neg()) or var.get(u'escaping')):
                            var.put(u're', Js(u'\\|'), u'+')
                            var.put(u'escaping', Js(False))
                            continue
                        var.get(u'clearStateChar')()
                        var.put(u're', Js(u'|'), u'+')
                        continue
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'[')):
                        SWITCHED = True
                        var.get(u'clearStateChar')()
                        if var.get(u'inClass'):
                            var.put(u're', (Js(u'\\')+var.get(u'c')), u'+')
                            continue
                        var.put(u'inClass', var.get(u'true'))
                        var.put(u'classStart', var.get(u'i'))
                        var.put(u'reClassStart', var.get(u're').get(u'length'))
                        var.put(u're', var.get(u'c'), u'+')
                        continue
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u']')):
                        SWITCHED = True
                        if (PyJsStrictEq(var.get(u'i'),(var.get(u'classStart')+Js(1.0))) or var.get(u'inClass').neg()):
                            var.put(u're', (Js(u'\\')+var.get(u'c')), u'+')
                            var.put(u'escaping', Js(False))
                            continue
                        if var.get(u'inClass'):
                            var.put(u'cs', var.get(u'pattern').callprop(u'substring', (var.get(u'classStart')+Js(1.0)), var.get(u'i')))
                            try:
                                var.get(u'RegExp')(((Js(u'[')+var.get(u'cs'))+Js(u']')))
                            except PyJsException as PyJsTempException:
                                PyJsHolder_6572_91644122 = var.own.get(u'er')
                                var.force_own_put(u'er', PyExceptionToJs(PyJsTempException))
                                try:
                                    var.put(u'sp', var.get(u"this").callprop(u'parse', var.get(u'cs'), var.get(u'SUBPARSE')))
                                    var.put(u're', (((var.get(u're').callprop(u'substr', Js(0.0), var.get(u'reClassStart'))+Js(u'\\['))+var.get(u'sp').get(u'0'))+Js(u'\\]')))
                                    var.put(u'hasMagic', (var.get(u'hasMagic') or var.get(u'sp').get(u'1')))
                                    var.put(u'inClass', Js(False))
                                    continue
                                finally:
                                    if PyJsHolder_6572_91644122 is not None:
                                        var.own[u'er'] = PyJsHolder_6572_91644122
                                    else:
                                        del var.own[u'er']
                                    del PyJsHolder_6572_91644122
                        var.put(u'hasMagic', var.get(u'true'))
                        var.put(u'inClass', Js(False))
                        var.put(u're', var.get(u'c'), u'+')
                        continue
                    if True:
                        SWITCHED = True
                        var.get(u'clearStateChar')()
                        if var.get(u'escaping'):
                            var.put(u'escaping', Js(False))
                        else:
                            if (var.get(u'reSpecials').get(var.get(u'c')) and (PyJsStrictEq(var.get(u'c'),Js(u'^')) and var.get(u'inClass')).neg()):
                                var.put(u're', Js(u'\\'), u'+')
                        var.put(u're', var.get(u'c'), u'+')
                    SWITCHED = True
                    break
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        if var.get(u'inClass'):
            var.put(u'cs', var.get(u'pattern').callprop(u'substr', (var.get(u'classStart')+Js(1.0))))
            var.put(u'sp', var.get(u"this").callprop(u'parse', var.get(u'cs'), var.get(u'SUBPARSE')))
            var.put(u're', ((var.get(u're').callprop(u'substr', Js(0.0), var.get(u'reClassStart'))+Js(u'\\['))+var.get(u'sp').get(u'0')))
            var.put(u'hasMagic', (var.get(u'hasMagic') or var.get(u'sp').get(u'1')))
        #for JS loop
        var.put(u'pl', var.get(u'patternListStack').callprop(u'pop'))
        while var.get(u'pl'):
            try:
                var.put(u'tail', var.get(u're').callprop(u'slice', (var.get(u'pl').get(u'reStart')+var.get(u'pl').get(u'open').get(u'length'))))
                var.get(u"this").callprop(u'debug', Js(u'setting tail'), var.get(u're'), var.get(u'pl'))
                @Js
                def PyJs_anonymous_389_(_, PyJsArg_2431_, PyJsArg_2432_, this, arguments, var=var):
                    var = Scope({u'this':this, u'$2':PyJsArg_2432_, u'arguments':arguments, u'_':_, u'$1':PyJsArg_2431_}, var)
                    var.registers([u'$2', u'_', u'$1'])
                    if var.get(u'$2').neg():
                        var.put(u'$2', Js(u'\\'))
                    return (((var.get(u'$1')+var.get(u'$1'))+var.get(u'$2'))+Js(u'|'))
                PyJs_anonymous_389_._set_name(u'anonymous')
                var.put(u'tail', var.get(u'tail').callprop(u'replace', JsRegExp(u'/((?:\\\\{2}){0,64})(\\\\?)\\|/g'), PyJs_anonymous_389_))
                var.get(u"this").callprop(u'debug', Js(u'tail=%j\n   %s'), var.get(u'tail'), var.get(u'tail'), var.get(u'pl'), var.get(u're'))
                var.put(u't', (var.get(u'star') if PyJsStrictEq(var.get(u'pl').get(u'type'),Js(u'*')) else (var.get(u'qmark') if PyJsStrictEq(var.get(u'pl').get(u'type'),Js(u'?')) else (Js(u'\\')+var.get(u'pl').get(u'type')))))
                var.put(u'hasMagic', var.get(u'true'))
                var.put(u're', (((var.get(u're').callprop(u'slice', Js(0.0), var.get(u'pl').get(u'reStart'))+var.get(u't'))+Js(u'\\('))+var.get(u'tail')))
            finally:
                    var.put(u'pl', var.get(u'patternListStack').callprop(u'pop'))
        var.get(u'clearStateChar')()
        if var.get(u'escaping'):
            var.put(u're', Js(u'\\\\'), u'+')
        var.put(u'addPatternStart', Js(False))
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u're').callprop(u'charAt', Js(0.0)))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'.')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'[')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'(')):
                SWITCHED = True
                var.put(u'addPatternStart', var.get(u'true'))
            SWITCHED = True
            break
        #for JS loop
        var.put(u'n', (var.get(u'negativeLists').get(u'length')-Js(1.0)))
        while (var.get(u'n')>(-Js(1.0))):
            try:
                var.put(u'nl', var.get(u'negativeLists').get(var.get(u'n')))
                var.put(u'nlBefore', var.get(u're').callprop(u'slice', Js(0.0), var.get(u'nl').get(u'reStart')))
                var.put(u'nlFirst', var.get(u're').callprop(u'slice', var.get(u'nl').get(u'reStart'), (var.get(u'nl').get(u'reEnd')-Js(8.0))))
                var.put(u'nlLast', var.get(u're').callprop(u'slice', (var.get(u'nl').get(u'reEnd')-Js(8.0)), var.get(u'nl').get(u'reEnd')))
                var.put(u'nlAfter', var.get(u're').callprop(u'slice', var.get(u'nl').get(u'reEnd')))
                var.put(u'nlLast', var.get(u'nlAfter'), u'+')
                var.put(u'openParensBefore', (var.get(u'nlBefore').callprop(u'split', Js(u'(')).get(u'length')-Js(1.0)))
                var.put(u'cleanAfter', var.get(u'nlAfter'))
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'openParensBefore')):
                    try:
                        var.put(u'cleanAfter', var.get(u'cleanAfter').callprop(u'replace', JsRegExp(u'/\\)[+*?]?/'), Js(u'')))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                var.put(u'nlAfter', var.get(u'cleanAfter'))
                var.put(u'dollar', Js(u''))
                if (PyJsStrictEq(var.get(u'nlAfter'),Js(u'')) and PyJsStrictNeq(var.get(u'isSub'),var.get(u'SUBPARSE'))):
                    var.put(u'dollar', Js(u'$'))
                var.put(u'newRe', ((((var.get(u'nlBefore')+var.get(u'nlFirst'))+var.get(u'nlAfter'))+var.get(u'dollar'))+var.get(u'nlLast')))
                var.put(u're', var.get(u'newRe'))
            finally:
                    (var.put(u'n',Js(var.get(u'n').to_number())-Js(1))+Js(1))
        if (PyJsStrictNeq(var.get(u're'),Js(u'')) and var.get(u'hasMagic')):
            var.put(u're', (Js(u'(?=.)')+var.get(u're')))
        if var.get(u'addPatternStart'):
            var.put(u're', (var.get(u'patternStart')+var.get(u're')))
        if PyJsStrictEq(var.get(u'isSub'),var.get(u'SUBPARSE')):
            return Js([var.get(u're'), var.get(u'hasMagic')])
        if var.get(u'hasMagic').neg():
            return var.get(u'globUnescape')(var.get(u'pattern'))
        var.put(u'flags', (Js(u'i') if var.get(u'options').get(u'nocase') else Js(u'')))
        try:
            var.put(u'regExp', var.get(u'RegExp').create(((Js(u'^')+var.get(u're'))+Js(u'$')), var.get(u'flags')))
        except PyJsException as PyJsTempException:
            PyJsHolder_6572_96421937 = var.own.get(u'er')
            var.force_own_put(u'er', PyExceptionToJs(PyJsTempException))
            try:
                return var.get(u'RegExp').create(Js(u'$.'))
            finally:
                if PyJsHolder_6572_96421937 is not None:
                    var.own[u'er'] = PyJsHolder_6572_96421937
                else:
                    del var.own[u'er']
                del PyJsHolder_6572_96421937
        var.get(u'regExp').put(u'_glob', var.get(u'pattern'))
        var.get(u'regExp').put(u'_src', var.get(u're'))
        return var.get(u'regExp')
    PyJsHoisted_parse_.func_name = u'parse'
    var.put(u'parse', PyJsHoisted_parse_)
    @Js
    def PyJsHoisted_braceExpand_(pattern, options, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'options':options, u'arguments':arguments}, var)
        var.registers([u'pattern', u'options'])
        if var.get(u'options').neg():
            if var.get(u"this").instanceof(var.get(u'Minimatch')):
                var.put(u'options', var.get(u"this").get(u'options'))
            else:
                PyJs_Object_386_ = Js({})
                var.put(u'options', PyJs_Object_386_)
        var.put(u'pattern', (var.get(u"this").get(u'pattern') if PyJsStrictEq(var.get(u'pattern',throw=False).typeof(),Js(u'undefined')) else var.get(u'pattern')))
        if PyJsStrictEq(var.get(u'pattern',throw=False).typeof(),Js(u'undefined')):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'undefined pattern')))
            raise PyJsTempException
        if (var.get(u'options').get(u'nobrace') or var.get(u'pattern').callprop(u'match', JsRegExp(u'/\\{.*\\}/')).neg()):
            return Js([var.get(u'pattern')])
        return var.get(u'expand')(var.get(u'pattern'))
    PyJsHoisted_braceExpand_.func_name = u'braceExpand'
    var.put(u'braceExpand', PyJsHoisted_braceExpand_)
    @Js
    def PyJsHoisted_match_(f, partial, this, arguments, var=var):
        var = Scope({u'this':this, u'partial':partial, u'arguments':arguments, u'f':f}, var)
        var.registers([u'set', u'hit', u'f', u'i', u'pattern', u'filename', u'file', u'partial', u'options'])
        var.get(u"this").callprop(u'debug', Js(u'match'), var.get(u'f'), var.get(u"this").get(u'pattern'))
        if var.get(u"this").get(u'comment'):
            return Js(False)
        if var.get(u"this").get(u'empty'):
            return PyJsStrictEq(var.get(u'f'),Js(u''))
        if (PyJsStrictEq(var.get(u'f'),Js(u'/')) and var.get(u'partial')):
            return var.get(u'true')
        var.put(u'options', var.get(u"this").get(u'options'))
        if PyJsStrictNeq(var.get(u'path').get(u'sep'),Js(u'/')):
            var.put(u'f', var.get(u'f').callprop(u'split', var.get(u'path').get(u'sep')).callprop(u'join', Js(u'/')))
        var.put(u'f', var.get(u'f').callprop(u'split', var.get(u'slashSplit')))
        var.get(u"this").callprop(u'debug', var.get(u"this").get(u'pattern'), Js(u'split'), var.get(u'f'))
        var.put(u'set', var.get(u"this").get(u'set'))
        var.get(u"this").callprop(u'debug', var.get(u"this").get(u'pattern'), Js(u'set'), var.get(u'set'))
        pass
        pass
        #for JS loop
        var.put(u'i', (var.get(u'f').get(u'length')-Js(1.0)))
        while (var.get(u'i')>=Js(0.0)):
            try:
                var.put(u'filename', var.get(u'f').get(var.get(u'i')))
                if var.get(u'filename'):
                    break
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'set').get(u'length')):
            try:
                var.put(u'pattern', var.get(u'set').get(var.get(u'i')))
                var.put(u'file', var.get(u'f'))
                if (var.get(u'options').get(u'matchBase') and PyJsStrictEq(var.get(u'pattern').get(u'length'),Js(1.0))):
                    var.put(u'file', Js([var.get(u'filename')]))
                var.put(u'hit', var.get(u"this").callprop(u'matchOne', var.get(u'file'), var.get(u'pattern'), var.get(u'partial')))
                if var.get(u'hit'):
                    if var.get(u'options').get(u'flipNegate'):
                        return var.get(u'true')
                    return var.get(u"this").get(u'negate').neg()
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        if var.get(u'options').get(u'flipNegate'):
            return Js(False)
        return var.get(u"this").get(u'negate')
    PyJsHoisted_match_.func_name = u'match'
    var.put(u'match', PyJsHoisted_match_)
    var.get(u'module').put(u'exports', var.get(u'minimatch'))
    var.get(u'minimatch').put(u'Minimatch', var.get(u'Minimatch'))
    PyJs_Object_358_ = Js({u'sep':Js(u'/')})
    var.put(u'path', PyJs_Object_358_)
    try:
        var.put(u'path', var.get(u'require')(Js(u'path')))
    except PyJsException as PyJsTempException:
        PyJsHolder_6572_32117432 = var.own.get(u'er')
        var.force_own_put(u'er', PyExceptionToJs(PyJsTempException))
        try:
            pass
        finally:
            if PyJsHolder_6572_32117432 is not None:
                var.own[u'er'] = PyJsHolder_6572_32117432
            else:
                del var.own[u'er']
            del PyJsHolder_6572_32117432
    PyJs_Object_359_ = Js({})
    var.put(u'GLOBSTAR', var.get(u'minimatch').put(u'GLOBSTAR', var.get(u'Minimatch').put(u'GLOBSTAR', PyJs_Object_359_)))
    var.put(u'expand', var.get(u'require')(Js(u'brace-expansion')))
    PyJs_Object_361_ = Js({u'open':Js(u'(?:(?!(?:'),u'close':Js(u'))[^/]*?)')})
    PyJs_Object_362_ = Js({u'open':Js(u'(?:'),u'close':Js(u')?')})
    PyJs_Object_363_ = Js({u'open':Js(u'(?:'),u'close':Js(u')+')})
    PyJs_Object_364_ = Js({u'open':Js(u'(?:'),u'close':Js(u')*')})
    PyJs_Object_365_ = Js({u'open':Js(u'(?:'),u'close':Js(u')')})
    PyJs_Object_360_ = Js({u'!':PyJs_Object_361_,u'?':PyJs_Object_362_,u'+':PyJs_Object_363_,u'*':PyJs_Object_364_,u'@':PyJs_Object_365_})
    var.put(u'plTypes', PyJs_Object_360_)
    var.put(u'qmark', Js(u'[^/]'))
    var.put(u'star', (var.get(u'qmark')+Js(u'*?')))
    var.put(u'twoStarDot', Js(u'(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?'))
    var.put(u'twoStarNoDot', Js(u'(?:(?!(?:\\/|^)\\.).)*?'))
    var.put(u'reSpecials', var.get(u'charSet')(Js(u'().*{}+?[]^$\\!')))
    pass
    var.put(u'slashSplit', JsRegExp(u'/\\/+/'))
    var.get(u'minimatch').put(u'filter', var.get(u'filter'))
    pass
    pass
    @Js
    def PyJs_anonymous_375_(PyJsArg_646566_, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'def':PyJsArg_646566_}, var)
        var.registers([u'm', u'def', u'orig'])
        if (var.get(u'def').neg() or var.get(u'Object').callprop(u'keys', var.get(u'def')).get(u'length').neg()):
            return var.get(u'minimatch')
        var.put(u'orig', var.get(u'minimatch'))
        @Js
        def PyJs_minimatch_376_(p, pattern, options, this, arguments, var=var):
            var = Scope({u'minimatch':PyJs_minimatch_376_, u'this':this, u'pattern':pattern, u'p':p, u'arguments':arguments, u'options':options}, var)
            var.registers([u'p', u'options', u'pattern'])
            return var.get(u'orig').callprop(u'minimatch', var.get(u'p'), var.get(u'pattern'), var.get(u'ext')(var.get(u'def'), var.get(u'options')))
        PyJs_minimatch_376_._set_name(u'minimatch')
        var.put(u'm', PyJs_minimatch_376_)
        @Js
        def PyJs_Minimatch_377_(pattern, options, this, arguments, var=var):
            var = Scope({u'this':this, u'pattern':pattern, u'Minimatch':PyJs_Minimatch_377_, u'options':options, u'arguments':arguments}, var)
            var.registers([u'pattern', u'options'])
            return var.get(u'orig').get(u'Minimatch').create(var.get(u'pattern'), var.get(u'ext')(var.get(u'def'), var.get(u'options')))
        PyJs_Minimatch_377_._set_name(u'Minimatch')
        var.get(u'm').put(u'Minimatch', PyJs_Minimatch_377_)
        return var.get(u'm')
    PyJs_anonymous_375_._set_name(u'anonymous')
    var.get(u'minimatch').put(u'defaults', PyJs_anonymous_375_)
    @Js
    def PyJs_anonymous_378_(PyJsArg_646566_, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'def':PyJsArg_646566_}, var)
        var.registers([u'def'])
        if (var.get(u'def').neg() or var.get(u'Object').callprop(u'keys', var.get(u'def')).get(u'length').neg()):
            return var.get(u'Minimatch')
        return var.get(u'minimatch').callprop(u'defaults', var.get(u'def')).get(u'Minimatch')
    PyJs_anonymous_378_._set_name(u'anonymous')
    var.get(u'Minimatch').put(u'defaults', PyJs_anonymous_378_)
    pass
    pass
    @Js
    def PyJs_anonymous_381_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        pass
    PyJs_anonymous_381_._set_name(u'anonymous')
    var.get(u'Minimatch').get(u'prototype').put(u'debug', PyJs_anonymous_381_)
    var.get(u'Minimatch').get(u'prototype').put(u'make', var.get(u'make'))
    pass
    var.get(u'Minimatch').get(u'prototype').put(u'parseNegate', var.get(u'parseNegate'))
    pass
    @Js
    def PyJs_anonymous_385_(pattern, options, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'options':options, u'arguments':arguments}, var)
        var.registers([u'pattern', u'options'])
        return var.get(u'braceExpand')(var.get(u'pattern'), var.get(u'options'))
    PyJs_anonymous_385_._set_name(u'anonymous')
    var.get(u'minimatch').put(u'braceExpand', PyJs_anonymous_385_)
    var.get(u'Minimatch').get(u'prototype').put(u'braceExpand', var.get(u'braceExpand'))
    pass
    var.get(u'Minimatch').get(u'prototype').put(u'parse', var.get(u'parse'))
    PyJs_Object_387_ = Js({})
    var.put(u'SUBPARSE', PyJs_Object_387_)
    pass
    @Js
    def PyJs_anonymous_390_(pattern, options, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'options':options, u'arguments':arguments}, var)
        var.registers([u'pattern', u'options'])
        PyJs_Object_391_ = Js({})
        return var.get(u'Minimatch').create(var.get(u'pattern'), (var.get(u'options') or PyJs_Object_391_)).callprop(u'makeRe')
    PyJs_anonymous_390_._set_name(u'anonymous')
    var.get(u'minimatch').put(u'makeRe', PyJs_anonymous_390_)
    var.get(u'Minimatch').get(u'prototype').put(u'makeRe', var.get(u'makeRe'))
    pass
    @Js
    def PyJs_anonymous_394_(list, pattern, options, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'list':list, u'options':options, u'arguments':arguments}, var)
        var.registers([u'mm', u'pattern', u'list', u'options'])
        PyJs_Object_395_ = Js({})
        var.put(u'options', (var.get(u'options') or PyJs_Object_395_))
        var.put(u'mm', var.get(u'Minimatch').create(var.get(u'pattern'), var.get(u'options')))
        @Js
        def PyJs_anonymous_396_(f, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'f':f}, var)
            var.registers([u'f'])
            return var.get(u'mm').callprop(u'match', var.get(u'f'))
        PyJs_anonymous_396_._set_name(u'anonymous')
        var.put(u'list', var.get(u'list').callprop(u'filter', PyJs_anonymous_396_))
        if (var.get(u'mm').get(u'options').get(u'nonull') and var.get(u'list').get(u'length').neg()):
            var.get(u'list').callprop(u'push', var.get(u'pattern'))
        return var.get(u'list')
    PyJs_anonymous_394_._set_name(u'anonymous')
    var.get(u'minimatch').put(u'match', PyJs_anonymous_394_)
    var.get(u'Minimatch').get(u'prototype').put(u'match', var.get(u'match'))
    pass
    @Js
    def PyJs_anonymous_397_(file, pattern, partial, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'partial':partial, u'arguments':arguments, u'file':file}, var)
        var.registers([u'pr', u'emptyFileEnd', u'fr', u'hit', u'f', u'pattern', u'p', u'partial', u'file', u'fi', u'swallowee', u'pi', u'fl', u'options', u'pl'])
        var.put(u'options', var.get(u"this").get(u'options'))
        PyJs_Object_398_ = Js({u'this':var.get(u"this"),u'file':var.get(u'file'),u'pattern':var.get(u'pattern')})
        var.get(u"this").callprop(u'debug', Js(u'matchOne'), PyJs_Object_398_)
        var.get(u"this").callprop(u'debug', Js(u'matchOne'), var.get(u'file').get(u'length'), var.get(u'pattern').get(u'length'))
        #for JS loop
        var.put(u'fi', Js(0.0))
        var.put(u'pi', Js(0.0))
        var.put(u'fl', var.get(u'file').get(u'length'))
        var.put(u'pl', var.get(u'pattern').get(u'length'))
        while ((var.get(u'fi')<var.get(u'fl')) and (var.get(u'pi')<var.get(u'pl'))):
            try:
                var.get(u"this").callprop(u'debug', Js(u'matchOne loop'))
                var.put(u'p', var.get(u'pattern').get(var.get(u'pi')))
                var.put(u'f', var.get(u'file').get(var.get(u'fi')))
                var.get(u"this").callprop(u'debug', var.get(u'pattern'), var.get(u'p'), var.get(u'f'))
                if PyJsStrictEq(var.get(u'p'),Js(False)):
                    return Js(False)
                if PyJsStrictEq(var.get(u'p'),var.get(u'GLOBSTAR')):
                    var.get(u"this").callprop(u'debug', Js(u'GLOBSTAR'), Js([var.get(u'pattern'), var.get(u'p'), var.get(u'f')]))
                    var.put(u'fr', var.get(u'fi'))
                    var.put(u'pr', (var.get(u'pi')+Js(1.0)))
                    if PyJsStrictEq(var.get(u'pr'),var.get(u'pl')):
                        var.get(u"this").callprop(u'debug', Js(u'** at the end'))
                        #for JS loop
                        
                        while (var.get(u'fi')<var.get(u'fl')):
                            try:
                                if ((PyJsStrictEq(var.get(u'file').get(var.get(u'fi')),Js(u'.')) or PyJsStrictEq(var.get(u'file').get(var.get(u'fi')),Js(u'..'))) or (var.get(u'options').get(u'dot').neg() and PyJsStrictEq(var.get(u'file').get(var.get(u'fi')).callprop(u'charAt', Js(0.0)),Js(u'.')))):
                                    return Js(False)
                            finally:
                                    (var.put(u'fi',Js(var.get(u'fi').to_number())+Js(1))-Js(1))
                        return var.get(u'true')
                    while (var.get(u'fr')<var.get(u'fl')):
                        var.put(u'swallowee', var.get(u'file').get(var.get(u'fr')))
                        var.get(u"this").callprop(u'debug', Js(u'\nglobstar while'), var.get(u'file'), var.get(u'fr'), var.get(u'pattern'), var.get(u'pr'), var.get(u'swallowee'))
                        if var.get(u"this").callprop(u'matchOne', var.get(u'file').callprop(u'slice', var.get(u'fr')), var.get(u'pattern').callprop(u'slice', var.get(u'pr')), var.get(u'partial')):
                            var.get(u"this").callprop(u'debug', Js(u'globstar found match!'), var.get(u'fr'), var.get(u'fl'), var.get(u'swallowee'))
                            return var.get(u'true')
                        else:
                            if ((PyJsStrictEq(var.get(u'swallowee'),Js(u'.')) or PyJsStrictEq(var.get(u'swallowee'),Js(u'..'))) or (var.get(u'options').get(u'dot').neg() and PyJsStrictEq(var.get(u'swallowee').callprop(u'charAt', Js(0.0)),Js(u'.')))):
                                var.get(u"this").callprop(u'debug', Js(u'dot detected!'), var.get(u'file'), var.get(u'fr'), var.get(u'pattern'), var.get(u'pr'))
                                break
                            var.get(u"this").callprop(u'debug', Js(u'globstar swallow a segment, and continue'))
                            (var.put(u'fr',Js(var.get(u'fr').to_number())+Js(1))-Js(1))
                    if var.get(u'partial'):
                        var.get(u"this").callprop(u'debug', Js(u'\n>>> no match, partial?'), var.get(u'file'), var.get(u'fr'), var.get(u'pattern'), var.get(u'pr'))
                        if PyJsStrictEq(var.get(u'fr'),var.get(u'fl')):
                            return var.get(u'true')
                    return Js(False)
                pass
                if PyJsStrictEq(var.get(u'p',throw=False).typeof(),Js(u'string')):
                    if var.get(u'options').get(u'nocase'):
                        var.put(u'hit', PyJsStrictEq(var.get(u'f').callprop(u'toLowerCase'),var.get(u'p').callprop(u'toLowerCase')))
                    else:
                        var.put(u'hit', PyJsStrictEq(var.get(u'f'),var.get(u'p')))
                    var.get(u"this").callprop(u'debug', Js(u'string match'), var.get(u'p'), var.get(u'f'), var.get(u'hit'))
                else:
                    var.put(u'hit', var.get(u'f').callprop(u'match', var.get(u'p')))
                    var.get(u"this").callprop(u'debug', Js(u'pattern match'), var.get(u'p'), var.get(u'f'), var.get(u'hit'))
                if var.get(u'hit').neg():
                    return Js(False)
            finally:
                    PyJsComma((var.put(u'fi',Js(var.get(u'fi').to_number())+Js(1))-Js(1)),(var.put(u'pi',Js(var.get(u'pi').to_number())+Js(1))-Js(1)))
        if (PyJsStrictEq(var.get(u'fi'),var.get(u'fl')) and PyJsStrictEq(var.get(u'pi'),var.get(u'pl'))):
            return var.get(u'true')
        else:
            if PyJsStrictEq(var.get(u'fi'),var.get(u'fl')):
                return var.get(u'partial')
            else:
                if PyJsStrictEq(var.get(u'pi'),var.get(u'pl')):
                    var.put(u'emptyFileEnd', (PyJsStrictEq(var.get(u'fi'),(var.get(u'fl')-Js(1.0))) and PyJsStrictEq(var.get(u'file').get(var.get(u'fi')),Js(u''))))
                    return var.get(u'emptyFileEnd')
        PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'wtf?')))
        raise PyJsTempException
    PyJs_anonymous_397_._set_name(u'anonymous')
    var.get(u'Minimatch').get(u'prototype').put(u'matchOne', PyJs_anonymous_397_)
    pass
    pass
PyJs_anonymous_357_._set_name(u'anonymous')
PyJs_Object_399_ = Js({u'brace-expansion':Js(264.0),u'path':Js(530.0)})
@Js
def PyJs_anonymous_400_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_402_ = Js({u'raw':Js(u'babel-core'),u'scope':var.get(u"null"),u'escapedName':Js(u'babel-core'),u'name':Js(u'babel-core'),u'rawSpec':Js(u''),u'spec':Js(u'latest'),u'type':Js(u'tag')})
    PyJs_Object_403_ = Js({u'host':Js(u'packages-18-east.internal.npmjs.com'),u'tmp':Js(u'tmp/babel-core-6.18.2.tgz_1478035855416_0.08754534856416285')})
    PyJs_Object_404_ = Js({u'name':Js(u'hzoo'),u'email':Js(u'hi@henryzoo.com')})
    PyJs_Object_405_ = Js({u'brace-expansion':Js(u'1.1.5')})
    PyJs_Object_406_ = Js({u'raw':Js(u'babel-core'),u'scope':var.get(u"null"),u'escapedName':Js(u'babel-core'),u'name':Js(u'babel-core'),u'rawSpec':Js(u''),u'spec':Js(u'latest'),u'type':Js(u'tag')})
    PyJs_Object_407_ = Js({u'name':Js(u'Sebastian McKenzie'),u'email':Js(u'sebmck@gmail.com')})
    PyJs_Object_408_ = Js({u'babel-code-frame':Js(u'^6.16.0'),u'babel-generator':Js(u'^6.18.0'),u'babel-helpers':Js(u'^6.16.0'),u'babel-messages':Js(u'^6.8.0'),u'babel-register':Js(u'^6.18.0'),u'babel-runtime':Js(u'^6.9.1'),u'babel-template':Js(u'^6.16.0'),u'babel-traverse':Js(u'^6.18.0'),u'babel-types':Js(u'^6.18.0'),u'babylon':Js(u'^6.11.0'),u'convert-source-map':Js(u'^1.1.0'),u'debug':Js(u'^2.1.1'),u'json5':Js(u'^0.5.0'),u'lodash':Js(u'^4.2.0'),u'minimatch':Js(u'^3.0.2'),u'path-is-absolute':Js(u'^1.0.0'),u'private':Js(u'^0.1.6'),u'slash':Js(u'^1.0.0'),u'source-map':Js(u'^0.5.0')})
    PyJs_Object_409_ = Js({u'babel-helper-fixtures':Js(u'^6.18.2'),u'babel-helper-transform-fixture-test-runner':Js(u'^6.18.2'),u'babel-polyfill':Js(u'^6.16.0')})
    PyJs_Object_410_ = Js({})
    PyJs_Object_411_ = Js({u'shasum':Js(u'd8bb14dd6986fa4f3566a26ceda3964fa0e04e5b'),u'tarball':Js(u'https://registry.npmjs.org/babel-core/-/babel-core-6.18.2.tgz')})
    PyJs_Object_412_ = Js({u'name':Js(u'amasad'),u'email':Js(u'amjad.masad@gmail.com')})
    PyJs_Object_413_ = Js({u'name':Js(u'hzoo'),u'email':Js(u'hi@henryzoo.com')})
    PyJs_Object_414_ = Js({u'name':Js(u'jmm'),u'email':Js(u'npm-public@jessemccarthy.net')})
    PyJs_Object_415_ = Js({u'name':Js(u'loganfsmyth'),u'email':Js(u'loganfsmyth@gmail.com')})
    PyJs_Object_416_ = Js({u'name':Js(u'sebmck'),u'email':Js(u'sebmck@gmail.com')})
    PyJs_Object_417_ = Js({u'name':Js(u'thejameskyle'),u'email':Js(u'me@thejameskyle.com')})
    PyJs_Object_418_ = Js({})
    PyJs_Object_419_ = Js({u'type':Js(u'git'),u'url':Js(u'https://github.com/babel/babel/tree/master/packages/babel-core')})
    PyJs_Object_420_ = Js({u'bench':Js(u'make bench'),u'test':Js(u'make test')})
    PyJs_Object_401_ = Js({u'_args':Js([Js([PyJs_Object_402_, Js(u'/Users/PiotrDabkowski/PycharmProjects/Js2Py/js2py/es6')])]),u'_from':Js(u'babel-core@latest'),u'_id':Js(u'babel-core@6.18.2'),u'_inCache':var.get(u'true'),u'_location':Js(u'/babel-core'),u'_nodeVersion':Js(u'6.8.1'),u'_npmOperationalInternal':PyJs_Object_403_,u'_npmUser':PyJs_Object_404_,u'_npmVersion':Js(u'3.10.9'),u'_phantomChildren':PyJs_Object_405_,u'_requested':PyJs_Object_406_,u'_requiredBy':Js([Js(u'#USER'), Js(u'/babel-cli'), Js(u'/babel-register'), Js(u'/babelify')]),u'_resolved':Js(u'https://registry.npmjs.org/babel-core/-/babel-core-6.18.2.tgz'),u'_shasum':Js(u'd8bb14dd6986fa4f3566a26ceda3964fa0e04e5b'),u'_shrinkwrap':var.get(u"null"),u'_spec':Js(u'babel-core'),u'_where':Js(u'/Users/PiotrDabkowski/PycharmProjects/Js2Py/js2py/es6'),u'author':PyJs_Object_407_,u'dependencies':PyJs_Object_408_,u'description':Js(u'Babel compiler core.'),u'devDependencies':PyJs_Object_409_,u'directories':PyJs_Object_410_,u'dist':PyJs_Object_411_,u'homepage':Js(u'https://babeljs.io/'),u'keywords':Js([Js(u'6to5'), Js(u'babel'), Js(u'classes'), Js(u'const'), Js(u'es6'), Js(u'harmony'), Js(u'let'), Js(u'modules'), Js(u'transpile'), Js(u'transpiler'), Js(u'var')]),u'license':Js(u'MIT'),u'maintainers':Js([PyJs_Object_412_, PyJs_Object_413_, PyJs_Object_414_, PyJs_Object_415_, PyJs_Object_416_, PyJs_Object_417_]),u'name':Js(u'babel-core'),u'optionalDependencies':PyJs_Object_418_,u'readme':Js(u'ERROR: No README data found!'),u'repository':PyJs_Object_419_,u'scripts':PyJs_Object_420_,u'version':Js(u'6.18.2')})
    var.get(u'module').put(u'exports', PyJs_Object_401_)
PyJs_anonymous_400_._set_name(u'anonymous')
PyJs_Object_421_ = Js({})
@Js
def PyJs_anonymous_422_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'Buffer', u'require', u'_trimEnd2', u'module', u'_trimEnd', u'_interopRequireDefault', u'SPACES_RE', u'_classCallCheck2', u'_classCallCheck3'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_423_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_423_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_trimEnd', var.get(u'require')(Js(u'lodash/trimEnd')))
    var.put(u'_trimEnd2', var.get(u'_interopRequireDefault')(var.get(u'_trimEnd')))
    pass
    var.put(u'SPACES_RE', JsRegExp(u'/^[ \\t]+$/'))
    @Js
    def PyJs_anonymous_424_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'Buffer'])
        @Js
        def PyJsHoisted_Buffer_(map, this, arguments, var=var):
            var = Scope({u'this':this, u'map':map, u'arguments':arguments}, var)
            var.registers([u'map'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Buffer'))
            var.get(u"this").put(u'_map', var.get(u"null"))
            var.get(u"this").put(u'_buf', Js([]))
            var.get(u"this").put(u'_last', Js(u''))
            var.get(u"this").put(u'_queue', Js([]))
            PyJs_Object_425_ = Js({u'line':Js(1.0),u'column':Js(0.0)})
            var.get(u"this").put(u'_position', PyJs_Object_425_)
            PyJs_Object_426_ = Js({u'identifierName':var.get(u"null"),u'line':var.get(u"null"),u'column':var.get(u"null"),u'filename':var.get(u"null")})
            var.get(u"this").put(u'_sourcePosition', PyJs_Object_426_)
            var.get(u"this").put(u'_map', var.get(u'map'))
        PyJsHoisted_Buffer_.func_name = u'Buffer'
        var.put(u'Buffer', PyJsHoisted_Buffer_)
        pass
        @Js
        def PyJs_get_427_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_427_}, var)
            var.registers([])
            var.get(u"this").callprop(u'_flush')
            PyJs_Object_428_ = Js({u'code':PyJsComma(Js(0.0),var.get(u'_trimEnd2').get(u'default'))(var.get(u"this").get(u'_buf').callprop(u'join', Js(u''))),u'map':(var.get(u"this").get(u'_map').callprop(u'get') if var.get(u"this").get(u'_map') else var.get(u"null"))})
            return PyJs_Object_428_
        PyJs_get_427_._set_name(u'get')
        var.get(u'Buffer').get(u'prototype').put(u'get', PyJs_get_427_)
        @Js
        def PyJs_append_429_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'append':PyJs_append_429_, u'arguments':arguments, u'str':str}, var)
            var.registers([u'identifierName', u'column', u'filename', u'str', u'line', u'_sourcePosition'])
            var.get(u"this").callprop(u'_flush')
            var.put(u'_sourcePosition', var.get(u"this").get(u'_sourcePosition'))
            var.put(u'line', var.get(u'_sourcePosition').get(u'line'))
            var.put(u'column', var.get(u'_sourcePosition').get(u'column'))
            var.put(u'filename', var.get(u'_sourcePosition').get(u'filename'))
            var.put(u'identifierName', var.get(u'_sourcePosition').get(u'identifierName'))
            var.get(u"this").callprop(u'_append', var.get(u'str'), var.get(u'line'), var.get(u'column'), var.get(u'identifierName'), var.get(u'filename'))
        PyJs_append_429_._set_name(u'append')
        var.get(u'Buffer').get(u'prototype').put(u'append', PyJs_append_429_)
        @Js
        def PyJs_queue_430_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'queue':PyJs_queue_430_, u'arguments':arguments, u'str':str}, var)
            var.registers([u'identifierName', u'column', u'filename', u'_sourcePosition2', u'str', u'line'])
            if PyJsStrictEq(var.get(u'str'),Js(u'\n')):
                while ((var.get(u"this").get(u'_queue').get(u'length')>Js(0.0)) and var.get(u'SPACES_RE').callprop(u'test', var.get(u"this").get(u'_queue').get(u'0').get(u'0'))):
                    var.get(u"this").get(u'_queue').callprop(u'shift')
            var.put(u'_sourcePosition2', var.get(u"this").get(u'_sourcePosition'))
            var.put(u'line', var.get(u'_sourcePosition2').get(u'line'))
            var.put(u'column', var.get(u'_sourcePosition2').get(u'column'))
            var.put(u'filename', var.get(u'_sourcePosition2').get(u'filename'))
            var.put(u'identifierName', var.get(u'_sourcePosition2').get(u'identifierName'))
            var.get(u"this").get(u'_queue').callprop(u'unshift', Js([var.get(u'str'), var.get(u'line'), var.get(u'column'), var.get(u'identifierName'), var.get(u'filename')]))
        PyJs_queue_430_._set_name(u'queue')
        var.get(u'Buffer').get(u'prototype').put(u'queue', PyJs_queue_430_)
        @Js
        def PyJs__flush_431_(this, arguments, var=var):
            var = Scope({u'this':this, u'_flush':PyJs__flush_431_, u'arguments':arguments}, var)
            var.registers([u'item'])
            var.put(u'item', PyJsComma(Js(0.0), Js(None)))
            while var.put(u'item', var.get(u"this").get(u'_queue').callprop(u'pop')):
                var.get(u"this").get(u'_append').callprop(u'apply', var.get(u"this"), var.get(u'item'))
        PyJs__flush_431_._set_name(u'_flush')
        var.get(u'Buffer').get(u'prototype').put(u'_flush', PyJs__flush_431_)
        @Js
        def PyJs__append_432_(str, line, column, identifierName, filename, this, arguments, var=var):
            var = Scope({u'this':this, u'_append':PyJs__append_432_, u'str':str, u'identifierName':identifierName, u'column':column, u'arguments':arguments, u'line':line, u'filename':filename}, var)
            var.registers([u'identifierName', u'i', u'filename', u'column', u'str', u'line'])
            if (var.get(u"this").get(u'_map') and PyJsStrictNeq(var.get(u'str').get(u'0'),Js(u'\n'))):
                var.get(u"this").get(u'_map').callprop(u'mark', var.get(u"this").get(u'_position').get(u'line'), var.get(u"this").get(u'_position').get(u'column'), var.get(u'line'), var.get(u'column'), var.get(u'identifierName'), var.get(u'filename'))
            var.get(u"this").get(u'_buf').callprop(u'push', var.get(u'str'))
            var.get(u"this").put(u'_last', var.get(u'str').get((var.get(u'str').get(u'length')-Js(1.0))))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'str').get(u'length')):
                try:
                    if PyJsStrictEq(var.get(u'str').get(var.get(u'i')),Js(u'\n')):
                        (var.get(u"this").get(u'_position').put(u'line',Js(var.get(u"this").get(u'_position').get(u'line').to_number())+Js(1))-Js(1))
                        var.get(u"this").get(u'_position').put(u'column', Js(0.0))
                    else:
                        (var.get(u"this").get(u'_position').put(u'column',Js(var.get(u"this").get(u'_position').get(u'column').to_number())+Js(1))-Js(1))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        PyJs__append_432_._set_name(u'_append')
        var.get(u'Buffer').get(u'prototype').put(u'_append', PyJs__append_432_)
        @Js
        def PyJs_removeTrailingNewline_433_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'removeTrailingNewline':PyJs_removeTrailingNewline_433_}, var)
            var.registers([])
            if ((var.get(u"this").get(u'_queue').get(u'length')>Js(0.0)) and PyJsStrictEq(var.get(u"this").get(u'_queue').get(u'0').get(u'0'),Js(u'\n'))):
                var.get(u"this").get(u'_queue').callprop(u'shift')
        PyJs_removeTrailingNewline_433_._set_name(u'removeTrailingNewline')
        var.get(u'Buffer').get(u'prototype').put(u'removeTrailingNewline', PyJs_removeTrailingNewline_433_)
        @Js
        def PyJs_removeLastSemicolon_434_(this, arguments, var=var):
            var = Scope({u'this':this, u'removeLastSemicolon':PyJs_removeLastSemicolon_434_, u'arguments':arguments}, var)
            var.registers([])
            if ((var.get(u"this").get(u'_queue').get(u'length')>Js(0.0)) and PyJsStrictEq(var.get(u"this").get(u'_queue').get(u'0').get(u'0'),Js(u';'))):
                var.get(u"this").get(u'_queue').callprop(u'shift')
        PyJs_removeLastSemicolon_434_._set_name(u'removeLastSemicolon')
        var.get(u'Buffer').get(u'prototype').put(u'removeLastSemicolon', PyJs_removeLastSemicolon_434_)
        @Js
        def PyJs_endsWith_435_(suffix, this, arguments, var=var):
            var = Scope({u'this':this, u'endsWith':PyJs_endsWith_435_, u'suffix':suffix, u'arguments':arguments}, var)
            var.registers([u'end', u'last', u'suffix', u'str'])
            if PyJsStrictEq(var.get(u'suffix').get(u'length'),Js(1.0)):
                var.put(u'last', PyJsComma(Js(0.0), Js(None)))
                if (var.get(u"this").get(u'_queue').get(u'length')>Js(0.0)):
                    var.put(u'str', var.get(u"this").get(u'_queue').get(u'0').get(u'0'))
                    var.put(u'last', var.get(u'str').get((var.get(u'str').get(u'length')-Js(1.0))))
                else:
                    var.put(u'last', var.get(u"this").get(u'_last'))
                return PyJsStrictEq(var.get(u'last'),var.get(u'suffix'))
            @Js
            def PyJs_anonymous_436_(acc, item, this, arguments, var=var):
                var = Scope({u'acc':acc, u'item':item, u'this':this, u'arguments':arguments}, var)
                var.registers([u'acc', u'item'])
                return (var.get(u'item').get(u'0')+var.get(u'acc'))
            PyJs_anonymous_436_._set_name(u'anonymous')
            var.put(u'end', (var.get(u"this").get(u'_last')+var.get(u"this").get(u'_queue').callprop(u'reduce', PyJs_anonymous_436_, Js(u''))))
            if (var.get(u'suffix').get(u'length')<=var.get(u'end').get(u'length')):
                return PyJsStrictEq(var.get(u'end').callprop(u'slice', (-var.get(u'suffix').get(u'length'))),var.get(u'suffix'))
            return Js(False)
        PyJs_endsWith_435_._set_name(u'endsWith')
        var.get(u'Buffer').get(u'prototype').put(u'endsWith', PyJs_endsWith_435_)
        @Js
        def PyJs_hasContent_437_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'hasContent':PyJs_hasContent_437_}, var)
            var.registers([])
            return ((var.get(u"this").get(u'_queue').get(u'length')>Js(0.0)) or var.get(u"this").get(u'_last').neg().neg())
        PyJs_hasContent_437_._set_name(u'hasContent')
        var.get(u'Buffer').get(u'prototype').put(u'hasContent', PyJs_hasContent_437_)
        @Js
        def PyJs_source_438_(prop, loc, this, arguments, var=var):
            var = Scope({u'this':this, u'loc':loc, u'source':PyJs_source_438_, u'arguments':arguments, u'prop':prop}, var)
            var.registers([u'loc', u'pos', u'prop'])
            if (var.get(u'prop') and var.get(u'loc').neg()):
                return var.get('undefined')
            var.put(u'pos', (var.get(u'loc').get(var.get(u'prop')) if var.get(u'loc') else var.get(u"null")))
            var.get(u"this").get(u'_sourcePosition').put(u'identifierName', ((var.get(u'loc') and var.get(u'loc').get(u'identifierName')) or var.get(u"null")))
            var.get(u"this").get(u'_sourcePosition').put(u'line', (var.get(u'pos').get(u'line') if var.get(u'pos') else var.get(u"null")))
            var.get(u"this").get(u'_sourcePosition').put(u'column', (var.get(u'pos').get(u'column') if var.get(u'pos') else var.get(u"null")))
            var.get(u"this").get(u'_sourcePosition').put(u'filename', ((var.get(u'loc') and var.get(u'loc').get(u'filename')) or var.get(u"null")))
        PyJs_source_438_._set_name(u'source')
        var.get(u'Buffer').get(u'prototype').put(u'source', PyJs_source_438_)
        @Js
        def PyJs_withSource_439_(prop, loc, cb, this, arguments, var=var):
            var = Scope({u'loc':loc, u'this':this, u'cb':cb, u'prop':prop, u'withSource':PyJs_withSource_439_, u'arguments':arguments}, var)
            var.registers([u'originalColumn', u'originalIdentifierName', u'loc', u'cb', u'prop', u'originalLine', u'originalFilename'])
            if var.get(u"this").get(u'_map').neg():
                return var.get(u'cb')()
            var.put(u'originalLine', var.get(u"this").get(u'_sourcePosition').get(u'line'))
            var.put(u'originalColumn', var.get(u"this").get(u'_sourcePosition').get(u'column'))
            var.put(u'originalFilename', var.get(u"this").get(u'_sourcePosition').get(u'filename'))
            var.put(u'originalIdentifierName', var.get(u"this").get(u'_sourcePosition').get(u'identifierName'))
            var.get(u"this").callprop(u'source', var.get(u'prop'), var.get(u'loc'))
            var.get(u'cb')()
            var.get(u"this").get(u'_sourcePosition').put(u'line', var.get(u'originalLine'))
            var.get(u"this").get(u'_sourcePosition').put(u'column', var.get(u'originalColumn'))
            var.get(u"this").get(u'_sourcePosition').put(u'filename', var.get(u'originalFilename'))
            var.get(u"this").get(u'_sourcePosition').put(u'identifierName', var.get(u'originalIdentifierName'))
        PyJs_withSource_439_._set_name(u'withSource')
        var.get(u'Buffer').get(u'prototype').put(u'withSource', PyJs_withSource_439_)
        @Js
        def PyJs_getCurrentColumn_440_(this, arguments, var=var):
            var = Scope({u'this':this, u'getCurrentColumn':PyJs_getCurrentColumn_440_, u'arguments':arguments}, var)
            var.registers([u'lastIndex', u'extra'])
            @Js
            def PyJs_anonymous_441_(acc, item, this, arguments, var=var):
                var = Scope({u'acc':acc, u'item':item, u'this':this, u'arguments':arguments}, var)
                var.registers([u'acc', u'item'])
                return (var.get(u'item').get(u'0')+var.get(u'acc'))
            PyJs_anonymous_441_._set_name(u'anonymous')
            var.put(u'extra', var.get(u"this").get(u'_queue').callprop(u'reduce', PyJs_anonymous_441_, Js(u'')))
            var.put(u'lastIndex', var.get(u'extra').callprop(u'lastIndexOf', Js(u'\n')))
            return ((var.get(u"this").get(u'_position').get(u'column')+var.get(u'extra').get(u'length')) if PyJsStrictEq(var.get(u'lastIndex'),(-Js(1.0))) else ((var.get(u'extra').get(u'length')-Js(1.0))-var.get(u'lastIndex')))
        PyJs_getCurrentColumn_440_._set_name(u'getCurrentColumn')
        var.get(u'Buffer').get(u'prototype').put(u'getCurrentColumn', PyJs_getCurrentColumn_440_)
        @Js
        def PyJs_getCurrentLine_442_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'getCurrentLine':PyJs_getCurrentLine_442_}, var)
            var.registers([u'count', u'i', u'extra'])
            @Js
            def PyJs_anonymous_443_(acc, item, this, arguments, var=var):
                var = Scope({u'acc':acc, u'item':item, u'this':this, u'arguments':arguments}, var)
                var.registers([u'acc', u'item'])
                return (var.get(u'item').get(u'0')+var.get(u'acc'))
            PyJs_anonymous_443_._set_name(u'anonymous')
            var.put(u'extra', var.get(u"this").get(u'_queue').callprop(u'reduce', PyJs_anonymous_443_, Js(u'')))
            var.put(u'count', Js(0.0))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'extra').get(u'length')):
                try:
                    if PyJsStrictEq(var.get(u'extra').get(var.get(u'i')),Js(u'\n')):
                        (var.put(u'count',Js(var.get(u'count').to_number())+Js(1))-Js(1))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return (var.get(u"this").get(u'_position').get(u'line')+var.get(u'count'))
        PyJs_getCurrentLine_442_._set_name(u'getCurrentLine')
        var.get(u'Buffer').get(u'prototype').put(u'getCurrentLine', PyJs_getCurrentLine_442_)
        return var.get(u'Buffer')
    PyJs_anonymous_424_._set_name(u'anonymous')
    var.put(u'Buffer', PyJs_anonymous_424_())
    var.get(u'exports').put(u'default', var.get(u'Buffer'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_422_._set_name(u'anonymous')
PyJs_Object_444_ = Js({u'babel-runtime/helpers/classCallCheck':Js(110.0),u'lodash/trimEnd':Js(494.0)})
@Js
def PyJs_anonymous_445_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_types', u'exports', u'Directive', u'require', u'module', u'Program', u'Noop', u'File', u'BlockStatement'])
    @Js
    def PyJsHoisted_BlockStatement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'{'))
        var.get(u"this").callprop(u'printInnerComments', var.get(u'node'))
        if var.get(u'node').get(u'body').get(u'length'):
            var.get(u"this").callprop(u'newline')
            PyJs_Object_448_ = Js({u'indent':var.get(u'true')})
            var.get(u"this").callprop(u'printSequence', var.get(u'node').get(u'directives'), var.get(u'node'), PyJs_Object_448_)
            if (var.get(u'node').get(u'directives') and var.get(u'node').get(u'directives').get(u'length')):
                var.get(u"this").callprop(u'newline')
            PyJs_Object_449_ = Js({u'indent':var.get(u'true')})
            var.get(u"this").callprop(u'printSequence', var.get(u'node').get(u'body'), var.get(u'node'), PyJs_Object_449_)
            var.get(u"this").callprop(u'removeTrailingNewline')
            var.get(u"this").callprop(u'source', Js(u'end'), var.get(u'node').get(u'loc'))
            if var.get(u"this").callprop(u'endsWith', Js(u'\n')).neg():
                var.get(u"this").callprop(u'newline')
            var.get(u"this").callprop(u'rightBrace')
        else:
            var.get(u"this").callprop(u'source', Js(u'end'), var.get(u'node').get(u'loc'))
            var.get(u"this").callprop(u'token', Js(u'}'))
    PyJsHoisted_BlockStatement_.func_name = u'BlockStatement'
    var.put(u'BlockStatement', PyJsHoisted_BlockStatement_)
    @Js
    def PyJsHoisted_Program_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'printInnerComments', var.get(u'node'), Js(False))
        var.get(u"this").callprop(u'printSequence', var.get(u'node').get(u'directives'), var.get(u'node'))
        if (var.get(u'node').get(u'directives') and var.get(u'node').get(u'directives').get(u'length')):
            var.get(u"this").callprop(u'newline')
        var.get(u"this").callprop(u'printSequence', var.get(u'node').get(u'body'), var.get(u'node'))
    PyJsHoisted_Program_.func_name = u'Program'
    var.put(u'Program', PyJsHoisted_Program_)
    @Js
    def PyJsHoisted_Noop_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        pass
    PyJsHoisted_Noop_.func_name = u'Noop'
    var.put(u'Noop', PyJsHoisted_Noop_)
    @Js
    def PyJsHoisted_Directive_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'value'), var.get(u'node'))
        var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_Directive_.func_name = u'Directive'
    var.put(u'Directive', PyJsHoisted_Directive_)
    @Js
    def PyJsHoisted_File_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'program'), var.get(u'node'))
    PyJsHoisted_File_.func_name = u'File'
    var.put(u'File', PyJsHoisted_File_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'File', var.get(u'File'))
    var.get(u'exports').put(u'Program', var.get(u'Program'))
    var.get(u'exports').put(u'BlockStatement', var.get(u'BlockStatement'))
    var.get(u'exports').put(u'Noop', var.get(u'Noop'))
    var.get(u'exports').put(u'Directive', var.get(u'Directive'))
    var.put(u'_types', var.get(u'require')(Js(u'./types')))
    @Js
    def PyJs_get_447_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_447_}, var)
        var.registers([])
        return var.get(u'_types').get(u'StringLiteral')
    PyJs_get_447_._set_name(u'get')
    PyJs_Object_446_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_447_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'DirectiveLiteral'), PyJs_Object_446_)
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_445_._set_name(u'anonymous')
PyJs_Object_450_ = Js({u'./types':Js(39.0)})
@Js
def PyJs_anonymous_451_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'ClassProperty', u'ClassMethod', u'require', u'module', u'ClassDeclaration', u'ClassBody'])
    @Js
    def PyJsHoisted_ClassMethod_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'printJoin', var.get(u'node').get(u'decorators'), var.get(u'node'))
        if var.get(u'node').get(u'static'):
            var.get(u"this").callprop(u'word', Js(u'static'))
            var.get(u"this").callprop(u'space')
        if PyJsStrictEq(var.get(u'node').get(u'kind'),Js(u'constructorCall')):
            var.get(u"this").callprop(u'word', Js(u'call'))
            var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'_method', var.get(u'node'))
    PyJsHoisted_ClassMethod_.func_name = u'ClassMethod'
    var.put(u'ClassMethod', PyJsHoisted_ClassMethod_)
    @Js
    def PyJsHoisted_ClassDeclaration_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'printJoin', var.get(u'node').get(u'decorators'), var.get(u'node'))
        var.get(u"this").callprop(u'word', Js(u'class'))
        if var.get(u'node').get(u'id'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'id'), var.get(u'node'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeParameters'), var.get(u'node'))
        if var.get(u'node').get(u'superClass'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'word', Js(u'extends'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'superClass'), var.get(u'node'))
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'superTypeParameters'), var.get(u'node'))
        if var.get(u'node').get(u'implements'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'word', Js(u'implements'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'printList', var.get(u'node').get(u'implements'), var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'body'), var.get(u'node'))
    PyJsHoisted_ClassDeclaration_.func_name = u'ClassDeclaration'
    var.put(u'ClassDeclaration', PyJsHoisted_ClassDeclaration_)
    @Js
    def PyJsHoisted_ClassBody_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'{'))
        var.get(u"this").callprop(u'printInnerComments', var.get(u'node'))
        if PyJsStrictEq(var.get(u'node').get(u'body').get(u'length'),Js(0.0)):
            var.get(u"this").callprop(u'token', Js(u'}'))
        else:
            var.get(u"this").callprop(u'newline')
            var.get(u"this").callprop(u'indent')
            var.get(u"this").callprop(u'printSequence', var.get(u'node').get(u'body'), var.get(u'node'))
            var.get(u"this").callprop(u'dedent')
            if var.get(u"this").callprop(u'endsWith', Js(u'\n')).neg():
                var.get(u"this").callprop(u'newline')
            var.get(u"this").callprop(u'rightBrace')
    PyJsHoisted_ClassBody_.func_name = u'ClassBody'
    var.put(u'ClassBody', PyJsHoisted_ClassBody_)
    @Js
    def PyJsHoisted_ClassProperty_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'printJoin', var.get(u'node').get(u'decorators'), var.get(u'node'))
        if var.get(u'node').get(u'static'):
            var.get(u"this").callprop(u'word', Js(u'static'))
            var.get(u"this").callprop(u'space')
        if var.get(u'node').get(u'computed'):
            var.get(u"this").callprop(u'token', Js(u'['))
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'key'), var.get(u'node'))
            var.get(u"this").callprop(u'token', Js(u']'))
        else:
            var.get(u"this").callprop(u'_variance', var.get(u'node'))
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'key'), var.get(u'node'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeAnnotation'), var.get(u'node'))
        if var.get(u'node').get(u'value'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'token', Js(u'='))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'value'), var.get(u'node'))
        var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_ClassProperty_.func_name = u'ClassProperty'
    var.put(u'ClassProperty', PyJsHoisted_ClassProperty_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'ClassDeclaration', var.get(u'ClassDeclaration'))
    var.get(u'exports').put(u'ClassBody', var.get(u'ClassBody'))
    var.get(u'exports').put(u'ClassProperty', var.get(u'ClassProperty'))
    var.get(u'exports').put(u'ClassMethod', var.get(u'ClassMethod'))
    pass
    var.get(u'exports').put(u'ClassExpression', var.get(u'ClassDeclaration'))
    pass
    pass
    pass
PyJs_anonymous_451_._set_name(u'anonymous')
PyJs_Object_452_ = Js({})
@Js
def PyJs_anonymous_453_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'ParenthesizedExpression', u'MetaProperty', u'CallExpression', u'ExpressionStatement', u'UpdateExpression', u'module', u'_interopRequireDefault', u'_isNumber', u'_node', u'Super', u'Decorator', u'_isNumber2', u'AssignmentExpression', u'exports', u'commaSeparatorNewline', u'buildYieldAwait', u'_interopRequireWildcard', u'_babelTypes', u'ConditionalExpression', u'DoExpression', u'MemberExpression', u'SequenceExpression', u'UnaryExpression', u'AwaitExpression', u'NewExpression', u'require', u'BindExpression', u'n', u'ThisExpression', u'YieldExpression', u't', u'AssignmentPattern', u'EmptyStatement'])
    @Js
    def PyJsHoisted_ParenthesizedExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'('))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'expression'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u')'))
    PyJsHoisted_ParenthesizedExpression_.func_name = u'ParenthesizedExpression'
    var.put(u'ParenthesizedExpression', PyJsHoisted_ParenthesizedExpression_)
    @Js
    def PyJsHoisted_MetaProperty_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'meta'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'.'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'property'), var.get(u'node'))
    PyJsHoisted_MetaProperty_.func_name = u'MetaProperty'
    var.put(u'MetaProperty', PyJsHoisted_MetaProperty_)
    @Js
    def PyJsHoisted_CallExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'separator', u'isPrettyCall'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'callee'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'('))
        var.put(u'isPrettyCall', var.get(u'node').get(u'_prettyCall'))
        var.put(u'separator', PyJsComma(Js(0.0), Js(None)))
        if var.get(u'isPrettyCall'):
            var.put(u'separator', var.get(u'commaSeparatorNewline'))
            var.get(u"this").callprop(u'newline')
            var.get(u"this").callprop(u'indent')
        PyJs_Object_457_ = Js({u'separator':var.get(u'separator')})
        var.get(u"this").callprop(u'printList', var.get(u'node').get(u'arguments'), var.get(u'node'), PyJs_Object_457_)
        if var.get(u'isPrettyCall'):
            var.get(u"this").callprop(u'newline')
            var.get(u"this").callprop(u'dedent')
        var.get(u"this").callprop(u'token', Js(u')'))
    PyJsHoisted_CallExpression_.func_name = u'CallExpression'
    var.put(u'CallExpression', PyJsHoisted_CallExpression_)
    @Js
    def PyJsHoisted_ExpressionStatement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'expression'), var.get(u'node'))
        var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_ExpressionStatement_.func_name = u'ExpressionStatement'
    var.put(u'ExpressionStatement', PyJsHoisted_ExpressionStatement_)
    @Js
    def PyJsHoisted_UpdateExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u'node').get(u'prefix'):
            var.get(u"this").callprop(u'token', var.get(u'node').get(u'operator'))
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'argument'), var.get(u'node'))
        else:
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'argument'), var.get(u'node'))
            var.get(u"this").callprop(u'token', var.get(u'node').get(u'operator'))
    PyJsHoisted_UpdateExpression_.func_name = u'UpdateExpression'
    var.put(u'UpdateExpression', PyJsHoisted_UpdateExpression_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_455_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_455_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_Super_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'super'))
    PyJsHoisted_Super_.func_name = u'Super'
    var.put(u'Super', PyJsHoisted_Super_)
    @Js
    def PyJsHoisted_Decorator_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'@'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'expression'), var.get(u'node'))
        var.get(u"this").callprop(u'newline')
    PyJsHoisted_Decorator_.func_name = u'Decorator'
    var.put(u'Decorator', PyJsHoisted_Decorator_)
    @Js
    def PyJsHoisted_AssignmentExpression_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parens', u'parent'])
        var.put(u'parens', ((var.get(u"this").get(u'inForStatementInitCounter') and PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'in'))) and var.get(u'n').callprop(u'needsParens', var.get(u'node'), var.get(u'parent')).neg()))
        if var.get(u'parens'):
            var.get(u"this").callprop(u'token', Js(u'('))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'left'), var.get(u'node'))
        var.get(u"this").callprop(u'space')
        if (PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'in')) or PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'instanceof'))):
            var.get(u"this").callprop(u'word', var.get(u'node').get(u'operator'))
        else:
            var.get(u"this").callprop(u'token', var.get(u'node').get(u'operator'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'right'), var.get(u'node'))
        if var.get(u'parens'):
            var.get(u"this").callprop(u'token', Js(u')'))
    PyJsHoisted_AssignmentExpression_.func_name = u'AssignmentExpression'
    var.put(u'AssignmentExpression', PyJsHoisted_AssignmentExpression_)
    @Js
    def PyJsHoisted_commaSeparatorNewline_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'token', Js(u','))
        var.get(u"this").callprop(u'newline')
        if var.get(u"this").callprop(u'endsWith', Js(u'\n')).neg():
            var.get(u"this").callprop(u'space')
    PyJsHoisted_commaSeparatorNewline_.func_name = u'commaSeparatorNewline'
    var.put(u'commaSeparatorNewline', PyJsHoisted_commaSeparatorNewline_)
    @Js
    def PyJsHoisted_buildYieldAwait_(keyword, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'keyword':keyword}, var)
        var.registers([u'keyword'])
        @Js
        def PyJs_anonymous_458_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node', u'terminatorState'])
            var.get(u"this").callprop(u'word', var.get(u'keyword'))
            if var.get(u'node').get(u'delegate'):
                var.get(u"this").callprop(u'token', Js(u'*'))
            if var.get(u'node').get(u'argument'):
                var.get(u"this").callprop(u'space')
                var.put(u'terminatorState', var.get(u"this").callprop(u'startTerminatorless'))
                var.get(u"this").callprop(u'print', var.get(u'node').get(u'argument'), var.get(u'node'))
                var.get(u"this").callprop(u'endTerminatorless', var.get(u'terminatorState'))
        PyJs_anonymous_458_._set_name(u'anonymous')
        return PyJs_anonymous_458_
    PyJsHoisted_buildYieldAwait_.func_name = u'buildYieldAwait'
    var.put(u'buildYieldAwait', PyJsHoisted_buildYieldAwait_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_454_ = Js({})
            var.put(u'newObj', PyJs_Object_454_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_ThisExpression_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'this'))
    PyJsHoisted_ThisExpression_.func_name = u'ThisExpression'
    var.put(u'ThisExpression', PyJsHoisted_ThisExpression_)
    @Js
    def PyJsHoisted_ConditionalExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'test'), var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'?'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'consequent'), var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u':'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'alternate'), var.get(u'node'))
    PyJsHoisted_ConditionalExpression_.func_name = u'ConditionalExpression'
    var.put(u'ConditionalExpression', PyJsHoisted_ConditionalExpression_)
    @Js
    def PyJsHoisted_DoExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'do'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'body'), var.get(u'node'))
    PyJsHoisted_DoExpression_.func_name = u'DoExpression'
    var.put(u'DoExpression', PyJsHoisted_DoExpression_)
    @Js
    def PyJsHoisted_MemberExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'computed'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'object'), var.get(u'node'))
        if (var.get(u'node').get(u'computed').neg() and var.get(u't').callprop(u'isMemberExpression', var.get(u'node').get(u'property'))):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Got a MemberExpression for MemberExpression property')))
            raise PyJsTempException
        var.put(u'computed', var.get(u'node').get(u'computed'))
        if (var.get(u't').callprop(u'isLiteral', var.get(u'node').get(u'property')) and PyJsComma(Js(0.0),var.get(u'_isNumber2').get(u'default'))(var.get(u'node').get(u'property').get(u'value'))):
            var.put(u'computed', var.get(u'true'))
        if var.get(u'computed'):
            var.get(u"this").callprop(u'token', Js(u'['))
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'property'), var.get(u'node'))
            var.get(u"this").callprop(u'token', Js(u']'))
        else:
            var.get(u"this").callprop(u'token', Js(u'.'))
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'property'), var.get(u'node'))
    PyJsHoisted_MemberExpression_.func_name = u'MemberExpression'
    var.put(u'MemberExpression', PyJsHoisted_MemberExpression_)
    @Js
    def PyJsHoisted_SequenceExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'printList', var.get(u'node').get(u'expressions'), var.get(u'node'))
    PyJsHoisted_SequenceExpression_.func_name = u'SequenceExpression'
    var.put(u'SequenceExpression', PyJsHoisted_SequenceExpression_)
    @Js
    def PyJsHoisted_UnaryExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if ((PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'void')) or PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'delete'))) or PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'typeof'))):
            var.get(u"this").callprop(u'word', var.get(u'node').get(u'operator'))
            var.get(u"this").callprop(u'space')
        else:
            var.get(u"this").callprop(u'token', var.get(u'node').get(u'operator'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'argument'), var.get(u'node'))
    PyJsHoisted_UnaryExpression_.func_name = u'UnaryExpression'
    var.put(u'UnaryExpression', PyJsHoisted_UnaryExpression_)
    @Js
    def PyJsHoisted_NewExpression_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        var.get(u"this").callprop(u'word', Js(u'new'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'callee'), var.get(u'node'))
        PyJs_Object_456_ = Js({u'callee':var.get(u'node')})
        if ((((PyJsStrictEq(var.get(u'node').get(u'arguments').get(u'length'),Js(0.0)) and var.get(u"this").get(u'format').get(u'minified')) and var.get(u't').callprop(u'isCallExpression', var.get(u'parent'), PyJs_Object_456_).neg()) and var.get(u't').callprop(u'isMemberExpression', var.get(u'parent')).neg()) and var.get(u't').callprop(u'isNewExpression', var.get(u'parent')).neg()):
            return var.get('undefined')
        var.get(u"this").callprop(u'token', Js(u'('))
        var.get(u"this").callprop(u'printList', var.get(u'node').get(u'arguments'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u')'))
    PyJsHoisted_NewExpression_.func_name = u'NewExpression'
    var.put(u'NewExpression', PyJsHoisted_NewExpression_)
    @Js
    def PyJsHoisted_BindExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'object'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'::'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'callee'), var.get(u'node'))
    PyJsHoisted_BindExpression_.func_name = u'BindExpression'
    var.put(u'BindExpression', PyJsHoisted_BindExpression_)
    @Js
    def PyJsHoisted_AssignmentPattern_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'left'), var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'='))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'right'), var.get(u'node'))
    PyJsHoisted_AssignmentPattern_.func_name = u'AssignmentPattern'
    var.put(u'AssignmentPattern', PyJsHoisted_AssignmentPattern_)
    @Js
    def PyJsHoisted_EmptyStatement_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'semicolon', var.get(u'true'))
    PyJsHoisted_EmptyStatement_.func_name = u'EmptyStatement'
    var.put(u'EmptyStatement', PyJsHoisted_EmptyStatement_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'LogicalExpression', var.get(u'exports').put(u'BinaryExpression', var.get(u'exports').put(u'AwaitExpression', var.get(u'exports').put(u'YieldExpression', var.get(u'undefined')))))
    var.get(u'exports').put(u'UnaryExpression', var.get(u'UnaryExpression'))
    var.get(u'exports').put(u'DoExpression', var.get(u'DoExpression'))
    var.get(u'exports').put(u'ParenthesizedExpression', var.get(u'ParenthesizedExpression'))
    var.get(u'exports').put(u'UpdateExpression', var.get(u'UpdateExpression'))
    var.get(u'exports').put(u'ConditionalExpression', var.get(u'ConditionalExpression'))
    var.get(u'exports').put(u'NewExpression', var.get(u'NewExpression'))
    var.get(u'exports').put(u'SequenceExpression', var.get(u'SequenceExpression'))
    var.get(u'exports').put(u'ThisExpression', var.get(u'ThisExpression'))
    var.get(u'exports').put(u'Super', var.get(u'Super'))
    var.get(u'exports').put(u'Decorator', var.get(u'Decorator'))
    var.get(u'exports').put(u'CallExpression', var.get(u'CallExpression'))
    var.get(u'exports').put(u'EmptyStatement', var.get(u'EmptyStatement'))
    var.get(u'exports').put(u'ExpressionStatement', var.get(u'ExpressionStatement'))
    var.get(u'exports').put(u'AssignmentPattern', var.get(u'AssignmentPattern'))
    var.get(u'exports').put(u'AssignmentExpression', var.get(u'AssignmentExpression'))
    var.get(u'exports').put(u'BindExpression', var.get(u'BindExpression'))
    var.get(u'exports').put(u'MemberExpression', var.get(u'MemberExpression'))
    var.get(u'exports').put(u'MetaProperty', var.get(u'MetaProperty'))
    var.put(u'_isNumber', var.get(u'require')(Js(u'lodash/isNumber')))
    var.put(u'_isNumber2', var.get(u'_interopRequireDefault')(var.get(u'_isNumber')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_node', var.get(u'require')(Js(u'../node')))
    var.put(u'n', var.get(u'_interopRequireWildcard')(var.get(u'_node')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    var.put(u'YieldExpression', var.get(u'exports').put(u'YieldExpression', var.get(u'buildYieldAwait')(Js(u'yield'))))
    var.put(u'AwaitExpression', var.get(u'exports').put(u'AwaitExpression', var.get(u'buildYieldAwait')(Js(u'await'))))
    pass
    pass
    pass
    pass
    pass
    var.get(u'exports').put(u'BinaryExpression', var.get(u'AssignmentExpression'))
    var.get(u'exports').put(u'LogicalExpression', var.get(u'AssignmentExpression'))
    pass
    pass
PyJs_anonymous_453_._set_name(u'anonymous')
PyJs_Object_459_ = Js({u'../node':Js(41.0),u'babel-types':Js(258.0),u'lodash/isNumber':Js(466.0)})
@Js
def PyJs_anonymous_460_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_interfaceish', u'QualifiedTypeIdentifier', u'DeclareFunction', u'exports', u'module', u'StringTypeAnnotation', u'InterfaceDeclaration', u'InterfaceExtends', u'EmptyTypeAnnotation', u'AnyTypeAnnotation', u'ThisTypeAnnotation', u'ObjectTypeIndexer', u'ObjectTypeAnnotation', u'DeclareClass', u'NumberTypeAnnotation', u'ArrayTypeAnnotation', u'MixedTypeAnnotation', u'DeclareInterface', u'DeclareTypeAlias', u'TypeAlias', u'TypeofTypeAnnotation', u'DeclareVariable', u'NullLiteralTypeAnnotation', u'TypeParameterInstantiation', u'TypeParameter', u'ExistentialTypeParam', u'FunctionTypeParam', u'orSeparator', u'UnionTypeAnnotation', u'DeclareModuleExports', u'TypeCastExpression', u'BooleanLiteralTypeAnnotation', u'VoidTypeAnnotation', u'ObjectTypeProperty', u'IntersectionTypeAnnotation', u'ObjectTypeCallProperty', u'TupleTypeAnnotation', u'_types', u'TypeAnnotation', u'require', u'_variance', u'FunctionTypeAnnotation', u'DeclareModule', u'NullableTypeAnnotation', u'andSeparator', u'BooleanTypeAnnotation'])
    @Js
    def PyJsHoisted__interfaceish_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id'), var.get(u'node'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeParameters'), var.get(u'node'))
        if var.get(u'node').get(u'extends').get(u'length'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'word', Js(u'extends'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'printList', var.get(u'node').get(u'extends'), var.get(u'node'))
        if (var.get(u'node').get(u'mixins') and var.get(u'node').get(u'mixins').get(u'length')):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'word', Js(u'mixins'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'printList', var.get(u'node').get(u'mixins'), var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'body'), var.get(u'node'))
    PyJsHoisted__interfaceish_.func_name = u'_interfaceish'
    var.put(u'_interfaceish', PyJsHoisted__interfaceish_)
    @Js
    def PyJsHoisted_QualifiedTypeIdentifier_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'qualification'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'.'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id'), var.get(u'node'))
    PyJsHoisted_QualifiedTypeIdentifier_.func_name = u'QualifiedTypeIdentifier'
    var.put(u'QualifiedTypeIdentifier', PyJsHoisted_QualifiedTypeIdentifier_)
    @Js
    def PyJsHoisted_DeclareFunction_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'declare'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'word', Js(u'function'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id'), var.get(u'node'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id').get(u'typeAnnotation').get(u'typeAnnotation'), var.get(u'node'))
        var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_DeclareFunction_.func_name = u'DeclareFunction'
    var.put(u'DeclareFunction', PyJsHoisted_DeclareFunction_)
    @Js
    def PyJsHoisted_StringTypeAnnotation_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'string'))
    PyJsHoisted_StringTypeAnnotation_.func_name = u'StringTypeAnnotation'
    var.put(u'StringTypeAnnotation', PyJsHoisted_StringTypeAnnotation_)
    @Js
    def PyJsHoisted_InterfaceDeclaration_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'interface'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'_interfaceish', var.get(u'node'))
    PyJsHoisted_InterfaceDeclaration_.func_name = u'InterfaceDeclaration'
    var.put(u'InterfaceDeclaration', PyJsHoisted_InterfaceDeclaration_)
    @Js
    def PyJsHoisted_InterfaceExtends_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id'), var.get(u'node'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeParameters'), var.get(u'node'))
    PyJsHoisted_InterfaceExtends_.func_name = u'InterfaceExtends'
    var.put(u'InterfaceExtends', PyJsHoisted_InterfaceExtends_)
    @Js
    def PyJsHoisted_EmptyTypeAnnotation_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'empty'))
    PyJsHoisted_EmptyTypeAnnotation_.func_name = u'EmptyTypeAnnotation'
    var.put(u'EmptyTypeAnnotation', PyJsHoisted_EmptyTypeAnnotation_)
    @Js
    def PyJsHoisted_AnyTypeAnnotation_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'any'))
    PyJsHoisted_AnyTypeAnnotation_.func_name = u'AnyTypeAnnotation'
    var.put(u'AnyTypeAnnotation', PyJsHoisted_AnyTypeAnnotation_)
    @Js
    def PyJsHoisted_ThisTypeAnnotation_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'this'))
    PyJsHoisted_ThisTypeAnnotation_.func_name = u'ThisTypeAnnotation'
    var.put(u'ThisTypeAnnotation', PyJsHoisted_ThisTypeAnnotation_)
    @Js
    def PyJsHoisted_ObjectTypeIndexer_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u'node').get(u'static'):
            var.get(u"this").callprop(u'word', Js(u'static'))
            var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'_variance', var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'['))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u':'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'key'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u']'))
        var.get(u"this").callprop(u'token', Js(u':'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'value'), var.get(u'node'))
    PyJsHoisted_ObjectTypeIndexer_.func_name = u'ObjectTypeIndexer'
    var.put(u'ObjectTypeIndexer', PyJsHoisted_ObjectTypeIndexer_)
    @Js
    def PyJsHoisted_ObjectTypeAnnotation_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'_this', u'props'])
        var.put(u'_this', var.get(u"this"))
        if var.get(u'node').get(u'exact'):
            var.get(u"this").callprop(u'token', Js(u'{|'))
        else:
            var.get(u"this").callprop(u'token', Js(u'{'))
        var.put(u'props', var.get(u'node').get(u'properties').callprop(u'concat', var.get(u'node').get(u'callProperties'), var.get(u'node').get(u'indexers')))
        if var.get(u'props').get(u'length'):
            var.get(u"this").callprop(u'space')
            @Js
            def PyJs_iterator_468_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'iterator':PyJs_iterator_468_}, var)
                var.registers([])
                if PyJsStrictNeq(var.get(u'props').get(u'length'),Js(1.0)):
                    var.get(u'_this').callprop(u'semicolon')
                    var.get(u'_this').callprop(u'space')
            PyJs_iterator_468_._set_name(u'iterator')
            PyJs_Object_467_ = Js({u'indent':var.get(u'true'),u'statement':var.get(u'true'),u'iterator':PyJs_iterator_468_})
            var.get(u"this").callprop(u'printJoin', var.get(u'props'), var.get(u'node'), PyJs_Object_467_)
            var.get(u"this").callprop(u'space')
        if var.get(u'node').get(u'exact'):
            var.get(u"this").callprop(u'token', Js(u'|}'))
        else:
            var.get(u"this").callprop(u'token', Js(u'}'))
    PyJsHoisted_ObjectTypeAnnotation_.func_name = u'ObjectTypeAnnotation'
    var.put(u'ObjectTypeAnnotation', PyJsHoisted_ObjectTypeAnnotation_)
    @Js
    def PyJsHoisted_DeclareClass_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'declare'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'word', Js(u'class'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'_interfaceish', var.get(u'node'))
    PyJsHoisted_DeclareClass_.func_name = u'DeclareClass'
    var.put(u'DeclareClass', PyJsHoisted_DeclareClass_)
    @Js
    def PyJsHoisted_NumberTypeAnnotation_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'number'))
    PyJsHoisted_NumberTypeAnnotation_.func_name = u'NumberTypeAnnotation'
    var.put(u'NumberTypeAnnotation', PyJsHoisted_NumberTypeAnnotation_)
    @Js
    def PyJsHoisted_ArrayTypeAnnotation_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'elementType'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'['))
        var.get(u"this").callprop(u'token', Js(u']'))
    PyJsHoisted_ArrayTypeAnnotation_.func_name = u'ArrayTypeAnnotation'
    var.put(u'ArrayTypeAnnotation', PyJsHoisted_ArrayTypeAnnotation_)
    @Js
    def PyJsHoisted_MixedTypeAnnotation_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'mixed'))
    PyJsHoisted_MixedTypeAnnotation_.func_name = u'MixedTypeAnnotation'
    var.put(u'MixedTypeAnnotation', PyJsHoisted_MixedTypeAnnotation_)
    @Js
    def PyJsHoisted_DeclareInterface_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'declare'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'InterfaceDeclaration', var.get(u'node'))
    PyJsHoisted_DeclareInterface_.func_name = u'DeclareInterface'
    var.put(u'DeclareInterface', PyJsHoisted_DeclareInterface_)
    @Js
    def PyJsHoisted_DeclareTypeAlias_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'declare'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'TypeAlias', var.get(u'node'))
    PyJsHoisted_DeclareTypeAlias_.func_name = u'DeclareTypeAlias'
    var.put(u'DeclareTypeAlias', PyJsHoisted_DeclareTypeAlias_)
    @Js
    def PyJsHoisted_TypeAlias_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'type'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id'), var.get(u'node'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeParameters'), var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'='))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'right'), var.get(u'node'))
        var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_TypeAlias_.func_name = u'TypeAlias'
    var.put(u'TypeAlias', PyJsHoisted_TypeAlias_)
    @Js
    def PyJsHoisted_TypeofTypeAnnotation_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'typeof'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'argument'), var.get(u'node'))
    PyJsHoisted_TypeofTypeAnnotation_.func_name = u'TypeofTypeAnnotation'
    var.put(u'TypeofTypeAnnotation', PyJsHoisted_TypeofTypeAnnotation_)
    @Js
    def PyJsHoisted_DeclareVariable_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'declare'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'word', Js(u'var'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id'), var.get(u'node'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id').get(u'typeAnnotation'), var.get(u'node'))
        var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_DeclareVariable_.func_name = u'DeclareVariable'
    var.put(u'DeclareVariable', PyJsHoisted_DeclareVariable_)
    @Js
    def PyJsHoisted_NullLiteralTypeAnnotation_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'null'))
    PyJsHoisted_NullLiteralTypeAnnotation_.func_name = u'NullLiteralTypeAnnotation'
    var.put(u'NullLiteralTypeAnnotation', PyJsHoisted_NullLiteralTypeAnnotation_)
    @Js
    def PyJsHoisted_TypeParameterInstantiation_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'<'))
        PyJs_Object_466_ = Js({})
        var.get(u"this").callprop(u'printList', var.get(u'node').get(u'params'), var.get(u'node'), PyJs_Object_466_)
        var.get(u"this").callprop(u'token', Js(u'>'))
    PyJsHoisted_TypeParameterInstantiation_.func_name = u'TypeParameterInstantiation'
    var.put(u'TypeParameterInstantiation', PyJsHoisted_TypeParameterInstantiation_)
    @Js
    def PyJsHoisted_TypeParameter_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'_variance', var.get(u'node'))
        var.get(u"this").callprop(u'word', var.get(u'node').get(u'name'))
        if var.get(u'node').get(u'bound'):
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'bound'), var.get(u'node'))
        if var.get(u'node').get(u'default'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'token', Js(u'='))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'default'), var.get(u'node'))
    PyJsHoisted_TypeParameter_.func_name = u'TypeParameter'
    var.put(u'TypeParameter', PyJsHoisted_TypeParameter_)
    @Js
    def PyJsHoisted_ExistentialTypeParam_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'token', Js(u'*'))
    PyJsHoisted_ExistentialTypeParam_.func_name = u'ExistentialTypeParam'
    var.put(u'ExistentialTypeParam', PyJsHoisted_ExistentialTypeParam_)
    @Js
    def PyJsHoisted_FunctionTypeParam_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'name'), var.get(u'node'))
        if var.get(u'node').get(u'optional'):
            var.get(u"this").callprop(u'token', Js(u'?'))
        var.get(u"this").callprop(u'token', Js(u':'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeAnnotation'), var.get(u'node'))
    PyJsHoisted_FunctionTypeParam_.func_name = u'FunctionTypeParam'
    var.put(u'FunctionTypeParam', PyJsHoisted_FunctionTypeParam_)
    @Js
    def PyJsHoisted_orSeparator_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'|'))
        var.get(u"this").callprop(u'space')
    PyJsHoisted_orSeparator_.func_name = u'orSeparator'
    var.put(u'orSeparator', PyJsHoisted_orSeparator_)
    @Js
    def PyJsHoisted_UnionTypeAnnotation_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        PyJs_Object_469_ = Js({u'separator':var.get(u'orSeparator')})
        var.get(u"this").callprop(u'printJoin', var.get(u'node').get(u'types'), var.get(u'node'), PyJs_Object_469_)
    PyJsHoisted_UnionTypeAnnotation_.func_name = u'UnionTypeAnnotation'
    var.put(u'UnionTypeAnnotation', PyJsHoisted_UnionTypeAnnotation_)
    @Js
    def PyJsHoisted_DeclareModuleExports_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'declare'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'word', Js(u'module'))
        var.get(u"this").callprop(u'token', Js(u'.'))
        var.get(u"this").callprop(u'word', Js(u'exports'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeAnnotation'), var.get(u'node'))
    PyJsHoisted_DeclareModuleExports_.func_name = u'DeclareModuleExports'
    var.put(u'DeclareModuleExports', PyJsHoisted_DeclareModuleExports_)
    @Js
    def PyJsHoisted_TypeCastExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'('))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'expression'), var.get(u'node'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeAnnotation'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u')'))
    PyJsHoisted_TypeCastExpression_.func_name = u'TypeCastExpression'
    var.put(u'TypeCastExpression', PyJsHoisted_TypeCastExpression_)
    @Js
    def PyJsHoisted_BooleanLiteralTypeAnnotation_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', (Js(u'true') if var.get(u'node').get(u'value') else Js(u'false')))
    PyJsHoisted_BooleanLiteralTypeAnnotation_.func_name = u'BooleanLiteralTypeAnnotation'
    var.put(u'BooleanLiteralTypeAnnotation', PyJsHoisted_BooleanLiteralTypeAnnotation_)
    @Js
    def PyJsHoisted_VoidTypeAnnotation_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'void'))
    PyJsHoisted_VoidTypeAnnotation_.func_name = u'VoidTypeAnnotation'
    var.put(u'VoidTypeAnnotation', PyJsHoisted_VoidTypeAnnotation_)
    @Js
    def PyJsHoisted_ObjectTypeProperty_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u'node').get(u'static'):
            var.get(u"this").callprop(u'word', Js(u'static'))
            var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'_variance', var.get(u'node'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'key'), var.get(u'node'))
        if var.get(u'node').get(u'optional'):
            var.get(u"this").callprop(u'token', Js(u'?'))
        var.get(u"this").callprop(u'token', Js(u':'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'value'), var.get(u'node'))
    PyJsHoisted_ObjectTypeProperty_.func_name = u'ObjectTypeProperty'
    var.put(u'ObjectTypeProperty', PyJsHoisted_ObjectTypeProperty_)
    @Js
    def PyJsHoisted_IntersectionTypeAnnotation_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        PyJs_Object_465_ = Js({u'separator':var.get(u'andSeparator')})
        var.get(u"this").callprop(u'printJoin', var.get(u'node').get(u'types'), var.get(u'node'), PyJs_Object_465_)
    PyJsHoisted_IntersectionTypeAnnotation_.func_name = u'IntersectionTypeAnnotation'
    var.put(u'IntersectionTypeAnnotation', PyJsHoisted_IntersectionTypeAnnotation_)
    @Js
    def PyJsHoisted_ObjectTypeCallProperty_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u'node').get(u'static'):
            var.get(u"this").callprop(u'word', Js(u'static'))
            var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'value'), var.get(u'node'))
    PyJsHoisted_ObjectTypeCallProperty_.func_name = u'ObjectTypeCallProperty'
    var.put(u'ObjectTypeCallProperty', PyJsHoisted_ObjectTypeCallProperty_)
    @Js
    def PyJsHoisted_TupleTypeAnnotation_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'['))
        var.get(u"this").callprop(u'printList', var.get(u'node').get(u'types'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u']'))
    PyJsHoisted_TupleTypeAnnotation_.func_name = u'TupleTypeAnnotation'
    var.put(u'TupleTypeAnnotation', PyJsHoisted_TupleTypeAnnotation_)
    @Js
    def PyJsHoisted_TypeAnnotation_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u':'))
        var.get(u"this").callprop(u'space')
        if var.get(u'node').get(u'optional'):
            var.get(u"this").callprop(u'token', Js(u'?'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeAnnotation'), var.get(u'node'))
    PyJsHoisted_TypeAnnotation_.func_name = u'TypeAnnotation'
    var.put(u'TypeAnnotation', PyJsHoisted_TypeAnnotation_)
    @Js
    def PyJsHoisted__variance_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if PyJsStrictEq(var.get(u'node').get(u'variance'),Js(u'plus')):
            var.get(u"this").callprop(u'token', Js(u'+'))
        else:
            if PyJsStrictEq(var.get(u'node').get(u'variance'),Js(u'minus')):
                var.get(u"this").callprop(u'token', Js(u'-'))
    PyJsHoisted__variance_.func_name = u'_variance'
    var.put(u'_variance', PyJsHoisted__variance_)
    @Js
    def PyJsHoisted_FunctionTypeAnnotation_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeParameters'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'('))
        var.get(u"this").callprop(u'printList', var.get(u'node').get(u'params'), var.get(u'node'))
        if var.get(u'node').get(u'rest'):
            if var.get(u'node').get(u'params').get(u'length'):
                var.get(u"this").callprop(u'token', Js(u','))
                var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'token', Js(u'...'))
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'rest'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u')'))
        if (PyJsStrictEq(var.get(u'parent').get(u'type'),Js(u'ObjectTypeCallProperty')) or PyJsStrictEq(var.get(u'parent').get(u'type'),Js(u'DeclareFunction'))):
            var.get(u"this").callprop(u'token', Js(u':'))
        else:
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'token', Js(u'=>'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'returnType'), var.get(u'node'))
    PyJsHoisted_FunctionTypeAnnotation_.func_name = u'FunctionTypeAnnotation'
    var.put(u'FunctionTypeAnnotation', PyJsHoisted_FunctionTypeAnnotation_)
    @Js
    def PyJsHoisted_DeclareModule_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'declare'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'word', Js(u'module'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id'), var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'body'), var.get(u'node'))
    PyJsHoisted_DeclareModule_.func_name = u'DeclareModule'
    var.put(u'DeclareModule', PyJsHoisted_DeclareModule_)
    @Js
    def PyJsHoisted_NullableTypeAnnotation_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'?'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeAnnotation'), var.get(u'node'))
    PyJsHoisted_NullableTypeAnnotation_.func_name = u'NullableTypeAnnotation'
    var.put(u'NullableTypeAnnotation', PyJsHoisted_NullableTypeAnnotation_)
    @Js
    def PyJsHoisted_andSeparator_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'&'))
        var.get(u"this").callprop(u'space')
    PyJsHoisted_andSeparator_.func_name = u'andSeparator'
    var.put(u'andSeparator', PyJsHoisted_andSeparator_)
    @Js
    def PyJsHoisted_BooleanTypeAnnotation_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'boolean'))
    PyJsHoisted_BooleanTypeAnnotation_.func_name = u'BooleanTypeAnnotation'
    var.put(u'BooleanTypeAnnotation', PyJsHoisted_BooleanTypeAnnotation_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'AnyTypeAnnotation', var.get(u'AnyTypeAnnotation'))
    var.get(u'exports').put(u'ArrayTypeAnnotation', var.get(u'ArrayTypeAnnotation'))
    var.get(u'exports').put(u'BooleanTypeAnnotation', var.get(u'BooleanTypeAnnotation'))
    var.get(u'exports').put(u'BooleanLiteralTypeAnnotation', var.get(u'BooleanLiteralTypeAnnotation'))
    var.get(u'exports').put(u'NullLiteralTypeAnnotation', var.get(u'NullLiteralTypeAnnotation'))
    var.get(u'exports').put(u'DeclareClass', var.get(u'DeclareClass'))
    var.get(u'exports').put(u'DeclareFunction', var.get(u'DeclareFunction'))
    var.get(u'exports').put(u'DeclareInterface', var.get(u'DeclareInterface'))
    var.get(u'exports').put(u'DeclareModule', var.get(u'DeclareModule'))
    var.get(u'exports').put(u'DeclareModuleExports', var.get(u'DeclareModuleExports'))
    var.get(u'exports').put(u'DeclareTypeAlias', var.get(u'DeclareTypeAlias'))
    var.get(u'exports').put(u'DeclareVariable', var.get(u'DeclareVariable'))
    var.get(u'exports').put(u'ExistentialTypeParam', var.get(u'ExistentialTypeParam'))
    var.get(u'exports').put(u'FunctionTypeAnnotation', var.get(u'FunctionTypeAnnotation'))
    var.get(u'exports').put(u'FunctionTypeParam', var.get(u'FunctionTypeParam'))
    var.get(u'exports').put(u'InterfaceExtends', var.get(u'InterfaceExtends'))
    var.get(u'exports').put(u'_interfaceish', var.get(u'_interfaceish'))
    var.get(u'exports').put(u'_variance', var.get(u'_variance'))
    var.get(u'exports').put(u'InterfaceDeclaration', var.get(u'InterfaceDeclaration'))
    var.get(u'exports').put(u'IntersectionTypeAnnotation', var.get(u'IntersectionTypeAnnotation'))
    var.get(u'exports').put(u'MixedTypeAnnotation', var.get(u'MixedTypeAnnotation'))
    var.get(u'exports').put(u'EmptyTypeAnnotation', var.get(u'EmptyTypeAnnotation'))
    var.get(u'exports').put(u'NullableTypeAnnotation', var.get(u'NullableTypeAnnotation'))
    var.put(u'_types', var.get(u'require')(Js(u'./types')))
    @Js
    def PyJs_get_462_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_462_}, var)
        var.registers([])
        return var.get(u'_types').get(u'NumericLiteral')
    PyJs_get_462_._set_name(u'get')
    PyJs_Object_461_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_462_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'NumericLiteralTypeAnnotation'), PyJs_Object_461_)
    @Js
    def PyJs_get_464_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_464_}, var)
        var.registers([])
        return var.get(u'_types').get(u'StringLiteral')
    PyJs_get_464_._set_name(u'get')
    PyJs_Object_463_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_464_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'StringLiteralTypeAnnotation'), PyJs_Object_463_)
    var.get(u'exports').put(u'NumberTypeAnnotation', var.get(u'NumberTypeAnnotation'))
    var.get(u'exports').put(u'StringTypeAnnotation', var.get(u'StringTypeAnnotation'))
    var.get(u'exports').put(u'ThisTypeAnnotation', var.get(u'ThisTypeAnnotation'))
    var.get(u'exports').put(u'TupleTypeAnnotation', var.get(u'TupleTypeAnnotation'))
    var.get(u'exports').put(u'TypeofTypeAnnotation', var.get(u'TypeofTypeAnnotation'))
    var.get(u'exports').put(u'TypeAlias', var.get(u'TypeAlias'))
    var.get(u'exports').put(u'TypeAnnotation', var.get(u'TypeAnnotation'))
    var.get(u'exports').put(u'TypeParameter', var.get(u'TypeParameter'))
    var.get(u'exports').put(u'TypeParameterInstantiation', var.get(u'TypeParameterInstantiation'))
    var.get(u'exports').put(u'ObjectTypeAnnotation', var.get(u'ObjectTypeAnnotation'))
    var.get(u'exports').put(u'ObjectTypeCallProperty', var.get(u'ObjectTypeCallProperty'))
    var.get(u'exports').put(u'ObjectTypeIndexer', var.get(u'ObjectTypeIndexer'))
    var.get(u'exports').put(u'ObjectTypeProperty', var.get(u'ObjectTypeProperty'))
    var.get(u'exports').put(u'QualifiedTypeIdentifier', var.get(u'QualifiedTypeIdentifier'))
    var.get(u'exports').put(u'UnionTypeAnnotation', var.get(u'UnionTypeAnnotation'))
    var.get(u'exports').put(u'TypeCastExpression', var.get(u'TypeCastExpression'))
    var.get(u'exports').put(u'VoidTypeAnnotation', var.get(u'VoidTypeAnnotation'))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    var.get(u'exports').put(u'ClassImplements', var.get(u'InterfaceExtends'))
    var.get(u'exports').put(u'GenericTypeAnnotation', var.get(u'InterfaceExtends'))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    var.get(u'exports').put(u'TypeParameterDeclaration', var.get(u'TypeParameterInstantiation'))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_460_._set_name(u'anonymous')
PyJs_Object_470_ = Js({u'./types':Js(39.0)})
@Js
def PyJs_anonymous_471_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'JSXSpreadAttribute', u'exports', u'JSXOpeningElement', u'JSXMemberExpression', u'JSXClosingElement', u'module', u'JSXElement', u'JSXAttribute', u'JSXNamespacedName', u'JSXText', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'JSXExpressionContainer', u'spaceSeparator', u'JSXEmptyExpression', u'JSXIdentifier'])
    @Js
    def PyJsHoisted_JSXSpreadAttribute_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'{'))
        var.get(u"this").callprop(u'token', Js(u'...'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'argument'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'}'))
    PyJsHoisted_JSXSpreadAttribute_.func_name = u'JSXSpreadAttribute'
    var.put(u'JSXSpreadAttribute', PyJsHoisted_JSXSpreadAttribute_)
    @Js
    def PyJsHoisted_JSXOpeningElement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'<'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'name'), var.get(u'node'))
        if (var.get(u'node').get(u'attributes').get(u'length')>Js(0.0)):
            var.get(u"this").callprop(u'space')
            PyJs_Object_473_ = Js({u'separator':var.get(u'spaceSeparator')})
            var.get(u"this").callprop(u'printJoin', var.get(u'node').get(u'attributes'), var.get(u'node'), PyJs_Object_473_)
        if var.get(u'node').get(u'selfClosing'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'token', Js(u'/>'))
        else:
            var.get(u"this").callprop(u'token', Js(u'>'))
    PyJsHoisted_JSXOpeningElement_.func_name = u'JSXOpeningElement'
    var.put(u'JSXOpeningElement', PyJsHoisted_JSXOpeningElement_)
    @Js
    def PyJsHoisted_JSXMemberExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'object'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'.'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'property'), var.get(u'node'))
    PyJsHoisted_JSXMemberExpression_.func_name = u'JSXMemberExpression'
    var.put(u'JSXMemberExpression', PyJsHoisted_JSXMemberExpression_)
    @Js
    def PyJsHoisted_JSXClosingElement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'</'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'name'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'>'))
    PyJsHoisted_JSXClosingElement_.func_name = u'JSXClosingElement'
    var.put(u'JSXClosingElement', PyJsHoisted_JSXClosingElement_)
    @Js
    def PyJsHoisted_JSXElement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'_isArray', u'_iterator', u'_i', u'child', u'_ref', u'open'])
        var.put(u'open', var.get(u'node').get(u'openingElement'))
        var.get(u"this").callprop(u'print', var.get(u'open'), var.get(u'node'))
        if var.get(u'open').get(u'selfClosing'):
            return var.get('undefined')
        var.get(u"this").callprop(u'indent')
        #for JS loop
        var.put(u'_iterator', var.get(u'node').get(u'children'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'child', var.get(u'_ref'))
            var.get(u"this").callprop(u'print', var.get(u'child'), var.get(u'node'))
        
        var.get(u"this").callprop(u'dedent')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'closingElement'), var.get(u'node'))
    PyJsHoisted_JSXElement_.func_name = u'JSXElement'
    var.put(u'JSXElement', PyJsHoisted_JSXElement_)
    @Js
    def PyJsHoisted_JSXAttribute_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'name'), var.get(u'node'))
        if var.get(u'node').get(u'value'):
            var.get(u"this").callprop(u'token', Js(u'='))
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'value'), var.get(u'node'))
    PyJsHoisted_JSXAttribute_.func_name = u'JSXAttribute'
    var.put(u'JSXAttribute', PyJsHoisted_JSXAttribute_)
    @Js
    def PyJsHoisted_JSXNamespacedName_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'namespace'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u':'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'name'), var.get(u'node'))
    PyJsHoisted_JSXNamespacedName_.func_name = u'JSXNamespacedName'
    var.put(u'JSXNamespacedName', PyJsHoisted_JSXNamespacedName_)
    @Js
    def PyJsHoisted_JSXText_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', var.get(u'node').get(u'value'))
    PyJsHoisted_JSXText_.func_name = u'JSXText'
    var.put(u'JSXText', PyJsHoisted_JSXText_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_472_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_472_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_JSXExpressionContainer_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'{'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'expression'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'}'))
    PyJsHoisted_JSXExpressionContainer_.func_name = u'JSXExpressionContainer'
    var.put(u'JSXExpressionContainer', PyJsHoisted_JSXExpressionContainer_)
    @Js
    def PyJsHoisted_spaceSeparator_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'space')
    PyJsHoisted_spaceSeparator_.func_name = u'spaceSeparator'
    var.put(u'spaceSeparator', PyJsHoisted_spaceSeparator_)
    @Js
    def PyJsHoisted_JSXEmptyExpression_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        pass
    PyJsHoisted_JSXEmptyExpression_.func_name = u'JSXEmptyExpression'
    var.put(u'JSXEmptyExpression', PyJsHoisted_JSXEmptyExpression_)
    @Js
    def PyJsHoisted_JSXIdentifier_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', var.get(u'node').get(u'name'))
    PyJsHoisted_JSXIdentifier_.func_name = u'JSXIdentifier'
    var.put(u'JSXIdentifier', PyJsHoisted_JSXIdentifier_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'JSXAttribute', var.get(u'JSXAttribute'))
    var.get(u'exports').put(u'JSXIdentifier', var.get(u'JSXIdentifier'))
    var.get(u'exports').put(u'JSXNamespacedName', var.get(u'JSXNamespacedName'))
    var.get(u'exports').put(u'JSXMemberExpression', var.get(u'JSXMemberExpression'))
    var.get(u'exports').put(u'JSXSpreadAttribute', var.get(u'JSXSpreadAttribute'))
    var.get(u'exports').put(u'JSXExpressionContainer', var.get(u'JSXExpressionContainer'))
    var.get(u'exports').put(u'JSXText', var.get(u'JSXText'))
    var.get(u'exports').put(u'JSXElement', var.get(u'JSXElement'))
    var.get(u'exports').put(u'JSXOpeningElement', var.get(u'JSXOpeningElement'))
    var.get(u'exports').put(u'JSXClosingElement', var.get(u'JSXClosingElement'))
    var.get(u'exports').put(u'JSXEmptyExpression', var.get(u'JSXEmptyExpression'))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_471_._set_name(u'anonymous')
PyJs_Object_474_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0)})
@Js
def PyJs_anonymous_475_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'ArrowFunctionExpression', u'_interopRequireWildcard', u'require', u'_babelTypes', u'FunctionExpression', u'module', u't', u'hasTypes', u'_params', u'_method'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_476_ = Js({})
            var.put(u'newObj', PyJs_Object_476_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_ArrowFunctionExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'firstParam'])
        if var.get(u'node').get(u'async'):
            var.get(u"this").callprop(u'word', Js(u'async'))
            var.get(u"this").callprop(u'space')
        var.put(u'firstParam', var.get(u'node').get(u'params').get(u'0'))
        if ((PyJsStrictEq(var.get(u'node').get(u'params').get(u'length'),Js(1.0)) and var.get(u't').callprop(u'isIdentifier', var.get(u'firstParam'))) and var.get(u'hasTypes')(var.get(u'node'), var.get(u'firstParam')).neg()):
            var.get(u"this").callprop(u'print', var.get(u'firstParam'), var.get(u'node'))
        else:
            var.get(u"this").callprop(u'_params', var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'=>'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'body'), var.get(u'node'))
    PyJsHoisted_ArrowFunctionExpression_.func_name = u'ArrowFunctionExpression'
    var.put(u'ArrowFunctionExpression', PyJsHoisted_ArrowFunctionExpression_)
    @Js
    def PyJsHoisted_FunctionExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u'node').get(u'async'):
            var.get(u"this").callprop(u'word', Js(u'async'))
            var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'word', Js(u'function'))
        if var.get(u'node').get(u'generator'):
            var.get(u"this").callprop(u'token', Js(u'*'))
        if var.get(u'node').get(u'id'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'id'), var.get(u'node'))
        else:
            var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'_params', var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'body'), var.get(u'node'))
    PyJsHoisted_FunctionExpression_.func_name = u'FunctionExpression'
    var.put(u'FunctionExpression', PyJsHoisted_FunctionExpression_)
    @Js
    def PyJsHoisted_hasTypes_(node, param, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'param':param}, var)
        var.registers([u'node', u'param'])
        return ((((var.get(u'node').get(u'typeParameters') or var.get(u'node').get(u'returnType')) or var.get(u'param').get(u'typeAnnotation')) or var.get(u'param').get(u'optional')) or var.get(u'param').get(u'trailingComments'))
    PyJsHoisted_hasTypes_.func_name = u'hasTypes'
    var.put(u'hasTypes', PyJsHoisted_hasTypes_)
    @Js
    def PyJsHoisted__params_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'_this'])
        var.put(u'_this', var.get(u"this"))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'typeParameters'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u'('))
        @Js
        def PyJs_iterator_478_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'iterator':PyJs_iterator_478_}, var)
            var.registers([u'node'])
            if var.get(u'node').get(u'optional'):
                var.get(u'_this').callprop(u'token', Js(u'?'))
            var.get(u'_this').callprop(u'print', var.get(u'node').get(u'typeAnnotation'), var.get(u'node'))
        PyJs_iterator_478_._set_name(u'iterator')
        PyJs_Object_477_ = Js({u'iterator':PyJs_iterator_478_})
        var.get(u"this").callprop(u'printList', var.get(u'node').get(u'params'), var.get(u'node'), PyJs_Object_477_)
        var.get(u"this").callprop(u'token', Js(u')'))
        if var.get(u'node').get(u'returnType'):
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'returnType'), var.get(u'node'))
    PyJsHoisted__params_.func_name = u'_params'
    var.put(u'_params', PyJsHoisted__params_)
    @Js
    def PyJsHoisted__method_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'kind', u'key'])
        var.put(u'kind', var.get(u'node').get(u'kind'))
        var.put(u'key', var.get(u'node').get(u'key'))
        if (PyJsStrictEq(var.get(u'kind'),Js(u'method')) or PyJsStrictEq(var.get(u'kind'),Js(u'init'))):
            if var.get(u'node').get(u'generator'):
                var.get(u"this").callprop(u'token', Js(u'*'))
        if (PyJsStrictEq(var.get(u'kind'),Js(u'get')) or PyJsStrictEq(var.get(u'kind'),Js(u'set'))):
            var.get(u"this").callprop(u'word', var.get(u'kind'))
            var.get(u"this").callprop(u'space')
        if var.get(u'node').get(u'async'):
            var.get(u"this").callprop(u'word', Js(u'async'))
            var.get(u"this").callprop(u'space')
        if var.get(u'node').get(u'computed'):
            var.get(u"this").callprop(u'token', Js(u'['))
            var.get(u"this").callprop(u'print', var.get(u'key'), var.get(u'node'))
            var.get(u"this").callprop(u'token', Js(u']'))
        else:
            var.get(u"this").callprop(u'print', var.get(u'key'), var.get(u'node'))
        var.get(u"this").callprop(u'_params', var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'body'), var.get(u'node'))
    PyJsHoisted__method_.func_name = u'_method'
    var.put(u'_method', PyJsHoisted__method_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'FunctionDeclaration', var.get(u'undefined'))
    var.get(u'exports').put(u'_params', var.get(u'_params'))
    var.get(u'exports').put(u'_method', var.get(u'_method'))
    var.get(u'exports').put(u'FunctionExpression', var.get(u'FunctionExpression'))
    var.get(u'exports').put(u'ArrowFunctionExpression', var.get(u'ArrowFunctionExpression'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    var.get(u'exports').put(u'FunctionDeclaration', var.get(u'FunctionExpression'))
    pass
    pass
PyJs_anonymous_475_._set_name(u'anonymous')
PyJs_Object_479_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_480_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'ExportDeclaration', u'ExportNamespaceSpecifier', u'_interopRequireWildcard', u'ExportDefaultDeclaration', u'ImportDeclaration', u'ExportSpecifier', u'ImportSpecifier', u'_babelTypes', u'require', u'module', u'ImportDefaultSpecifier', u'ExportNamedDeclaration', u't', u'ImportNamespaceSpecifier', u'ExportDefaultSpecifier', u'ExportAllDeclaration'])
    @Js
    def PyJsHoisted_ExportNamespaceSpecifier_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'*'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'word', Js(u'as'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'exported'), var.get(u'node'))
    PyJsHoisted_ExportNamespaceSpecifier_.func_name = u'ExportNamespaceSpecifier'
    var.put(u'ExportNamespaceSpecifier', PyJsHoisted_ExportNamespaceSpecifier_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_481_ = Js({})
            var.put(u'newObj', PyJs_Object_481_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_ExportDefaultDeclaration_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'export'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'word', Js(u'default'))
        var.get(u"this").callprop(u'space')
        var.get(u'ExportDeclaration').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))
    PyJsHoisted_ExportDefaultDeclaration_.func_name = u'ExportDefaultDeclaration'
    var.put(u'ExportDefaultDeclaration', PyJsHoisted_ExportDefaultDeclaration_)
    @Js
    def PyJsHoisted_ImportDeclaration_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'specifiers', u'first'])
        var.get(u"this").callprop(u'word', Js(u'import'))
        var.get(u"this").callprop(u'space')
        if (PyJsStrictEq(var.get(u'node').get(u'importKind'),Js(u'type')) or PyJsStrictEq(var.get(u'node').get(u'importKind'),Js(u'typeof'))):
            var.get(u"this").callprop(u'word', var.get(u'node').get(u'importKind'))
            var.get(u"this").callprop(u'space')
        var.put(u'specifiers', var.get(u'node').get(u'specifiers').callprop(u'slice', Js(0.0)))
        if (var.get(u'specifiers') and var.get(u'specifiers').get(u'length')):
            while var.get(u'true'):
                var.put(u'first', var.get(u'specifiers').get(u'0'))
                if (var.get(u't').callprop(u'isImportDefaultSpecifier', var.get(u'first')) or var.get(u't').callprop(u'isImportNamespaceSpecifier', var.get(u'first'))):
                    var.get(u"this").callprop(u'print', var.get(u'specifiers').callprop(u'shift'), var.get(u'node'))
                    if var.get(u'specifiers').get(u'length'):
                        var.get(u"this").callprop(u'token', Js(u','))
                        var.get(u"this").callprop(u'space')
                else:
                    break
            if var.get(u'specifiers').get(u'length'):
                var.get(u"this").callprop(u'token', Js(u'{'))
                var.get(u"this").callprop(u'space')
                var.get(u"this").callprop(u'printList', var.get(u'specifiers'), var.get(u'node'))
                var.get(u"this").callprop(u'space')
                var.get(u"this").callprop(u'token', Js(u'}'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'word', Js(u'from'))
            var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'source'), var.get(u'node'))
        var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_ImportDeclaration_.func_name = u'ImportDeclaration'
    var.put(u'ImportDeclaration', PyJsHoisted_ImportDeclaration_)
    @Js
    def PyJsHoisted_ExportSpecifier_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'local'), var.get(u'node'))
        if (var.get(u'node').get(u'exported') and PyJsStrictNeq(var.get(u'node').get(u'local').get(u'name'),var.get(u'node').get(u'exported').get(u'name'))):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'word', Js(u'as'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'exported'), var.get(u'node'))
    PyJsHoisted_ExportSpecifier_.func_name = u'ExportSpecifier'
    var.put(u'ExportSpecifier', PyJsHoisted_ExportSpecifier_)
    @Js
    def PyJsHoisted_ImportSpecifier_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'imported'), var.get(u'node'))
        if (var.get(u'node').get(u'local') and PyJsStrictNeq(var.get(u'node').get(u'local').get(u'name'),var.get(u'node').get(u'imported').get(u'name'))):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'word', Js(u'as'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'local'), var.get(u'node'))
    PyJsHoisted_ImportSpecifier_.func_name = u'ImportSpecifier'
    var.put(u'ImportSpecifier', PyJsHoisted_ImportSpecifier_)
    @Js
    def PyJsHoisted_ExportDeclaration_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'specifiers', u'declar', u'first', u'hasSpecial'])
        if var.get(u'node').get(u'declaration'):
            var.put(u'declar', var.get(u'node').get(u'declaration'))
            var.get(u"this").callprop(u'print', var.get(u'declar'), var.get(u'node'))
            if var.get(u't').callprop(u'isStatement', var.get(u'declar')).neg():
                var.get(u"this").callprop(u'semicolon')
        else:
            if PyJsStrictEq(var.get(u'node').get(u'exportKind'),Js(u'type')):
                var.get(u"this").callprop(u'word', Js(u'type'))
                var.get(u"this").callprop(u'space')
            var.put(u'specifiers', var.get(u'node').get(u'specifiers').callprop(u'slice', Js(0.0)))
            var.put(u'hasSpecial', Js(False))
            while var.get(u'true'):
                var.put(u'first', var.get(u'specifiers').get(u'0'))
                if (var.get(u't').callprop(u'isExportDefaultSpecifier', var.get(u'first')) or var.get(u't').callprop(u'isExportNamespaceSpecifier', var.get(u'first'))):
                    var.put(u'hasSpecial', var.get(u'true'))
                    var.get(u"this").callprop(u'print', var.get(u'specifiers').callprop(u'shift'), var.get(u'node'))
                    if var.get(u'specifiers').get(u'length'):
                        var.get(u"this").callprop(u'token', Js(u','))
                        var.get(u"this").callprop(u'space')
                else:
                    break
            if (var.get(u'specifiers').get(u'length') or (var.get(u'specifiers').get(u'length').neg() and var.get(u'hasSpecial').neg())):
                var.get(u"this").callprop(u'token', Js(u'{'))
                if var.get(u'specifiers').get(u'length'):
                    var.get(u"this").callprop(u'space')
                    var.get(u"this").callprop(u'printList', var.get(u'specifiers'), var.get(u'node'))
                    var.get(u"this").callprop(u'space')
                var.get(u"this").callprop(u'token', Js(u'}'))
            if var.get(u'node').get(u'source'):
                var.get(u"this").callprop(u'space')
                var.get(u"this").callprop(u'word', Js(u'from'))
                var.get(u"this").callprop(u'space')
                var.get(u"this").callprop(u'print', var.get(u'node').get(u'source'), var.get(u'node'))
            var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_ExportDeclaration_.func_name = u'ExportDeclaration'
    var.put(u'ExportDeclaration', PyJsHoisted_ExportDeclaration_)
    @Js
    def PyJsHoisted_ImportDefaultSpecifier_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'local'), var.get(u'node'))
    PyJsHoisted_ImportDefaultSpecifier_.func_name = u'ImportDefaultSpecifier'
    var.put(u'ImportDefaultSpecifier', PyJsHoisted_ImportDefaultSpecifier_)
    @Js
    def PyJsHoisted_ExportNamedDeclaration_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'export'))
        var.get(u"this").callprop(u'space')
        var.get(u'ExportDeclaration').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))
    PyJsHoisted_ExportNamedDeclaration_.func_name = u'ExportNamedDeclaration'
    var.put(u'ExportNamedDeclaration', PyJsHoisted_ExportNamedDeclaration_)
    @Js
    def PyJsHoisted_ExportAllDeclaration_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'export'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'*'))
        if var.get(u'node').get(u'exported'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'word', Js(u'as'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'exported'), var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'word', Js(u'from'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'source'), var.get(u'node'))
        var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_ExportAllDeclaration_.func_name = u'ExportAllDeclaration'
    var.put(u'ExportAllDeclaration', PyJsHoisted_ExportAllDeclaration_)
    @Js
    def PyJsHoisted_ImportNamespaceSpecifier_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'*'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'word', Js(u'as'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'local'), var.get(u'node'))
    PyJsHoisted_ImportNamespaceSpecifier_.func_name = u'ImportNamespaceSpecifier'
    var.put(u'ImportNamespaceSpecifier', PyJsHoisted_ImportNamespaceSpecifier_)
    @Js
    def PyJsHoisted_ExportDefaultSpecifier_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'exported'), var.get(u'node'))
    PyJsHoisted_ExportDefaultSpecifier_.func_name = u'ExportDefaultSpecifier'
    var.put(u'ExportDefaultSpecifier', PyJsHoisted_ExportDefaultSpecifier_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'ImportSpecifier', var.get(u'ImportSpecifier'))
    var.get(u'exports').put(u'ImportDefaultSpecifier', var.get(u'ImportDefaultSpecifier'))
    var.get(u'exports').put(u'ExportDefaultSpecifier', var.get(u'ExportDefaultSpecifier'))
    var.get(u'exports').put(u'ExportSpecifier', var.get(u'ExportSpecifier'))
    var.get(u'exports').put(u'ExportNamespaceSpecifier', var.get(u'ExportNamespaceSpecifier'))
    var.get(u'exports').put(u'ExportAllDeclaration', var.get(u'ExportAllDeclaration'))
    var.get(u'exports').put(u'ExportNamedDeclaration', var.get(u'ExportNamedDeclaration'))
    var.get(u'exports').put(u'ExportDefaultDeclaration', var.get(u'ExportDefaultDeclaration'))
    var.get(u'exports').put(u'ImportDeclaration', var.get(u'ImportDeclaration'))
    var.get(u'exports').put(u'ImportNamespaceSpecifier', var.get(u'ImportNamespaceSpecifier'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_480_._set_name(u'anonymous')
PyJs_Object_482_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_483_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'ForOfStatement', u'LabeledStatement', u'ForAwaitStatement', u'module', u'DebuggerStatement', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'VariableDeclaration', u'ForStatement', u'getLastStatement', u'ContinueStatement', u'DoWhileStatement', u'SwitchStatement', u'CatchClause', u'buildLabelStatement', u'BreakStatement', u'buildForXStatement', u'exports', u'_interopRequireWildcard', u'_babelTypes', u'TryStatement', u'ForInStatement', u'SwitchCase', u'constDeclarationIdent', u'ThrowStatement', u'WithStatement', u'WhileStatement', u'variableDeclarationIdent', u't', u'ReturnStatement', u'VariableDeclarator', u'require', u'IfStatement'])
    @Js
    def PyJsHoisted_ForStatement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'for'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'('))
        (var.get(u"this").put(u'inForStatementInitCounter',Js(var.get(u"this").get(u'inForStatementInitCounter').to_number())+Js(1))-Js(1))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'init'), var.get(u'node'))
        (var.get(u"this").put(u'inForStatementInitCounter',Js(var.get(u"this").get(u'inForStatementInitCounter').to_number())-Js(1))+Js(1))
        var.get(u"this").callprop(u'token', Js(u';'))
        if var.get(u'node').get(u'test'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'test'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u';'))
        if var.get(u'node').get(u'update'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'update'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u')'))
        var.get(u"this").callprop(u'printBlock', var.get(u'node'))
    PyJsHoisted_ForStatement_.func_name = u'ForStatement'
    var.put(u'ForStatement', PyJsHoisted_ForStatement_)
    @Js
    def PyJsHoisted_constDeclarationIdent_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'i'])
        var.get(u"this").callprop(u'token', Js(u','))
        var.get(u"this").callprop(u'newline')
        if var.get(u"this").callprop(u'endsWith', Js(u'\n')):
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<Js(6.0)):
                try:
                    var.get(u"this").callprop(u'space', var.get(u'true'))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
    PyJsHoisted_constDeclarationIdent_.func_name = u'constDeclarationIdent'
    var.put(u'constDeclarationIdent', PyJsHoisted_constDeclarationIdent_)
    @Js
    def PyJsHoisted_getLastStatement_(statement, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'statement':statement}, var)
        var.registers([u'statement'])
        if var.get(u't').callprop(u'isStatement', var.get(u'statement').get(u'body')).neg():
            return var.get(u'statement')
        return var.get(u'getLastStatement')(var.get(u'statement').get(u'body'))
    PyJsHoisted_getLastStatement_.func_name = u'getLastStatement'
    var.put(u'getLastStatement', PyJsHoisted_getLastStatement_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_484_ = Js({})
            var.put(u'newObj', PyJs_Object_484_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_DoWhileStatement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'do'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'body'), var.get(u'node'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'word', Js(u'while'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'('))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'test'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u')'))
        var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_DoWhileStatement_.func_name = u'DoWhileStatement'
    var.put(u'DoWhileStatement', PyJsHoisted_DoWhileStatement_)
    @Js
    def PyJsHoisted_WithStatement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'with'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'('))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'object'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u')'))
        var.get(u"this").callprop(u'printBlock', var.get(u'node'))
    PyJsHoisted_WithStatement_.func_name = u'WithStatement'
    var.put(u'WithStatement', PyJsHoisted_WithStatement_)
    @Js
    def PyJsHoisted_WhileStatement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'while'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'('))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'test'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u')'))
        var.get(u"this").callprop(u'printBlock', var.get(u'node'))
    PyJsHoisted_WhileStatement_.func_name = u'WhileStatement'
    var.put(u'WhileStatement', PyJsHoisted_WhileStatement_)
    @Js
    def PyJsHoisted_CatchClause_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'catch'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'('))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'param'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u')'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'body'), var.get(u'node'))
    PyJsHoisted_CatchClause_.func_name = u'CatchClause'
    var.put(u'CatchClause', PyJsHoisted_CatchClause_)
    @Js
    def PyJsHoisted_buildLabelStatement_(prefix, this, arguments, var=var):
        var = Scope({u'this':this, u'prefix':prefix, u'arguments':arguments}, var)
        var.registers([u'prefix', u'key'])
        var.put(u'key', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else Js(u'label')))
        @Js
        def PyJs_anonymous_488_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node', u'terminatorState', u'label'])
            var.get(u"this").callprop(u'word', var.get(u'prefix'))
            var.put(u'label', var.get(u'node').get(var.get(u'key')))
            if var.get(u'label'):
                var.get(u"this").callprop(u'space')
                var.put(u'terminatorState', var.get(u"this").callprop(u'startTerminatorless'))
                var.get(u"this").callprop(u'print', var.get(u'label'), var.get(u'node'))
                var.get(u"this").callprop(u'endTerminatorless', var.get(u'terminatorState'))
            var.get(u"this").callprop(u'semicolon')
        PyJs_anonymous_488_._set_name(u'anonymous')
        return PyJs_anonymous_488_
    PyJsHoisted_buildLabelStatement_.func_name = u'buildLabelStatement'
    var.put(u'buildLabelStatement', PyJsHoisted_buildLabelStatement_)
    @Js
    def PyJsHoisted_TryStatement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'try'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'block'), var.get(u'node'))
        var.get(u"this").callprop(u'space')
        if var.get(u'node').get(u'handlers'):
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'handlers').get(u'0'), var.get(u'node'))
        else:
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'handler'), var.get(u'node'))
        if var.get(u'node').get(u'finalizer'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'word', Js(u'finally'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'finalizer'), var.get(u'node'))
    PyJsHoisted_TryStatement_.func_name = u'TryStatement'
    var.put(u'TryStatement', PyJsHoisted_TryStatement_)
    @Js
    def PyJsHoisted_DebuggerStatement_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'debugger'))
        var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_DebuggerStatement_.func_name = u'DebuggerStatement'
    var.put(u'DebuggerStatement', PyJsHoisted_DebuggerStatement_)
    @Js
    def PyJsHoisted_SwitchStatement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', Js(u'switch'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'('))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'discriminant'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u')'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'{'))
        @Js
        def PyJs_addNewlines_490_(leading, cas, this, arguments, var=var):
            var = Scope({u'cas':cas, u'leading':leading, u'this':this, u'arguments':arguments, u'addNewlines':PyJs_addNewlines_490_}, var)
            var.registers([u'cas', u'leading'])
            if (var.get(u'leading').neg() and PyJsStrictEq(var.get(u'node').get(u'cases').get((var.get(u'node').get(u'cases').get(u'length')-Js(1.0))),var.get(u'cas'))):
                return (-Js(1.0))
        PyJs_addNewlines_490_._set_name(u'addNewlines')
        PyJs_Object_489_ = Js({u'indent':var.get(u'true'),u'addNewlines':PyJs_addNewlines_490_})
        var.get(u"this").callprop(u'printSequence', var.get(u'node').get(u'cases'), var.get(u'node'), PyJs_Object_489_)
        var.get(u"this").callprop(u'token', Js(u'}'))
    PyJsHoisted_SwitchStatement_.func_name = u'SwitchStatement'
    var.put(u'SwitchStatement', PyJsHoisted_SwitchStatement_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_485_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_485_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_variableDeclarationIdent_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'i'])
        var.get(u"this").callprop(u'token', Js(u','))
        var.get(u"this").callprop(u'newline')
        if var.get(u"this").callprop(u'endsWith', Js(u'\n')):
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<Js(4.0)):
                try:
                    var.get(u"this").callprop(u'space', var.get(u'true'))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
    PyJsHoisted_variableDeclarationIdent_.func_name = u'variableDeclarationIdent'
    var.put(u'variableDeclarationIdent', PyJsHoisted_variableDeclarationIdent_)
    @Js
    def PyJsHoisted_LabeledStatement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'label'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u':'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'body'), var.get(u'node'))
    PyJsHoisted_LabeledStatement_.func_name = u'LabeledStatement'
    var.put(u'LabeledStatement', PyJsHoisted_LabeledStatement_)
    @Js
    def PyJsHoisted_VariableDeclaration_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'hasInits', u'_isArray', u'_iterator', u'parent', u'declar', u'separator', u'_i', u'_ref'])
        var.get(u"this").callprop(u'word', var.get(u'node').get(u'kind'))
        var.get(u"this").callprop(u'space')
        var.put(u'hasInits', Js(False))
        if var.get(u't').callprop(u'isFor', var.get(u'parent')).neg():
            #for JS loop
            var.put(u'_iterator', var.get(u'node').get(u'declarations'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'declar', var.get(u'_ref'))
                if var.get(u'declar').get(u'init'):
                    var.put(u'hasInits', var.get(u'true'))
            
        var.put(u'separator', PyJsComma(Js(0.0), Js(None)))
        if var.get(u'hasInits'):
            var.put(u'separator', (var.get(u'constDeclarationIdent') if PyJsStrictEq(var.get(u'node').get(u'kind'),Js(u'const')) else var.get(u'variableDeclarationIdent')))
        PyJs_Object_492_ = Js({u'separator':var.get(u'separator')})
        var.get(u"this").callprop(u'printList', var.get(u'node').get(u'declarations'), var.get(u'node'), PyJs_Object_492_)
        if var.get(u't').callprop(u'isFor', var.get(u'parent')):
            if (PyJsStrictEq(var.get(u'parent').get(u'left'),var.get(u'node')) or PyJsStrictEq(var.get(u'parent').get(u'init'),var.get(u'node'))):
                return var.get('undefined')
        var.get(u"this").callprop(u'semicolon')
    PyJsHoisted_VariableDeclaration_.func_name = u'VariableDeclaration'
    var.put(u'VariableDeclaration', PyJsHoisted_VariableDeclaration_)
    @Js
    def PyJsHoisted_SwitchCase_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u'node').get(u'test'):
            var.get(u"this").callprop(u'word', Js(u'case'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'test'), var.get(u'node'))
            var.get(u"this").callprop(u'token', Js(u':'))
        else:
            var.get(u"this").callprop(u'word', Js(u'default'))
            var.get(u"this").callprop(u'token', Js(u':'))
        if var.get(u'node').get(u'consequent').get(u'length'):
            var.get(u"this").callprop(u'newline')
            PyJs_Object_491_ = Js({u'indent':var.get(u'true')})
            var.get(u"this").callprop(u'printSequence', var.get(u'node').get(u'consequent'), var.get(u'node'), PyJs_Object_491_)
    PyJsHoisted_SwitchCase_.func_name = u'SwitchCase'
    var.put(u'SwitchCase', PyJsHoisted_SwitchCase_)
    @Js
    def PyJsHoisted_VariableDeclarator_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id'), var.get(u'node'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'id').get(u'typeAnnotation'), var.get(u'node'))
        if var.get(u'node').get(u'init'):
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'token', Js(u'='))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'init'), var.get(u'node'))
    PyJsHoisted_VariableDeclarator_.func_name = u'VariableDeclarator'
    var.put(u'VariableDeclarator', PyJsHoisted_VariableDeclarator_)
    @Js
    def PyJsHoisted_IfStatement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'needsBlock'])
        var.get(u"this").callprop(u'word', Js(u'if'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'('))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'test'), var.get(u'node'))
        var.get(u"this").callprop(u'token', Js(u')'))
        var.get(u"this").callprop(u'space')
        var.put(u'needsBlock', (var.get(u'node').get(u'alternate') and var.get(u't').callprop(u'isIfStatement', var.get(u'getLastStatement')(var.get(u'node').get(u'consequent')))))
        if var.get(u'needsBlock'):
            var.get(u"this").callprop(u'token', Js(u'{'))
            var.get(u"this").callprop(u'newline')
            var.get(u"this").callprop(u'indent')
        var.get(u"this").callprop(u'printAndIndentOnComments', var.get(u'node').get(u'consequent'), var.get(u'node'))
        if var.get(u'needsBlock'):
            var.get(u"this").callprop(u'dedent')
            var.get(u"this").callprop(u'newline')
            var.get(u"this").callprop(u'token', Js(u'}'))
        if var.get(u'node').get(u'alternate'):
            if var.get(u"this").callprop(u'endsWith', Js(u'}')):
                var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'word', Js(u'else'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'printAndIndentOnComments', var.get(u'node').get(u'alternate'), var.get(u'node'))
    PyJsHoisted_IfStatement_.func_name = u'IfStatement'
    var.put(u'IfStatement', PyJsHoisted_IfStatement_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'ThrowStatement', var.get(u'exports').put(u'BreakStatement', var.get(u'exports').put(u'ReturnStatement', var.get(u'exports').put(u'ContinueStatement', var.get(u'exports').put(u'ForAwaitStatement', var.get(u'exports').put(u'ForOfStatement', var.get(u'exports').put(u'ForInStatement', var.get(u'undefined'))))))))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'WithStatement', var.get(u'WithStatement'))
    var.get(u'exports').put(u'IfStatement', var.get(u'IfStatement'))
    var.get(u'exports').put(u'ForStatement', var.get(u'ForStatement'))
    var.get(u'exports').put(u'WhileStatement', var.get(u'WhileStatement'))
    var.get(u'exports').put(u'DoWhileStatement', var.get(u'DoWhileStatement'))
    var.get(u'exports').put(u'LabeledStatement', var.get(u'LabeledStatement'))
    var.get(u'exports').put(u'TryStatement', var.get(u'TryStatement'))
    var.get(u'exports').put(u'CatchClause', var.get(u'CatchClause'))
    var.get(u'exports').put(u'SwitchStatement', var.get(u'SwitchStatement'))
    var.get(u'exports').put(u'SwitchCase', var.get(u'SwitchCase'))
    var.get(u'exports').put(u'DebuggerStatement', var.get(u'DebuggerStatement'))
    var.get(u'exports').put(u'VariableDeclaration', var.get(u'VariableDeclaration'))
    var.get(u'exports').put(u'VariableDeclarator', var.get(u'VariableDeclarator'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    @Js
    def PyJs_buildForXStatement_486_(op, this, arguments, var=var):
        var = Scope({u'this':this, u'buildForXStatement':PyJs_buildForXStatement_486_, u'arguments':arguments, u'op':op}, var)
        var.registers([u'op'])
        @Js
        def PyJs_anonymous_487_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node'])
            var.get(u"this").callprop(u'word', Js(u'for'))
            var.get(u"this").callprop(u'space')
            if PyJsStrictEq(var.get(u'op'),Js(u'await')):
                var.get(u"this").callprop(u'word', Js(u'await'))
                var.get(u"this").callprop(u'space')
                var.put(u'op', Js(u'of'))
            var.get(u"this").callprop(u'token', Js(u'('))
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'left'), var.get(u'node'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'word', var.get(u'op'))
            var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'right'), var.get(u'node'))
            var.get(u"this").callprop(u'token', Js(u')'))
            var.get(u"this").callprop(u'printBlock', var.get(u'node'))
        PyJs_anonymous_487_._set_name(u'anonymous')
        return PyJs_anonymous_487_
    PyJs_buildForXStatement_486_._set_name(u'buildForXStatement')
    var.put(u'buildForXStatement', PyJs_buildForXStatement_486_)
    var.put(u'ForInStatement', var.get(u'exports').put(u'ForInStatement', var.get(u'buildForXStatement')(Js(u'in'))))
    var.put(u'ForOfStatement', var.get(u'exports').put(u'ForOfStatement', var.get(u'buildForXStatement')(Js(u'of'))))
    var.put(u'ForAwaitStatement', var.get(u'exports').put(u'ForAwaitStatement', var.get(u'buildForXStatement')(Js(u'await'))))
    pass
    pass
    var.put(u'ContinueStatement', var.get(u'exports').put(u'ContinueStatement', var.get(u'buildLabelStatement')(Js(u'continue'))))
    var.put(u'ReturnStatement', var.get(u'exports').put(u'ReturnStatement', var.get(u'buildLabelStatement')(Js(u'return'), Js(u'argument'))))
    var.put(u'BreakStatement', var.get(u'exports').put(u'BreakStatement', var.get(u'buildLabelStatement')(Js(u'break'))))
    var.put(u'ThrowStatement', var.get(u'exports').put(u'ThrowStatement', var.get(u'buildLabelStatement')(Js(u'throw'), Js(u'argument'))))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_483_._set_name(u'anonymous')
PyJs_Object_493_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_494_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'TaggedTemplateExpression', u'TemplateElement', u'TemplateLiteral'])
    @Js
    def PyJsHoisted_TemplateElement_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'value', u'parent', u'isFirst', u'isLast'])
        var.put(u'isFirst', PyJsStrictEq(var.get(u'parent').get(u'quasis').get(u'0'),var.get(u'node')))
        var.put(u'isLast', PyJsStrictEq(var.get(u'parent').get(u'quasis').get((var.get(u'parent').get(u'quasis').get(u'length')-Js(1.0))),var.get(u'node')))
        var.put(u'value', (((Js(u'`') if var.get(u'isFirst') else Js(u'}'))+var.get(u'node').get(u'value').get(u'raw'))+(Js(u'`') if var.get(u'isLast') else Js(u'${'))))
        if var.get(u'isFirst').neg():
            var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', var.get(u'value'))
        if var.get(u'isLast').neg():
            var.get(u"this").callprop(u'space')
    PyJsHoisted_TemplateElement_.func_name = u'TemplateElement'
    var.put(u'TemplateElement', PyJsHoisted_TemplateElement_)
    @Js
    def PyJsHoisted_TaggedTemplateExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'tag'), var.get(u'node'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'quasi'), var.get(u'node'))
    PyJsHoisted_TaggedTemplateExpression_.func_name = u'TaggedTemplateExpression'
    var.put(u'TaggedTemplateExpression', PyJsHoisted_TaggedTemplateExpression_)
    @Js
    def PyJsHoisted_TemplateLiteral_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'quasis', u'i', u'node'])
        var.put(u'quasis', var.get(u'node').get(u'quasis'))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'quasis').get(u'length')):
            try:
                var.get(u"this").callprop(u'print', var.get(u'quasis').get(var.get(u'i')), var.get(u'node'))
                if ((var.get(u'i')+Js(1.0))<var.get(u'quasis').get(u'length')):
                    var.get(u"this").callprop(u'print', var.get(u'node').get(u'expressions').get(var.get(u'i')), var.get(u'node'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
    PyJsHoisted_TemplateLiteral_.func_name = u'TemplateLiteral'
    var.put(u'TemplateLiteral', PyJsHoisted_TemplateLiteral_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'TaggedTemplateExpression', var.get(u'TaggedTemplateExpression'))
    var.get(u'exports').put(u'TemplateElement', var.get(u'TemplateElement'))
    var.get(u'exports').put(u'TemplateLiteral', var.get(u'TemplateLiteral'))
    pass
    pass
    pass
PyJs_anonymous_494_._set_name(u'anonymous')
PyJs_Object_495_ = Js({})
@Js
def PyJs_anonymous_496_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'NumericLiteral', u'exports', u'ObjectMethod', u'module', u'_jsesc2', u'_interopRequireWildcard', u'RestElement', u'require', u'_babelTypes', u'ObjectProperty', u'StringLiteral', u'ArrayExpression', u'BooleanLiteral', u'RegExpLiteral', u'ObjectExpression', u't', u'_jsesc', u'_interopRequireDefault', u'Identifier', u'NullLiteral'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_498_ = Js({})
            var.put(u'newObj', PyJs_Object_498_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_ObjectMethod_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'printJoin', var.get(u'node').get(u'decorators'), var.get(u'node'))
        var.get(u"this").callprop(u'_method', var.get(u'node'))
    PyJsHoisted_ObjectMethod_.func_name = u'ObjectMethod'
    var.put(u'ObjectMethod', PyJsHoisted_ObjectMethod_)
    @Js
    def PyJsHoisted_RestElement_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'token', Js(u'...'))
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'argument'), var.get(u'node'))
    PyJsHoisted_RestElement_.func_name = u'RestElement'
    var.put(u'RestElement', PyJsHoisted_RestElement_)
    @Js
    def PyJsHoisted_ObjectProperty_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'printJoin', var.get(u'node').get(u'decorators'), var.get(u'node'))
        if var.get(u'node').get(u'computed'):
            var.get(u"this").callprop(u'token', Js(u'['))
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'key'), var.get(u'node'))
            var.get(u"this").callprop(u'token', Js(u']'))
        else:
            if ((var.get(u't').callprop(u'isAssignmentPattern', var.get(u'node').get(u'value')) and var.get(u't').callprop(u'isIdentifier', var.get(u'node').get(u'key'))) and PyJsStrictEq(var.get(u'node').get(u'key').get(u'name'),var.get(u'node').get(u'value').get(u'left').get(u'name'))):
                var.get(u"this").callprop(u'print', var.get(u'node').get(u'value'), var.get(u'node'))
                return var.get('undefined')
            var.get(u"this").callprop(u'print', var.get(u'node').get(u'key'), var.get(u'node'))
            if (((var.get(u'node').get(u'shorthand') and var.get(u't').callprop(u'isIdentifier', var.get(u'node').get(u'key'))) and var.get(u't').callprop(u'isIdentifier', var.get(u'node').get(u'value'))) and PyJsStrictEq(var.get(u'node').get(u'key').get(u'name'),var.get(u'node').get(u'value').get(u'name'))):
                return var.get('undefined')
        var.get(u"this").callprop(u'token', Js(u':'))
        var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'print', var.get(u'node').get(u'value'), var.get(u'node'))
    PyJsHoisted_ObjectProperty_.func_name = u'ObjectProperty'
    var.put(u'ObjectProperty', PyJsHoisted_ObjectProperty_)
    @Js
    def PyJsHoisted_StringLiteral_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'raw', u'parent', u'val'])
        var.put(u'raw', var.get(u"this").callprop(u'getPossibleRaw', var.get(u'node')))
        if (var.get(u'raw')!=var.get(u"null")):
            var.get(u"this").callprop(u'token', var.get(u'raw'))
            return var.get('undefined')
        PyJs_Object_500_ = Js({u'quotes':(Js(u'double') if var.get(u't').callprop(u'isJSX', var.get(u'parent')) else var.get(u"this").get(u'format').get(u'quotes')),u'wrap':var.get(u'true')})
        var.put(u'val', PyJsComma(Js(0.0),var.get(u'_jsesc2').get(u'default'))(var.get(u'node').get(u'value'), PyJs_Object_500_))
        return var.get(u"this").callprop(u'token', var.get(u'val'))
    PyJsHoisted_StringLiteral_.func_name = u'StringLiteral'
    var.put(u'StringLiteral', PyJsHoisted_StringLiteral_)
    @Js
    def PyJsHoisted_ArrayExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'i', u'node', u'elems', u'len', u'elem'])
        var.put(u'elems', var.get(u'node').get(u'elements'))
        var.put(u'len', var.get(u'elems').get(u'length'))
        var.get(u"this").callprop(u'token', Js(u'['))
        var.get(u"this").callprop(u'printInnerComments', var.get(u'node'))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'elems').get(u'length')):
            try:
                var.put(u'elem', var.get(u'elems').get(var.get(u'i')))
                if var.get(u'elem'):
                    if (var.get(u'i')>Js(0.0)):
                        var.get(u"this").callprop(u'space')
                    var.get(u"this").callprop(u'print', var.get(u'elem'), var.get(u'node'))
                    if (var.get(u'i')<(var.get(u'len')-Js(1.0))):
                        var.get(u"this").callprop(u'token', Js(u','))
                else:
                    var.get(u"this").callprop(u'token', Js(u','))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        var.get(u"this").callprop(u'token', Js(u']'))
    PyJsHoisted_ArrayExpression_.func_name = u'ArrayExpression'
    var.put(u'ArrayExpression', PyJsHoisted_ArrayExpression_)
    @Js
    def PyJsHoisted_BooleanLiteral_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', (Js(u'true') if var.get(u'node').get(u'value') else Js(u'false')))
    PyJsHoisted_BooleanLiteral_.func_name = u'BooleanLiteral'
    var.put(u'BooleanLiteral', PyJsHoisted_BooleanLiteral_)
    @Js
    def PyJsHoisted_NumericLiteral_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'raw'])
        var.put(u'raw', var.get(u"this").callprop(u'getPossibleRaw', var.get(u'node')))
        var.get(u"this").callprop(u'number', ((var.get(u'node').get(u'value')+Js(u'')) if (var.get(u'raw')==var.get(u"null")) else var.get(u'raw')))
    PyJsHoisted_NumericLiteral_.func_name = u'NumericLiteral'
    var.put(u'NumericLiteral', PyJsHoisted_NumericLiteral_)
    @Js
    def PyJsHoisted_ObjectExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'props'])
        var.put(u'props', var.get(u'node').get(u'properties'))
        var.get(u"this").callprop(u'token', Js(u'{'))
        var.get(u"this").callprop(u'printInnerComments', var.get(u'node'))
        if var.get(u'props').get(u'length'):
            var.get(u"this").callprop(u'space')
            PyJs_Object_499_ = Js({u'indent':var.get(u'true'),u'statement':var.get(u'true')})
            var.get(u"this").callprop(u'printList', var.get(u'props'), var.get(u'node'), PyJs_Object_499_)
            var.get(u"this").callprop(u'space')
        var.get(u"this").callprop(u'token', Js(u'}'))
    PyJsHoisted_ObjectExpression_.func_name = u'ObjectExpression'
    var.put(u'ObjectExpression', PyJsHoisted_ObjectExpression_)
    @Js
    def PyJsHoisted_RegExpLiteral_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'word', (((Js(u'/')+var.get(u'node').get(u'pattern'))+Js(u'/'))+var.get(u'node').get(u'flags')))
    PyJsHoisted_RegExpLiteral_.func_name = u'RegExpLiteral'
    var.put(u'RegExpLiteral', PyJsHoisted_RegExpLiteral_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_497_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_497_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_Identifier_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u'node').get(u'variance'):
            if PyJsStrictEq(var.get(u'node').get(u'variance'),Js(u'plus')):
                var.get(u"this").callprop(u'token', Js(u'+'))
            else:
                if PyJsStrictEq(var.get(u'node').get(u'variance'),Js(u'minus')):
                    var.get(u"this").callprop(u'token', Js(u'-'))
        var.get(u"this").callprop(u'word', var.get(u'node').get(u'name'))
    PyJsHoisted_Identifier_.func_name = u'Identifier'
    var.put(u'Identifier', PyJsHoisted_Identifier_)
    @Js
    def PyJsHoisted_NullLiteral_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'word', Js(u'null'))
    PyJsHoisted_NullLiteral_.func_name = u'NullLiteral'
    var.put(u'NullLiteral', PyJsHoisted_NullLiteral_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'ArrayPattern', var.get(u'exports').put(u'ObjectPattern', var.get(u'exports').put(u'RestProperty', var.get(u'exports').put(u'SpreadProperty', var.get(u'exports').put(u'SpreadElement', var.get(u'undefined'))))))
    var.get(u'exports').put(u'Identifier', var.get(u'Identifier'))
    var.get(u'exports').put(u'RestElement', var.get(u'RestElement'))
    var.get(u'exports').put(u'ObjectExpression', var.get(u'ObjectExpression'))
    var.get(u'exports').put(u'ObjectMethod', var.get(u'ObjectMethod'))
    var.get(u'exports').put(u'ObjectProperty', var.get(u'ObjectProperty'))
    var.get(u'exports').put(u'ArrayExpression', var.get(u'ArrayExpression'))
    var.get(u'exports').put(u'RegExpLiteral', var.get(u'RegExpLiteral'))
    var.get(u'exports').put(u'BooleanLiteral', var.get(u'BooleanLiteral'))
    var.get(u'exports').put(u'NullLiteral', var.get(u'NullLiteral'))
    var.get(u'exports').put(u'NumericLiteral', var.get(u'NumericLiteral'))
    var.get(u'exports').put(u'StringLiteral', var.get(u'StringLiteral'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_jsesc', var.get(u'require')(Js(u'jsesc')))
    var.put(u'_jsesc2', var.get(u'_interopRequireDefault')(var.get(u'_jsesc')))
    pass
    pass
    pass
    pass
    var.get(u'exports').put(u'SpreadElement', var.get(u'RestElement'))
    var.get(u'exports').put(u'SpreadProperty', var.get(u'RestElement'))
    var.get(u'exports').put(u'RestProperty', var.get(u'RestElement'))
    pass
    var.get(u'exports').put(u'ObjectPattern', var.get(u'ObjectExpression'))
    pass
    pass
    pass
    var.get(u'exports').put(u'ArrayPattern', var.get(u'ArrayExpression'))
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_496_._set_name(u'anonymous')
PyJs_Object_501_ = Js({u'babel-types':Js(258.0),u'jsesc':Js(283.0)})
@Js
def PyJs_anonymous_502_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'Generator', u'_sourceMap', u'_detectIndent2', u'module', u'_interopRequireDefault', u'_printer2', u'normalizeOptions', u'findCommonStringDelimiter', u'_possibleConstructorReturn3', u'_possibleConstructorReturn2', u'_classCallCheck3', u'_classCallCheck2', u'_detectIndent', u'_babelMessages', u'exports', u'_printer', u'_interopRequireWildcard', u'_inherits3', u'_inherits2', u'require', u'CodeGenerator', u'messages', u'_sourceMap2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_505_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_505_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_findCommonStringDelimiter_(code, tokens, this, arguments, var=var):
        var = Scope({u'tokens':tokens, u'this':this, u'code':code, u'arguments':arguments}, var)
        var.registers([u'code', u'checked', u'i', u'tokens', u'raw', u'token', u'DEFAULT_STRING_DELIMITER', u'occurences'])
        var.put(u'DEFAULT_STRING_DELIMITER', Js(u'double'))
        if var.get(u'code').neg():
            return var.get(u'DEFAULT_STRING_DELIMITER')
        PyJs_Object_513_ = Js({u'single':Js(0.0),u'double':Js(0.0)})
        var.put(u'occurences', PyJs_Object_513_)
        var.put(u'checked', Js(0.0))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'tokens').get(u'length')):
            try:
                var.put(u'token', var.get(u'tokens').get(var.get(u'i')))
                if PyJsStrictNeq(var.get(u'token').get(u'type').get(u'label'),Js(u'string')):
                    continue
                var.put(u'raw', var.get(u'code').callprop(u'slice', var.get(u'token').get(u'start'), var.get(u'token').get(u'end')))
                if PyJsStrictEq(var.get(u'raw').get(u'0'),Js(u"'")):
                    (var.get(u'occurences').put(u'single',Js(var.get(u'occurences').get(u'single').to_number())+Js(1))-Js(1))
                else:
                    (var.get(u'occurences').put(u'double',Js(var.get(u'occurences').get(u'double').to_number())+Js(1))-Js(1))
                (var.put(u'checked',Js(var.get(u'checked').to_number())+Js(1))-Js(1))
                if (var.get(u'checked')>=Js(3.0)):
                    break
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        if (var.get(u'occurences').get(u'single')>var.get(u'occurences').get(u'double')):
            return Js(u'single')
        else:
            return Js(u'double')
    PyJsHoisted_findCommonStringDelimiter_.func_name = u'findCommonStringDelimiter'
    var.put(u'findCommonStringDelimiter', PyJsHoisted_findCommonStringDelimiter_)
    @Js
    def PyJsHoisted_normalizeOptions_(code, opts, tokens, this, arguments, var=var):
        var = Scope({u'tokens':tokens, u'this':this, u'code':code, u'arguments':arguments, u'opts':opts}, var)
        var.registers([u'style', u'code', u'indent', u'format', u'tokens', u'opts'])
        var.put(u'style', Js(u'  '))
        if (var.get(u'code') and PyJsStrictEq(var.get(u'code',throw=False).typeof(),Js(u'string'))):
            var.put(u'indent', PyJsComma(Js(0.0),var.get(u'_detectIndent2').get(u'default'))(var.get(u'code')).get(u'indent'))
            if (var.get(u'indent') and PyJsStrictNeq(var.get(u'indent'),Js(u' '))):
                var.put(u'style', var.get(u'indent'))
        PyJs_Object_510_ = Js({u'adjustMultilineComment':var.get(u'true'),u'style':var.get(u'style'),u'base':Js(0.0)})
        PyJs_Object_509_ = Js({u'auxiliaryCommentBefore':var.get(u'opts').get(u'auxiliaryCommentBefore'),u'auxiliaryCommentAfter':var.get(u'opts').get(u'auxiliaryCommentAfter'),u'shouldPrintComment':var.get(u'opts').get(u'shouldPrintComment'),u'retainLines':var.get(u'opts').get(u'retainLines'),u'retainFunctionParens':var.get(u'opts').get(u'retainFunctionParens'),u'comments':((var.get(u'opts').get(u'comments')==var.get(u"null")) or var.get(u'opts').get(u'comments')),u'compact':var.get(u'opts').get(u'compact'),u'minified':var.get(u'opts').get(u'minified'),u'concise':var.get(u'opts').get(u'concise'),u'quotes':(var.get(u'opts').get(u'quotes') or var.get(u'findCommonStringDelimiter')(var.get(u'code'), var.get(u'tokens'))),u'indent':PyJs_Object_510_})
        var.put(u'format', PyJs_Object_509_)
        if var.get(u'format').get(u'minified'):
            var.get(u'format').put(u'compact', var.get(u'true'))
            @Js
            def PyJs_anonymous_511_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return var.get(u'format').get(u'comments')
            PyJs_anonymous_511_._set_name(u'anonymous')
            var.get(u'format').put(u'shouldPrintComment', (var.get(u'format').get(u'shouldPrintComment') or PyJs_anonymous_511_))
        else:
            @Js
            def PyJs_anonymous_512_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return ((var.get(u'format').get(u'comments') or (var.get(u'value').callprop(u'indexOf', Js(u'@license'))>=Js(0.0))) or (var.get(u'value').callprop(u'indexOf', Js(u'@preserve'))>=Js(0.0)))
            PyJs_anonymous_512_._set_name(u'anonymous')
            var.get(u'format').put(u'shouldPrintComment', (var.get(u'format').get(u'shouldPrintComment') or PyJs_anonymous_512_))
        if PyJsStrictEq(var.get(u'format').get(u'compact'),Js(u'auto')):
            var.get(u'format').put(u'compact', (var.get(u'code').get(u'length')>Js(100000.0)))
            if var.get(u'format').get(u'compact'):
                var.get(u'console').callprop(u'error', (Js(u'[BABEL] ')+var.get(u'messages').callprop(u'get', Js(u'codeGeneratorDeopt'), var.get(u'opts').get(u'filename'), Js(u'100KB'))))
        if var.get(u'format').get(u'compact'):
            var.get(u'format').get(u'indent').put(u'adjustMultilineComment', Js(False))
        return var.get(u'format')
    PyJsHoisted_normalizeOptions_.func_name = u'normalizeOptions'
    var.put(u'normalizeOptions', PyJsHoisted_normalizeOptions_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_504_ = Js({})
            var.put(u'newObj', PyJs_Object_504_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'CodeGenerator', var.get(u'undefined'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_possibleConstructorReturn2', var.get(u'require')(Js(u'babel-runtime/helpers/possibleConstructorReturn')))
    var.put(u'_possibleConstructorReturn3', var.get(u'_interopRequireDefault')(var.get(u'_possibleConstructorReturn2')))
    var.put(u'_inherits2', var.get(u'require')(Js(u'babel-runtime/helpers/inherits')))
    var.put(u'_inherits3', var.get(u'_interopRequireDefault')(var.get(u'_inherits2')))
    @Js
    def PyJs_anonymous_503_(ast, opts, code, this, arguments, var=var):
        var = Scope({u'this':this, u'code':code, u'arguments':arguments, u'opts':opts, u'ast':ast}, var)
        var.registers([u'code', u'gen', u'opts', u'ast'])
        var.put(u'gen', var.get(u'Generator').create(var.get(u'ast'), var.get(u'opts'), var.get(u'code')))
        return var.get(u'gen').callprop(u'generate')
    PyJs_anonymous_503_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_503_)
    var.put(u'_detectIndent', var.get(u'require')(Js(u'detect-indent')))
    var.put(u'_detectIndent2', var.get(u'_interopRequireDefault')(var.get(u'_detectIndent')))
    var.put(u'_sourceMap', var.get(u'require')(Js(u'./source-map')))
    var.put(u'_sourceMap2', var.get(u'_interopRequireDefault')(var.get(u'_sourceMap')))
    var.put(u'_babelMessages', var.get(u'require')(Js(u'babel-messages')))
    var.put(u'messages', var.get(u'_interopRequireWildcard')(var.get(u'_babelMessages')))
    var.put(u'_printer', var.get(u'require')(Js(u'./printer')))
    var.put(u'_printer2', var.get(u'_interopRequireDefault')(var.get(u'_printer')))
    pass
    pass
    @Js
    def PyJs_anonymous_506_(_Printer, this, arguments, var=var):
        var = Scope({u'this':this, u'_Printer':_Printer, u'arguments':arguments}, var)
        var.registers([u'_Printer', u'Generator'])
        @Js
        def PyJsHoisted_Generator_(ast, opts, code, this, arguments, var=var):
            var = Scope({u'this':this, u'code':code, u'arguments':arguments, u'opts':opts, u'ast':ast}, var)
            var.registers([u'map', u'code', u'_this', u'ast', u'format', u'tokens', u'opts'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Generator'))
            PyJs_Object_507_ = Js({})
            var.put(u'opts', (var.get(u'opts') or PyJs_Object_507_))
            var.put(u'tokens', (var.get(u'ast').get(u'tokens') or Js([])))
            var.put(u'format', var.get(u'normalizeOptions')(var.get(u'code'), var.get(u'opts'), var.get(u'tokens')))
            var.put(u'map', (var.get(u'_sourceMap2').get(u'default').create(var.get(u'opts'), var.get(u'code')) if var.get(u'opts').get(u'sourceMaps') else var.get(u"null")))
            var.put(u'_this', PyJsComma(Js(0.0),var.get(u'_possibleConstructorReturn3').get(u'default'))(var.get(u"this"), var.get(u'_Printer').callprop(u'call', var.get(u"this"), var.get(u'format'), var.get(u'map'), var.get(u'tokens'))))
            var.get(u'_this').put(u'ast', var.get(u'ast'))
            return var.get(u'_this')
        PyJsHoisted_Generator_.func_name = u'Generator'
        var.put(u'Generator', PyJsHoisted_Generator_)
        PyJsComma(Js(0.0),var.get(u'_inherits3').get(u'default'))(var.get(u'Generator'), var.get(u'_Printer'))
        pass
        @Js
        def PyJs_generate_508_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'generate':PyJs_generate_508_}, var)
            var.registers([])
            return var.get(u'_Printer').get(u'prototype').get(u'generate').callprop(u'call', var.get(u"this"), var.get(u"this").get(u'ast'))
        PyJs_generate_508_._set_name(u'generate')
        var.get(u'Generator').get(u'prototype').put(u'generate', PyJs_generate_508_)
        return var.get(u'Generator')
    PyJs_anonymous_506_._set_name(u'anonymous')
    var.put(u'Generator', PyJs_anonymous_506_(var.get(u'_printer2').get(u'default')))
    pass
    pass
    @Js
    def PyJs_anonymous_514_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'CodeGenerator'])
        @Js
        def PyJsHoisted_CodeGenerator_(ast, opts, code, this, arguments, var=var):
            var = Scope({u'this':this, u'code':code, u'arguments':arguments, u'opts':opts, u'ast':ast}, var)
            var.registers([u'code', u'opts', u'ast'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'CodeGenerator'))
            var.get(u"this").put(u'_generator', var.get(u'Generator').create(var.get(u'ast'), var.get(u'opts'), var.get(u'code')))
        PyJsHoisted_CodeGenerator_.func_name = u'CodeGenerator'
        var.put(u'CodeGenerator', PyJsHoisted_CodeGenerator_)
        pass
        @Js
        def PyJs_generate_515_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'generate':PyJs_generate_515_}, var)
            var.registers([])
            return var.get(u"this").get(u'_generator').callprop(u'generate')
        PyJs_generate_515_._set_name(u'generate')
        var.get(u'CodeGenerator').get(u'prototype').put(u'generate', PyJs_generate_515_)
        return var.get(u'CodeGenerator')
    PyJs_anonymous_514_._set_name(u'anonymous')
    var.put(u'CodeGenerator', var.get(u'exports').put(u'CodeGenerator', PyJs_anonymous_514_()))
PyJs_anonymous_502_._set_name(u'anonymous')
PyJs_Object_516_ = Js({u'./printer':Js(44.0),u'./source-map':Js(45.0),u'babel-messages':Js(57.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-runtime/helpers/inherits':Js(111.0),u'babel-runtime/helpers/possibleConstructorReturn':Js(113.0),u'detect-indent':Js(271.0)})
@Js
def PyJs_anonymous_517_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'needsParens', u'module', u'_parentheses', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'find', u'needsWhitespaceBefore', u'_keys', u'parens', u'exports', u'expandedWhitespaceNodes', u'_interopRequireWildcard', u'_babelTypes', u'expandAliases', u'needsWhitespace', u'_keys2', u'_whitespace2', u'expandedParens', u'expandedWhitespaceList', u'require', u'isOrHasCallExpression', u'_whitespace', u't', u'needsWhitespaceAfter'])
    @Js
    def PyJsHoisted_needsParens_(node, parent, printStack, this, arguments, var=var):
        var = Scope({u'node':node, u'printStack':printStack, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'printStack', u'parent'])
        if var.get(u'parent').neg():
            return Js(False)
        if (var.get(u't').callprop(u'isNewExpression', var.get(u'parent')) and PyJsStrictEq(var.get(u'parent').get(u'callee'),var.get(u'node'))):
            if var.get(u'isOrHasCallExpression')(var.get(u'node')):
                return var.get(u'true')
        return var.get(u'find')(var.get(u'expandedParens'), var.get(u'node'), var.get(u'parent'), var.get(u'printStack'))
    PyJsHoisted_needsParens_.func_name = u'needsParens'
    var.put(u'needsParens', PyJsHoisted_needsParens_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_518_ = Js({})
            var.put(u'newObj', PyJs_Object_518_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_needsWhitespaceBefore_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        return var.get(u'needsWhitespace')(var.get(u'node'), var.get(u'parent'), Js(u'before'))
    PyJsHoisted_needsWhitespaceBefore_.func_name = u'needsWhitespaceBefore'
    var.put(u'needsWhitespaceBefore', PyJsHoisted_needsWhitespaceBefore_)
    @Js
    def PyJsHoisted_expandAliases_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'_isArray', u'_iterator', u'_isArray2', u'_ref2', u'_i2', u'newObj', u'alias', u'add', u'_i', u'obj', u'_ref', u'_iterator2', u'type', u'aliases'])
        @Js
        def PyJsHoisted_add_(type, func, this, arguments, var=var):
            var = Scope({u'this':this, u'type':type, u'arguments':arguments, u'func':func}, var)
            var.registers([u'type', u'func', u'fn'])
            var.put(u'fn', var.get(u'newObj').get(var.get(u'type')))
            @Js
            def PyJs_anonymous_521_(node, parent, stack, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'stack':stack, u'parent':parent, u'arguments':arguments}, var)
                var.registers([u'node', u'result', u'parent', u'stack'])
                var.put(u'result', var.get(u'fn')(var.get(u'node'), var.get(u'parent'), var.get(u'stack')))
                return (var.get(u'func')(var.get(u'node'), var.get(u'parent'), var.get(u'stack')) if (var.get(u'result')==var.get(u"null")) else var.get(u'result'))
            PyJs_anonymous_521_._set_name(u'anonymous')
            var.get(u'newObj').put(var.get(u'type'), (PyJs_anonymous_521_ if var.get(u'fn') else var.get(u'func')))
        PyJsHoisted_add_.func_name = u'add'
        var.put(u'add', PyJsHoisted_add_)
        PyJs_Object_520_ = Js({})
        var.put(u'newObj', PyJs_Object_520_)
        pass
        #for JS loop
        var.put(u'_iterator', PyJsComma(Js(0.0),var.get(u'_keys2').get(u'default'))(var.get(u'obj')))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'type', var.get(u'_ref'))
            var.put(u'aliases', var.get(u't').get(u'FLIPPED_ALIAS_KEYS').get(var.get(u'type')))
            if var.get(u'aliases'):
                #for JS loop
                var.put(u'_iterator2', var.get(u'aliases'))
                var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
                var.put(u'_i2', Js(0.0))
                var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
                while 1:
                    pass
                    if var.get(u'_isArray2'):
                        if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                            break
                        var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                        if var.get(u'_i2').get(u'done'):
                            break
                        var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                    var.put(u'alias', var.get(u'_ref2'))
                    var.get(u'add')(var.get(u'alias'), var.get(u'obj').get(var.get(u'type')))
                
            else:
                var.get(u'add')(var.get(u'type'), var.get(u'obj').get(var.get(u'type')))
        
        return var.get(u'newObj')
    PyJsHoisted_expandAliases_.func_name = u'expandAliases'
    var.put(u'expandAliases', PyJsHoisted_expandAliases_)
    @Js
    def PyJsHoisted_needsWhitespace_(node, parent, type, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'type':type, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent', u'i', u'items', u'linesInfo', u'type'])
        if var.get(u'node').neg():
            return Js(0.0)
        if var.get(u't').callprop(u'isExpressionStatement', var.get(u'node')):
            var.put(u'node', var.get(u'node').get(u'expression'))
        var.put(u'linesInfo', var.get(u'find')(var.get(u'expandedWhitespaceNodes'), var.get(u'node'), var.get(u'parent')))
        if var.get(u'linesInfo').neg():
            var.put(u'items', var.get(u'find')(var.get(u'expandedWhitespaceList'), var.get(u'node'), var.get(u'parent')))
            if var.get(u'items'):
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'items').get(u'length')):
                    try:
                        var.put(u'linesInfo', var.get(u'needsWhitespace')(var.get(u'items').get(var.get(u'i')), var.get(u'node'), var.get(u'type')))
                        if var.get(u'linesInfo'):
                            break
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return ((var.get(u'linesInfo') and var.get(u'linesInfo').get(var.get(u'type'))) or Js(0.0))
    PyJsHoisted_needsWhitespace_.func_name = u'needsWhitespace'
    var.put(u'needsWhitespace', PyJsHoisted_needsWhitespace_)
    @Js
    def PyJsHoisted_isOrHasCallExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u't').callprop(u'isCallExpression', var.get(u'node')):
            return var.get(u'true')
        if var.get(u't').callprop(u'isMemberExpression', var.get(u'node')):
            return (var.get(u'isOrHasCallExpression')(var.get(u'node').get(u'object')) or (var.get(u'node').get(u'computed').neg() and var.get(u'isOrHasCallExpression')(var.get(u'node').get(u'property'))))
        else:
            return Js(False)
    PyJsHoisted_isOrHasCallExpression_.func_name = u'isOrHasCallExpression'
    var.put(u'isOrHasCallExpression', PyJsHoisted_isOrHasCallExpression_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_519_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_519_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_needsWhitespaceAfter_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        return var.get(u'needsWhitespace')(var.get(u'node'), var.get(u'parent'), Js(u'after'))
    PyJsHoisted_needsWhitespaceAfter_.func_name = u'needsWhitespaceAfter'
    var.put(u'needsWhitespaceAfter', PyJsHoisted_needsWhitespaceAfter_)
    @Js
    def PyJsHoisted_find_(obj, node, parent, printStack, this, arguments, var=var):
        var = Scope({u'node':node, u'obj':obj, u'arguments':arguments, u'parent':parent, u'this':this, u'printStack':printStack}, var)
        var.registers([u'node', u'printStack', u'obj', u'parent', u'fn'])
        var.put(u'fn', var.get(u'obj').get(var.get(u'node').get(u'type')))
        return (var.get(u'fn')(var.get(u'node'), var.get(u'parent'), var.get(u'printStack')) if var.get(u'fn') else var.get(u"null"))
    PyJsHoisted_find_.func_name = u'find'
    var.put(u'find', PyJsHoisted_find_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_keys', var.get(u'require')(Js(u'babel-runtime/core-js/object/keys')))
    var.put(u'_keys2', var.get(u'_interopRequireDefault')(var.get(u'_keys')))
    var.get(u'exports').put(u'needsWhitespace', var.get(u'needsWhitespace'))
    var.get(u'exports').put(u'needsWhitespaceBefore', var.get(u'needsWhitespaceBefore'))
    var.get(u'exports').put(u'needsWhitespaceAfter', var.get(u'needsWhitespaceAfter'))
    var.get(u'exports').put(u'needsParens', var.get(u'needsParens'))
    var.put(u'_whitespace', var.get(u'require')(Js(u'./whitespace')))
    var.put(u'_whitespace2', var.get(u'_interopRequireDefault')(var.get(u'_whitespace')))
    var.put(u'_parentheses', var.get(u'require')(Js(u'./parentheses')))
    var.put(u'parens', var.get(u'_interopRequireWildcard')(var.get(u'_parentheses')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    var.put(u'expandedParens', var.get(u'expandAliases')(var.get(u'parens')))
    var.put(u'expandedWhitespaceNodes', var.get(u'expandAliases')(var.get(u'_whitespace2').get(u'default').get(u'nodes')))
    var.put(u'expandedWhitespaceList', var.get(u'expandAliases')(var.get(u'_whitespace2').get(u'default').get(u'list')))
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_517_._set_name(u'anonymous')
PyJs_Object_522_ = Js({u'./parentheses':Js(42.0),u'./whitespace':Js(43.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/object/keys':Js(103.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_523_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'ArrowFunctionExpression', u'Binary', u'exports', u'SequenceExpression', u'ConditionalExpression', u'_interopRequireWildcard', u'PRECEDENCE', u'ClassExpression', u'require', u'_babelTypes', u'FunctionExpression', u'UpdateExpression', u'module', u'YieldExpression', u'ObjectExpression', u't', u'BinaryExpression', u'AssignmentExpression', u'isFirstInStatement', u'UnaryLike', u'NullableTypeAnnotation'])
    @Js
    def PyJsHoisted_Binary_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'nodePos', u'parent', u'parentPos', u'parentOp', u'nodeOp'])
        if ((var.get(u't').callprop(u'isCallExpression', var.get(u'parent')) or var.get(u't').callprop(u'isNewExpression', var.get(u'parent'))) and PyJsStrictEq(var.get(u'parent').get(u'callee'),var.get(u'node'))):
            return var.get(u'true')
        if var.get(u't').callprop(u'isUnaryLike', var.get(u'parent')):
            return var.get(u'true')
        if (var.get(u't').callprop(u'isMemberExpression', var.get(u'parent')) and PyJsStrictEq(var.get(u'parent').get(u'object'),var.get(u'node'))):
            return var.get(u'true')
        if var.get(u't').callprop(u'isBinary', var.get(u'parent')):
            var.put(u'parentOp', var.get(u'parent').get(u'operator'))
            var.put(u'parentPos', var.get(u'PRECEDENCE').get(var.get(u'parentOp')))
            var.put(u'nodeOp', var.get(u'node').get(u'operator'))
            var.put(u'nodePos', var.get(u'PRECEDENCE').get(var.get(u'nodeOp')))
            if (var.get(u'parentPos')>var.get(u'nodePos')):
                return var.get(u'true')
            if ((PyJsStrictEq(var.get(u'parentPos'),var.get(u'nodePos')) and PyJsStrictEq(var.get(u'parent').get(u'right'),var.get(u'node'))) and var.get(u't').callprop(u'isLogicalExpression', var.get(u'parent')).neg()):
                return var.get(u'true')
        return Js(False)
    PyJsHoisted_Binary_.func_name = u'Binary'
    var.put(u'Binary', PyJsHoisted_Binary_)
    @Js
    def PyJsHoisted_SequenceExpression_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        if var.get(u't').callprop(u'isForStatement', var.get(u'parent')):
            return Js(False)
        if (var.get(u't').callprop(u'isExpressionStatement', var.get(u'parent')) and PyJsStrictEq(var.get(u'parent').get(u'expression'),var.get(u'node'))):
            return Js(False)
        if var.get(u't').callprop(u'isReturnStatement', var.get(u'parent')):
            return Js(False)
        if var.get(u't').callprop(u'isThrowStatement', var.get(u'parent')):
            return Js(False)
        if (var.get(u't').callprop(u'isSwitchStatement', var.get(u'parent')) and PyJsStrictEq(var.get(u'parent').get(u'discriminant'),var.get(u'node'))):
            return Js(False)
        if (var.get(u't').callprop(u'isWhileStatement', var.get(u'parent')) and PyJsStrictEq(var.get(u'parent').get(u'test'),var.get(u'node'))):
            return Js(False)
        if (var.get(u't').callprop(u'isIfStatement', var.get(u'parent')) and PyJsStrictEq(var.get(u'parent').get(u'test'),var.get(u'node'))):
            return Js(False)
        if (var.get(u't').callprop(u'isForInStatement', var.get(u'parent')) and PyJsStrictEq(var.get(u'parent').get(u'right'),var.get(u'node'))):
            return Js(False)
        return var.get(u'true')
    PyJsHoisted_SequenceExpression_.func_name = u'SequenceExpression'
    var.put(u'SequenceExpression', PyJsHoisted_SequenceExpression_)
    @Js
    def PyJsHoisted_ArrowFunctionExpression_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        if var.get(u't').callprop(u'isExportDeclaration', var.get(u'parent')):
            return var.get(u'true')
        if (var.get(u't').callprop(u'isBinaryExpression', var.get(u'parent')) or var.get(u't').callprop(u'isLogicalExpression', var.get(u'parent'))):
            return var.get(u'true')
        if var.get(u't').callprop(u'isUnaryExpression', var.get(u'parent')):
            return var.get(u'true')
        return var.get(u'UnaryLike')(var.get(u'node'), var.get(u'parent'))
    PyJsHoisted_ArrowFunctionExpression_.func_name = u'ArrowFunctionExpression'
    var.put(u'ArrowFunctionExpression', PyJsHoisted_ArrowFunctionExpression_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_524_ = Js({})
            var.put(u'newObj', PyJs_Object_524_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_ClassExpression_(node, parent, printStack, this, arguments, var=var):
        var = Scope({u'node':node, u'printStack':printStack, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'printStack', u'parent'])
        PyJs_Object_528_ = Js({u'considerDefaultExports':var.get(u'true')})
        return var.get(u'isFirstInStatement')(var.get(u'printStack'), PyJs_Object_528_)
    PyJsHoisted_ClassExpression_.func_name = u'ClassExpression'
    var.put(u'ClassExpression', PyJsHoisted_ClassExpression_)
    @Js
    def PyJsHoisted_ConditionalExpression_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        if var.get(u't').callprop(u'isUnaryLike', var.get(u'parent')):
            return var.get(u'true')
        if var.get(u't').callprop(u'isBinary', var.get(u'parent')):
            return var.get(u'true')
        PyJs_Object_533_ = Js({u'test':var.get(u'node')})
        if var.get(u't').callprop(u'isConditionalExpression', var.get(u'parent'), PyJs_Object_533_):
            return var.get(u'true')
        return var.get(u'UnaryLike')(var.get(u'node'), var.get(u'parent'))
    PyJsHoisted_ConditionalExpression_.func_name = u'ConditionalExpression'
    var.put(u'ConditionalExpression', PyJsHoisted_ConditionalExpression_)
    @Js
    def PyJsHoisted_FunctionExpression_(node, parent, printStack, this, arguments, var=var):
        var = Scope({u'node':node, u'printStack':printStack, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'printStack', u'parent'])
        PyJs_Object_532_ = Js({u'considerDefaultExports':var.get(u'true')})
        return var.get(u'isFirstInStatement')(var.get(u'printStack'), PyJs_Object_532_)
    PyJsHoisted_FunctionExpression_.func_name = u'FunctionExpression'
    var.put(u'FunctionExpression', PyJsHoisted_FunctionExpression_)
    @Js
    def PyJsHoisted_UpdateExpression_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        if (var.get(u't').callprop(u'isMemberExpression', var.get(u'parent')) and PyJsStrictEq(var.get(u'parent').get(u'object'),var.get(u'node'))):
            return var.get(u'true')
        return Js(False)
    PyJsHoisted_UpdateExpression_.func_name = u'UpdateExpression'
    var.put(u'UpdateExpression', PyJsHoisted_UpdateExpression_)
    @Js
    def PyJsHoisted_YieldExpression_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        def PyJs_LONG_527_(var=var):
            return (((((var.get(u't').callprop(u'isBinary', var.get(u'parent')) or var.get(u't').callprop(u'isUnaryLike', var.get(u'parent'))) or var.get(u't').callprop(u'isCallExpression', var.get(u'parent'))) or var.get(u't').callprop(u'isMemberExpression', var.get(u'parent'))) or var.get(u't').callprop(u'isNewExpression', var.get(u'parent'))) or (var.get(u't').callprop(u'isConditionalExpression', var.get(u'parent')) and PyJsStrictEq(var.get(u'node'),var.get(u'parent').get(u'test'))))
        return PyJs_LONG_527_()
    PyJsHoisted_YieldExpression_.func_name = u'YieldExpression'
    var.put(u'YieldExpression', PyJsHoisted_YieldExpression_)
    @Js
    def PyJsHoisted_ObjectExpression_(node, parent, printStack, this, arguments, var=var):
        var = Scope({u'node':node, u'printStack':printStack, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'printStack', u'parent'])
        PyJs_Object_526_ = Js({u'considerArrow':var.get(u'true')})
        return var.get(u'isFirstInStatement')(var.get(u'printStack'), PyJs_Object_526_)
    PyJsHoisted_ObjectExpression_.func_name = u'ObjectExpression'
    var.put(u'ObjectExpression', PyJsHoisted_ObjectExpression_)
    @Js
    def PyJsHoisted_BinaryExpression_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        if PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'in')):
            if var.get(u't').callprop(u'isVariableDeclarator', var.get(u'parent')):
                return var.get(u'true')
            if var.get(u't').callprop(u'isFor', var.get(u'parent')):
                return var.get(u'true')
        return Js(False)
    PyJsHoisted_BinaryExpression_.func_name = u'BinaryExpression'
    var.put(u'BinaryExpression', PyJsHoisted_BinaryExpression_)
    @Js
    def PyJsHoisted_AssignmentExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u't').callprop(u'isObjectPattern', var.get(u'node').get(u'left')):
            return var.get(u'true')
        else:
            return var.get(u'ConditionalExpression').callprop(u'apply', var.get(u'undefined'), var.get(u'arguments'))
    PyJsHoisted_AssignmentExpression_.func_name = u'AssignmentExpression'
    var.put(u'AssignmentExpression', PyJsHoisted_AssignmentExpression_)
    @Js
    def PyJsHoisted_isFirstInStatement_(printStack, this, arguments, var=var):
        var = Scope({u'this':this, u'printStack':printStack, u'arguments':arguments}, var)
        var.registers([u'_ref$considerArrow', u'node', u'considerDefaultExports', u'parent', u'i', u'printStack', u'_ref$considerDefaultE', u'considerArrow', u'_ref'])
        PyJs_Object_534_ = Js({})
        var.put(u'_ref', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else PyJs_Object_534_))
        var.put(u'_ref$considerArrow', var.get(u'_ref').get(u'considerArrow'))
        var.put(u'considerArrow', (Js(False) if PyJsStrictEq(var.get(u'_ref$considerArrow'),var.get(u'undefined')) else var.get(u'_ref$considerArrow')))
        var.put(u'_ref$considerDefaultE', var.get(u'_ref').get(u'considerDefaultExports'))
        var.put(u'considerDefaultExports', (Js(False) if PyJsStrictEq(var.get(u'_ref$considerDefaultE'),var.get(u'undefined')) else var.get(u'_ref$considerDefaultE')))
        var.put(u'i', (var.get(u'printStack').get(u'length')-Js(1.0)))
        var.put(u'node', var.get(u'printStack').get(var.get(u'i')))
        (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
        var.put(u'parent', var.get(u'printStack').get(var.get(u'i')))
        while (var.get(u'i')>Js(0.0)):
            PyJs_Object_535_ = Js({u'expression':var.get(u'node')})
            if var.get(u't').callprop(u'isExpressionStatement', var.get(u'parent'), PyJs_Object_535_):
                return var.get(u'true')
            PyJs_Object_536_ = Js({u'declaration':var.get(u'node')})
            if (var.get(u'considerDefaultExports') and var.get(u't').callprop(u'isExportDefaultDeclaration', var.get(u'parent'), PyJs_Object_536_)):
                return var.get(u'true')
            PyJs_Object_537_ = Js({u'body':var.get(u'node')})
            if (var.get(u'considerArrow') and var.get(u't').callprop(u'isArrowFunctionExpression', var.get(u'parent'), PyJs_Object_537_)):
                return var.get(u'true')
            def PyJs_LONG_541_(var=var):
                PyJs_Object_538_ = Js({u'callee':var.get(u'node')})
                PyJs_Object_539_ = Js({u'object':var.get(u'node')})
                PyJs_Object_540_ = Js({u'test':var.get(u'node')})
                return (((var.get(u't').callprop(u'isCallExpression', var.get(u'parent'), PyJs_Object_538_) or (var.get(u't').callprop(u'isSequenceExpression', var.get(u'parent')) and PyJsStrictEq(var.get(u'parent').get(u'expressions').get(u'0'),var.get(u'node')))) or var.get(u't').callprop(u'isMemberExpression', var.get(u'parent'), PyJs_Object_539_)) or var.get(u't').callprop(u'isConditional', var.get(u'parent'), PyJs_Object_540_))
            PyJs_Object_542_ = Js({u'left':var.get(u'node')})
            PyJs_Object_543_ = Js({u'left':var.get(u'node')})
            if ((PyJs_LONG_541_() or var.get(u't').callprop(u'isBinary', var.get(u'parent'), PyJs_Object_542_)) or var.get(u't').callprop(u'isAssignmentExpression', var.get(u'parent'), PyJs_Object_543_)):
                var.put(u'node', var.get(u'parent'))
                (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
                var.put(u'parent', var.get(u'printStack').get(var.get(u'i')))
            else:
                return Js(False)
        return Js(False)
    PyJsHoisted_isFirstInStatement_.func_name = u'isFirstInStatement'
    var.put(u'isFirstInStatement', PyJsHoisted_isFirstInStatement_)
    @Js
    def PyJsHoisted_UnaryLike_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        PyJs_Object_529_ = Js({u'object':var.get(u'node')})
        if var.get(u't').callprop(u'isMemberExpression', var.get(u'parent'), PyJs_Object_529_):
            return var.get(u'true')
        PyJs_Object_530_ = Js({u'callee':var.get(u'node')})
        PyJs_Object_531_ = Js({u'callee':var.get(u'node')})
        if (var.get(u't').callprop(u'isCallExpression', var.get(u'parent'), PyJs_Object_530_) or var.get(u't').callprop(u'isNewExpression', var.get(u'parent'), PyJs_Object_531_)):
            return var.get(u'true')
        return Js(False)
    PyJsHoisted_UnaryLike_.func_name = u'UnaryLike'
    var.put(u'UnaryLike', PyJsHoisted_UnaryLike_)
    @Js
    def PyJsHoisted_NullableTypeAnnotation_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        return var.get(u't').callprop(u'isArrayTypeAnnotation', var.get(u'parent'))
    PyJsHoisted_NullableTypeAnnotation_.func_name = u'NullableTypeAnnotation'
    var.put(u'NullableTypeAnnotation', PyJsHoisted_NullableTypeAnnotation_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'AwaitExpression', var.get(u'exports').put(u'FunctionTypeAnnotation', var.get(u'undefined')))
    var.get(u'exports').put(u'NullableTypeAnnotation', var.get(u'NullableTypeAnnotation'))
    var.get(u'exports').put(u'UpdateExpression', var.get(u'UpdateExpression'))
    var.get(u'exports').put(u'ObjectExpression', var.get(u'ObjectExpression'))
    var.get(u'exports').put(u'Binary', var.get(u'Binary'))
    var.get(u'exports').put(u'BinaryExpression', var.get(u'BinaryExpression'))
    var.get(u'exports').put(u'SequenceExpression', var.get(u'SequenceExpression'))
    var.get(u'exports').put(u'YieldExpression', var.get(u'YieldExpression'))
    var.get(u'exports').put(u'ClassExpression', var.get(u'ClassExpression'))
    var.get(u'exports').put(u'UnaryLike', var.get(u'UnaryLike'))
    var.get(u'exports').put(u'FunctionExpression', var.get(u'FunctionExpression'))
    var.get(u'exports').put(u'ArrowFunctionExpression', var.get(u'ArrowFunctionExpression'))
    var.get(u'exports').put(u'ConditionalExpression', var.get(u'ConditionalExpression'))
    var.get(u'exports').put(u'AssignmentExpression', var.get(u'AssignmentExpression'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    PyJs_Object_525_ = Js({u'||':Js(0.0),u'&&':Js(1.0),u'|':Js(2.0),u'^':Js(3.0),u'&':Js(4.0),u'==':Js(5.0),u'===':Js(5.0),u'!=':Js(5.0),u'!==':Js(5.0),u'<':Js(6.0),u'>':Js(6.0),u'<=':Js(6.0),u'>=':Js(6.0),u'in':Js(6.0),u'instanceof':Js(6.0),u'>>':Js(7.0),u'<<':Js(7.0),u'>>>':Js(7.0),u'+':Js(8.0),u'-':Js(8.0),u'*':Js(9.0),u'/':Js(9.0),u'%':Js(9.0),u'**':Js(10.0)})
    var.put(u'PRECEDENCE', PyJs_Object_525_)
    pass
    var.get(u'exports').put(u'FunctionTypeAnnotation', var.get(u'NullableTypeAnnotation'))
    pass
    pass
    pass
    pass
    pass
    pass
    var.get(u'exports').put(u'AwaitExpression', var.get(u'YieldExpression'))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_523_._set_name(u'anonymous')
PyJs_Object_544_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_545_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isHelper', u'exports', u'_babelTypes', u'_each', u'_interopRequireWildcard', u'_map', u'require', u'_isBoolean', u'module', u'_each2', u'_isBoolean2', u'isType', u'_interopRequireDefault', u'crawl', u'_map2', u't'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_547_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_547_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_isHelper_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u't').callprop(u'isMemberExpression', var.get(u'node')):
            return (var.get(u'isHelper')(var.get(u'node').get(u'object')) or var.get(u'isHelper')(var.get(u'node').get(u'property')))
        else:
            if var.get(u't').callprop(u'isIdentifier', var.get(u'node')):
                return (PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'require')) or PyJsStrictEq(var.get(u'node').get(u'name').get(u'0'),Js(u'_')))
            else:
                if var.get(u't').callprop(u'isCallExpression', var.get(u'node')):
                    return var.get(u'isHelper')(var.get(u'node').get(u'callee'))
                else:
                    if (var.get(u't').callprop(u'isBinary', var.get(u'node')) or var.get(u't').callprop(u'isAssignmentExpression', var.get(u'node'))):
                        return ((var.get(u't').callprop(u'isIdentifier', var.get(u'node').get(u'left')) and var.get(u'isHelper')(var.get(u'node').get(u'left'))) or var.get(u'isHelper')(var.get(u'node').get(u'right')))
                    else:
                        return Js(False)
    PyJsHoisted_isHelper_.func_name = u'isHelper'
    var.put(u'isHelper', PyJsHoisted_isHelper_)
    @Js
    def PyJsHoisted_crawl_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'state'])
        PyJs_Object_548_ = Js({})
        var.put(u'state', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else PyJs_Object_548_))
        if var.get(u't').callprop(u'isMemberExpression', var.get(u'node')):
            var.get(u'crawl')(var.get(u'node').get(u'object'), var.get(u'state'))
            if var.get(u'node').get(u'computed'):
                var.get(u'crawl')(var.get(u'node').get(u'property'), var.get(u'state'))
        else:
            if (var.get(u't').callprop(u'isBinary', var.get(u'node')) or var.get(u't').callprop(u'isAssignmentExpression', var.get(u'node'))):
                var.get(u'crawl')(var.get(u'node').get(u'left'), var.get(u'state'))
                var.get(u'crawl')(var.get(u'node').get(u'right'), var.get(u'state'))
            else:
                if var.get(u't').callprop(u'isCallExpression', var.get(u'node')):
                    var.get(u'state').put(u'hasCall', var.get(u'true'))
                    var.get(u'crawl')(var.get(u'node').get(u'callee'), var.get(u'state'))
                else:
                    if var.get(u't').callprop(u'isFunction', var.get(u'node')):
                        var.get(u'state').put(u'hasFunction', var.get(u'true'))
                    else:
                        if var.get(u't').callprop(u'isIdentifier', var.get(u'node')):
                            var.get(u'state').put(u'hasHelper', (var.get(u'state').get(u'hasHelper') or var.get(u'isHelper')(var.get(u'node').get(u'callee'))))
        return var.get(u'state')
    PyJsHoisted_crawl_.func_name = u'crawl'
    var.put(u'crawl', PyJsHoisted_crawl_)
    @Js
    def PyJsHoisted_isType_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        return ((((var.get(u't').callprop(u'isLiteral', var.get(u'node')) or var.get(u't').callprop(u'isObjectExpression', var.get(u'node'))) or var.get(u't').callprop(u'isArrayExpression', var.get(u'node'))) or var.get(u't').callprop(u'isIdentifier', var.get(u'node'))) or var.get(u't').callprop(u'isMemberExpression', var.get(u'node')))
    PyJsHoisted_isType_.func_name = u'isType'
    var.put(u'isType', PyJsHoisted_isType_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_546_ = Js({})
            var.put(u'newObj', PyJs_Object_546_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.put(u'_isBoolean', var.get(u'require')(Js(u'lodash/isBoolean')))
    var.put(u'_isBoolean2', var.get(u'_interopRequireDefault')(var.get(u'_isBoolean')))
    var.put(u'_each', var.get(u'require')(Js(u'lodash/each')))
    var.put(u'_each2', var.get(u'_interopRequireDefault')(var.get(u'_each')))
    var.put(u'_map', var.get(u'require')(Js(u'lodash/map')))
    var.put(u'_map2', var.get(u'_interopRequireDefault')(var.get(u'_map')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    pass
    @Js
    def PyJs_AssignmentExpression_550_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'AssignmentExpression':PyJs_AssignmentExpression_550_}, var)
        var.registers([u'node', u'state'])
        var.put(u'state', var.get(u'crawl')(var.get(u'node').get(u'right')))
        if ((var.get(u'state').get(u'hasCall') and var.get(u'state').get(u'hasHelper')) or var.get(u'state').get(u'hasFunction')):
            PyJs_Object_551_ = Js({u'before':var.get(u'state').get(u'hasFunction'),u'after':var.get(u'true')})
            return PyJs_Object_551_
    PyJs_AssignmentExpression_550_._set_name(u'AssignmentExpression')
    @Js
    def PyJs_SwitchCase_552_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'SwitchCase':PyJs_SwitchCase_552_, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        PyJs_Object_553_ = Js({u'before':(var.get(u'node').get(u'consequent').get(u'length') or PyJsStrictEq(var.get(u'parent').get(u'cases').get(u'0'),var.get(u'node')))})
        return PyJs_Object_553_
    PyJs_SwitchCase_552_._set_name(u'SwitchCase')
    @Js
    def PyJs_LogicalExpression_554_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'LogicalExpression':PyJs_LogicalExpression_554_}, var)
        var.registers([u'node'])
        if (var.get(u't').callprop(u'isFunction', var.get(u'node').get(u'left')) or var.get(u't').callprop(u'isFunction', var.get(u'node').get(u'right'))):
            PyJs_Object_555_ = Js({u'after':var.get(u'true')})
            return PyJs_Object_555_
    PyJs_LogicalExpression_554_._set_name(u'LogicalExpression')
    @Js
    def PyJs_Literal_556_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'Literal':PyJs_Literal_556_, u'arguments':arguments}, var)
        var.registers([u'node'])
        if PyJsStrictEq(var.get(u'node').get(u'value'),Js(u'use strict')):
            PyJs_Object_557_ = Js({u'after':var.get(u'true')})
            return PyJs_Object_557_
    PyJs_Literal_556_._set_name(u'Literal')
    @Js
    def PyJs_CallExpression_558_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'CallExpression':PyJs_CallExpression_558_}, var)
        var.registers([u'node'])
        if (var.get(u't').callprop(u'isFunction', var.get(u'node').get(u'callee')) or var.get(u'isHelper')(var.get(u'node'))):
            PyJs_Object_559_ = Js({u'before':var.get(u'true'),u'after':var.get(u'true')})
            return PyJs_Object_559_
    PyJs_CallExpression_558_._set_name(u'CallExpression')
    @Js
    def PyJs_VariableDeclaration_560_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'VariableDeclaration':PyJs_VariableDeclaration_560_}, var)
        var.registers([u'i', u'node', u'state', u'declar', u'enabled'])
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'node').get(u'declarations').get(u'length')):
            try:
                var.put(u'declar', var.get(u'node').get(u'declarations').get(var.get(u'i')))
                var.put(u'enabled', (var.get(u'isHelper')(var.get(u'declar').get(u'id')) and var.get(u'isType')(var.get(u'declar').get(u'init')).neg()))
                if var.get(u'enabled').neg():
                    var.put(u'state', var.get(u'crawl')(var.get(u'declar').get(u'init')))
                    var.put(u'enabled', ((var.get(u'isHelper')(var.get(u'declar').get(u'init')) and var.get(u'state').get(u'hasCall')) or var.get(u'state').get(u'hasFunction')))
                if var.get(u'enabled'):
                    PyJs_Object_561_ = Js({u'before':var.get(u'true'),u'after':var.get(u'true')})
                    return PyJs_Object_561_
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
    PyJs_VariableDeclaration_560_._set_name(u'VariableDeclaration')
    @Js
    def PyJs_IfStatement_562_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'IfStatement':PyJs_IfStatement_562_}, var)
        var.registers([u'node'])
        if var.get(u't').callprop(u'isBlockStatement', var.get(u'node').get(u'consequent')):
            PyJs_Object_563_ = Js({u'before':var.get(u'true'),u'after':var.get(u'true')})
            return PyJs_Object_563_
    PyJs_IfStatement_562_._set_name(u'IfStatement')
    PyJs_Object_549_ = Js({u'AssignmentExpression':PyJs_AssignmentExpression_550_,u'SwitchCase':PyJs_SwitchCase_552_,u'LogicalExpression':PyJs_LogicalExpression_554_,u'Literal':PyJs_Literal_556_,u'CallExpression':PyJs_CallExpression_558_,u'VariableDeclaration':PyJs_VariableDeclaration_560_,u'IfStatement':PyJs_IfStatement_562_})
    var.get(u'exports').put(u'nodes', PyJs_Object_549_)
    @Js
    def PyJs_anonymous_564_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        if PyJsStrictEq(var.get(u'parent').get(u'properties').get(u'0'),var.get(u'node')):
            PyJs_Object_565_ = Js({u'before':var.get(u'true')})
            return PyJs_Object_565_
    PyJs_anonymous_564_._set_name(u'anonymous')
    var.get(u'exports').get(u'nodes').put(u'ObjectProperty', var.get(u'exports').get(u'nodes').put(u'ObjectTypeProperty', var.get(u'exports').get(u'nodes').put(u'ObjectMethod', var.get(u'exports').get(u'nodes').put(u'SpreadProperty', PyJs_anonymous_564_))))
    @Js
    def PyJs_VariableDeclaration_567_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'VariableDeclaration':PyJs_VariableDeclaration_567_}, var)
        var.registers([u'node'])
        return PyJsComma(Js(0.0),var.get(u'_map2').get(u'default'))(var.get(u'node').get(u'declarations'), Js(u'init'))
    PyJs_VariableDeclaration_567_._set_name(u'VariableDeclaration')
    @Js
    def PyJs_ArrayExpression_568_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'ArrayExpression':PyJs_ArrayExpression_568_}, var)
        var.registers([u'node'])
        return var.get(u'node').get(u'elements')
    PyJs_ArrayExpression_568_._set_name(u'ArrayExpression')
    @Js
    def PyJs_ObjectExpression_569_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'ObjectExpression':PyJs_ObjectExpression_569_, u'arguments':arguments}, var)
        var.registers([u'node'])
        return var.get(u'node').get(u'properties')
    PyJs_ObjectExpression_569_._set_name(u'ObjectExpression')
    PyJs_Object_566_ = Js({u'VariableDeclaration':PyJs_VariableDeclaration_567_,u'ArrayExpression':PyJs_ArrayExpression_568_,u'ObjectExpression':PyJs_ObjectExpression_569_})
    var.get(u'exports').put(u'list', PyJs_Object_566_)
    PyJs_Object_570_ = Js({u'Function':var.get(u'true'),u'Class':var.get(u'true'),u'Loop':var.get(u'true'),u'LabeledStatement':var.get(u'true'),u'SwitchStatement':var.get(u'true'),u'TryStatement':var.get(u'true')})
    @Js
    def PyJs_anonymous_571_(amounts, type, this, arguments, var=var):
        var = Scope({u'amounts':amounts, u'this':this, u'type':type, u'arguments':arguments}, var)
        var.registers([u'amounts', u'type'])
        if PyJsComma(Js(0.0),var.get(u'_isBoolean2').get(u'default'))(var.get(u'amounts')):
            PyJs_Object_572_ = Js({u'after':var.get(u'amounts'),u'before':var.get(u'amounts')})
            var.put(u'amounts', PyJs_Object_572_)
        @Js
        def PyJs_anonymous_573_(type, this, arguments, var=var):
            var = Scope({u'this':this, u'type':type, u'arguments':arguments}, var)
            var.registers([u'type'])
            @Js
            def PyJs_anonymous_574_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return var.get(u'amounts')
            PyJs_anonymous_574_._set_name(u'anonymous')
            var.get(u'exports').get(u'nodes').put(var.get(u'type'), PyJs_anonymous_574_)
        PyJs_anonymous_573_._set_name(u'anonymous')
        PyJsComma(Js(0.0),var.get(u'_each2').get(u'default'))(Js([var.get(u'type')]).callprop(u'concat', (var.get(u't').get(u'FLIPPED_ALIAS_KEYS').get(var.get(u'type')) or Js([]))), PyJs_anonymous_573_)
    PyJs_anonymous_571_._set_name(u'anonymous')
    PyJsComma(Js(0.0),var.get(u'_each2').get(u'default'))(PyJs_Object_570_, PyJs_anonymous_571_)
PyJs_anonymous_545_._set_name(u'anonymous')
PyJs_Object_575_ = Js({u'babel-types':Js(258.0),u'lodash/each':Js(443.0),u'lodash/isBoolean':Js(461.0),u'lodash/map':Js(476.0)})
@Js
def PyJs_anonymous_576_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_findLast', u'exports', u'module', u'_find', u'_isInteger2', u'_interopRequireDefault', u'_buffer2', u'_getIterator2', u'_getIterator3', u'Printer', u'_arr', u'_buffer', u'_i2', u'_node', u'_weakSet', u'SCIENTIFIC_NOTATION', u'_classCallCheck3', u'_classCallCheck2', u'_findLast2', u'_babelTypes', u'_stringify2', u'_isInteger', u'_interopRequireWildcard', u'_assign', u'_weakSet2', u'_whitespace2', u'_repeat2', u'_assign2', u'commaSeparator', u'generator', u'require', u'n', u'_repeat', u'_whitespace', u'_stringify', u't', u'_find2', u'NON_DECIMAL_LITERAL', u'ZERO_DECIMAL_INTEGER'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_578_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_578_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_commaSeparator_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'token', Js(u','))
        var.get(u"this").callprop(u'space')
    PyJsHoisted_commaSeparator_.func_name = u'commaSeparator'
    var.put(u'commaSeparator', PyJsHoisted_commaSeparator_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_577_ = Js({})
            var.put(u'newObj', PyJs_Object_577_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_assign', var.get(u'require')(Js(u'babel-runtime/core-js/object/assign')))
    var.put(u'_assign2', var.get(u'_interopRequireDefault')(var.get(u'_assign')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_stringify', var.get(u'require')(Js(u'babel-runtime/core-js/json/stringify')))
    var.put(u'_stringify2', var.get(u'_interopRequireDefault')(var.get(u'_stringify')))
    var.put(u'_weakSet', var.get(u'require')(Js(u'babel-runtime/core-js/weak-set')))
    var.put(u'_weakSet2', var.get(u'_interopRequireDefault')(var.get(u'_weakSet')))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_find', var.get(u'require')(Js(u'lodash/find')))
    var.put(u'_find2', var.get(u'_interopRequireDefault')(var.get(u'_find')))
    var.put(u'_findLast', var.get(u'require')(Js(u'lodash/findLast')))
    var.put(u'_findLast2', var.get(u'_interopRequireDefault')(var.get(u'_findLast')))
    var.put(u'_isInteger', var.get(u'require')(Js(u'lodash/isInteger')))
    var.put(u'_isInteger2', var.get(u'_interopRequireDefault')(var.get(u'_isInteger')))
    var.put(u'_repeat', var.get(u'require')(Js(u'lodash/repeat')))
    var.put(u'_repeat2', var.get(u'_interopRequireDefault')(var.get(u'_repeat')))
    var.put(u'_buffer', var.get(u'require')(Js(u'./buffer')))
    var.put(u'_buffer2', var.get(u'_interopRequireDefault')(var.get(u'_buffer')))
    var.put(u'_node', var.get(u'require')(Js(u'./node')))
    var.put(u'n', var.get(u'_interopRequireWildcard')(var.get(u'_node')))
    var.put(u'_whitespace', var.get(u'require')(Js(u'./whitespace')))
    var.put(u'_whitespace2', var.get(u'_interopRequireDefault')(var.get(u'_whitespace')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.put(u'SCIENTIFIC_NOTATION', JsRegExp(u'/e/i'))
    var.put(u'ZERO_DECIMAL_INTEGER', JsRegExp(u'/\\.0+$/'))
    var.put(u'NON_DECIMAL_LITERAL', JsRegExp(u'/^0[box]/'))
    @Js
    def PyJs_anonymous_579_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'Printer'])
        @Js
        def PyJsHoisted_Printer_(format, map, tokens, this, arguments, var=var):
            var = Scope({u'tokens':tokens, u'map':map, u'this':this, u'arguments':arguments, u'format':format}, var)
            var.registers([u'tokens', u'map', u'format'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Printer'))
            var.get(u"this").put(u'inForStatementInitCounter', Js(0.0))
            var.get(u"this").put(u'_printStack', Js([]))
            var.get(u"this").put(u'_indent', Js(0.0))
            var.get(u"this").put(u'_insideAux', Js(False))
            PyJs_Object_580_ = Js({})
            var.get(u"this").put(u'_printedCommentStarts', PyJs_Object_580_)
            var.get(u"this").put(u'_parenPushNewlineState', var.get(u"null"))
            var.get(u"this").put(u'_printAuxAfterOnNextUserNode', Js(False))
            var.get(u"this").put(u'_printedComments', var.get(u'_weakSet2').get(u'default').create())
            var.get(u"this").put(u'_endsWithInteger', Js(False))
            var.get(u"this").put(u'_endsWithWord', Js(False))
            PyJs_Object_581_ = Js({})
            var.get(u"this").put(u'format', (var.get(u'format') or PyJs_Object_581_))
            var.get(u"this").put(u'_buf', var.get(u'_buffer2').get(u'default').create(var.get(u'map')))
            var.get(u"this").put(u'_whitespace', (var.get(u'_whitespace2').get(u'default').create(var.get(u'tokens')) if (var.get(u'tokens').get(u'length')>Js(0.0)) else var.get(u"null")))
        PyJsHoisted_Printer_.func_name = u'Printer'
        var.put(u'Printer', PyJsHoisted_Printer_)
        pass
        @Js
        def PyJs_generate_582_(ast, this, arguments, var=var):
            var = Scope({u'this':this, u'generate':PyJs_generate_582_, u'arguments':arguments, u'ast':ast}, var)
            var.registers([u'ast'])
            var.get(u"this").callprop(u'print', var.get(u'ast'))
            var.get(u"this").callprop(u'_maybeAddAuxComment')
            return var.get(u"this").get(u'_buf').callprop(u'get')
        PyJs_generate_582_._set_name(u'generate')
        var.get(u'Printer').get(u'prototype').put(u'generate', PyJs_generate_582_)
        @Js
        def PyJs_indent_583_(this, arguments, var=var):
            var = Scope({u'this':this, u'indent':PyJs_indent_583_, u'arguments':arguments}, var)
            var.registers([])
            if (var.get(u"this").get(u'format').get(u'compact') or var.get(u"this").get(u'format').get(u'concise')):
                return var.get('undefined')
            (var.get(u"this").put(u'_indent',Js(var.get(u"this").get(u'_indent').to_number())+Js(1))-Js(1))
        PyJs_indent_583_._set_name(u'indent')
        var.get(u'Printer').get(u'prototype').put(u'indent', PyJs_indent_583_)
        @Js
        def PyJs_dedent_584_(this, arguments, var=var):
            var = Scope({u'this':this, u'dedent':PyJs_dedent_584_, u'arguments':arguments}, var)
            var.registers([])
            if (var.get(u"this").get(u'format').get(u'compact') or var.get(u"this").get(u'format').get(u'concise')):
                return var.get('undefined')
            (var.get(u"this").put(u'_indent',Js(var.get(u"this").get(u'_indent').to_number())-Js(1))+Js(1))
        PyJs_dedent_584_._set_name(u'dedent')
        var.get(u'Printer').get(u'prototype').put(u'dedent', PyJs_dedent_584_)
        @Js
        def PyJs_semicolon_585_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'semicolon':PyJs_semicolon_585_}, var)
            var.registers([u'force'])
            var.put(u'force', (var.get(u'arguments').get(u'0') if ((var.get(u'arguments').get(u'length')>Js(0.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'0'),var.get(u'undefined'))) else Js(False)))
            var.get(u"this").callprop(u'_maybeAddAuxComment')
            var.get(u"this").callprop(u'_append', Js(u';'), var.get(u'force').neg())
        PyJs_semicolon_585_._set_name(u'semicolon')
        var.get(u'Printer').get(u'prototype').put(u'semicolon', PyJs_semicolon_585_)
        @Js
        def PyJs_rightBrace_586_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'rightBrace':PyJs_rightBrace_586_}, var)
            var.registers([])
            if var.get(u"this").get(u'format').get(u'minified'):
                var.get(u"this").get(u'_buf').callprop(u'removeLastSemicolon')
            var.get(u"this").callprop(u'token', Js(u'}'))
        PyJs_rightBrace_586_._set_name(u'rightBrace')
        var.get(u'Printer').get(u'prototype').put(u'rightBrace', PyJs_rightBrace_586_)
        @Js
        def PyJs_space_587_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'space':PyJs_space_587_}, var)
            var.registers([u'force'])
            var.put(u'force', (var.get(u'arguments').get(u'0') if ((var.get(u'arguments').get(u'length')>Js(0.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'0'),var.get(u'undefined'))) else Js(False)))
            if var.get(u"this").get(u'format').get(u'compact'):
                return var.get('undefined')
            if (((var.get(u"this").get(u'_buf').callprop(u'hasContent') and var.get(u"this").callprop(u'endsWith', Js(u' ')).neg()) and var.get(u"this").callprop(u'endsWith', Js(u'\n')).neg()) or var.get(u'force')):
                var.get(u"this").callprop(u'_space')
        PyJs_space_587_._set_name(u'space')
        var.get(u'Printer').get(u'prototype').put(u'space', PyJs_space_587_)
        @Js
        def PyJs_word_588_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'word':PyJs_word_588_, u'arguments':arguments, u'str':str}, var)
            var.registers([u'str'])
            if var.get(u"this").get(u'_endsWithWord'):
                var.get(u"this").callprop(u'_space')
            var.get(u"this").callprop(u'_maybeAddAuxComment')
            var.get(u"this").callprop(u'_append', var.get(u'str'))
            var.get(u"this").put(u'_endsWithWord', var.get(u'true'))
        PyJs_word_588_._set_name(u'word')
        var.get(u'Printer').get(u'prototype').put(u'word', PyJs_word_588_)
        @Js
        def PyJs_number_589_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'str':str, u'number':PyJs_number_589_}, var)
            var.registers([u'str'])
            var.get(u"this").callprop(u'word', var.get(u'str'))
            def PyJs_LONG_590_(var=var):
                return ((((PyJsComma(Js(0.0),var.get(u'_isInteger2').get(u'default'))((+var.get(u'str'))) and var.get(u'NON_DECIMAL_LITERAL').callprop(u'test', var.get(u'str')).neg()) and var.get(u'SCIENTIFIC_NOTATION').callprop(u'test', var.get(u'str')).neg()) and var.get(u'ZERO_DECIMAL_INTEGER').callprop(u'test', var.get(u'str')).neg()) and PyJsStrictNeq(var.get(u'str').get((var.get(u'str').get(u'length')-Js(1.0))),Js(u'.')))
            var.get(u"this").put(u'_endsWithInteger', PyJs_LONG_590_())
        PyJs_number_589_._set_name(u'number')
        var.get(u'Printer').get(u'prototype').put(u'number', PyJs_number_589_)
        @Js
        def PyJs_token_591_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'token':PyJs_token_591_, u'arguments':arguments, u'str':str}, var)
            var.registers([u'str'])
            def PyJs_LONG_592_(var=var):
                return ((((PyJsStrictEq(var.get(u'str'),Js(u'--')) and var.get(u"this").callprop(u'endsWith', Js(u'!'))) or (PyJsStrictEq(var.get(u'str').get(u'0'),Js(u'+')) and var.get(u"this").callprop(u'endsWith', Js(u'+')))) or (PyJsStrictEq(var.get(u'str').get(u'0'),Js(u'-')) and var.get(u"this").callprop(u'endsWith', Js(u'-')))) or (PyJsStrictEq(var.get(u'str').get(u'0'),Js(u'.')) and var.get(u"this").get(u'_endsWithInteger')))
            if PyJs_LONG_592_():
                var.get(u"this").callprop(u'_space')
            var.get(u"this").callprop(u'_maybeAddAuxComment')
            var.get(u"this").callprop(u'_append', var.get(u'str'))
        PyJs_token_591_._set_name(u'token')
        var.get(u'Printer').get(u'prototype').put(u'token', PyJs_token_591_)
        @Js
        def PyJs_newline_593_(i, this, arguments, var=var):
            var = Scope({u'i':i, u'this':this, u'newline':PyJs_newline_593_, u'arguments':arguments}, var)
            var.registers([u'i', u'j'])
            if (var.get(u"this").get(u'format').get(u'retainLines') or var.get(u"this").get(u'format').get(u'compact')):
                return var.get('undefined')
            if var.get(u"this").get(u'format').get(u'concise'):
                var.get(u"this").callprop(u'space')
                return var.get('undefined')
            if var.get(u"this").callprop(u'endsWith', Js(u'\n\n')):
                return var.get('undefined')
            if PyJsStrictNeq(var.get(u'i',throw=False).typeof(),Js(u'number')):
                var.put(u'i', Js(1.0))
            var.put(u'i', var.get(u'Math').callprop(u'min', Js(2.0), var.get(u'i')))
            if (var.get(u"this").callprop(u'endsWith', Js(u'{\n')) or var.get(u"this").callprop(u'endsWith', Js(u':\n'))):
                (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
            if (var.get(u'i')<=Js(0.0)):
                return var.get('undefined')
            #for JS loop
            var.put(u'j', Js(0.0))
            while (var.get(u'j')<var.get(u'i')):
                try:
                    var.get(u"this").callprop(u'_newline')
                finally:
                        (var.put(u'j',Js(var.get(u'j').to_number())+Js(1))-Js(1))
        PyJs_newline_593_._set_name(u'newline')
        var.get(u'Printer').get(u'prototype').put(u'newline', PyJs_newline_593_)
        @Js
        def PyJs_endsWith_594_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'endsWith':PyJs_endsWith_594_, u'arguments':arguments, u'str':str}, var)
            var.registers([u'str'])
            return var.get(u"this").get(u'_buf').callprop(u'endsWith', var.get(u'str'))
        PyJs_endsWith_594_._set_name(u'endsWith')
        var.get(u'Printer').get(u'prototype').put(u'endsWith', PyJs_endsWith_594_)
        @Js
        def PyJs_removeTrailingNewline_595_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'removeTrailingNewline':PyJs_removeTrailingNewline_595_}, var)
            var.registers([])
            var.get(u"this").get(u'_buf').callprop(u'removeTrailingNewline')
        PyJs_removeTrailingNewline_595_._set_name(u'removeTrailingNewline')
        var.get(u'Printer').get(u'prototype').put(u'removeTrailingNewline', PyJs_removeTrailingNewline_595_)
        @Js
        def PyJs_source_596_(prop, loc, this, arguments, var=var):
            var = Scope({u'this':this, u'loc':loc, u'source':PyJs_source_596_, u'arguments':arguments, u'prop':prop}, var)
            var.registers([u'loc', u'prop'])
            var.get(u"this").callprop(u'_catchUp', var.get(u'prop'), var.get(u'loc'))
            var.get(u"this").get(u'_buf').callprop(u'source', var.get(u'prop'), var.get(u'loc'))
        PyJs_source_596_._set_name(u'source')
        var.get(u'Printer').get(u'prototype').put(u'source', PyJs_source_596_)
        @Js
        def PyJs_withSource_597_(prop, loc, cb, this, arguments, var=var):
            var = Scope({u'loc':loc, u'this':this, u'cb':cb, u'prop':prop, u'withSource':PyJs_withSource_597_, u'arguments':arguments}, var)
            var.registers([u'loc', u'cb', u'prop'])
            var.get(u"this").callprop(u'_catchUp', var.get(u'prop'), var.get(u'loc'))
            var.get(u"this").get(u'_buf').callprop(u'withSource', var.get(u'prop'), var.get(u'loc'), var.get(u'cb'))
        PyJs_withSource_597_._set_name(u'withSource')
        var.get(u'Printer').get(u'prototype').put(u'withSource', PyJs_withSource_597_)
        @Js
        def PyJs__space_598_(this, arguments, var=var):
            var = Scope({u'this':this, u'_space':PyJs__space_598_, u'arguments':arguments}, var)
            var.registers([])
            var.get(u"this").callprop(u'_append', Js(u' '), var.get(u'true'))
        PyJs__space_598_._set_name(u'_space')
        var.get(u'Printer').get(u'prototype').put(u'_space', PyJs__space_598_)
        @Js
        def PyJs__newline_599_(this, arguments, var=var):
            var = Scope({u'this':this, u'_newline':PyJs__newline_599_, u'arguments':arguments}, var)
            var.registers([])
            var.get(u"this").callprop(u'_append', Js(u'\n'), var.get(u'true'))
        PyJs__newline_599_._set_name(u'_newline')
        var.get(u'Printer').get(u'prototype').put(u'_newline', PyJs__newline_599_)
        @Js
        def PyJs__append_600_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'_append':PyJs__append_600_, u'arguments':arguments, u'str':str}, var)
            var.registers([u'queue', u'str'])
            var.put(u'queue', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else Js(False)))
            var.get(u"this").callprop(u'_maybeAddParen', var.get(u'str'))
            var.get(u"this").callprop(u'_maybeIndent', var.get(u'str'))
            if var.get(u'queue'):
                var.get(u"this").get(u'_buf').callprop(u'queue', var.get(u'str'))
            else:
                var.get(u"this").get(u'_buf').callprop(u'append', var.get(u'str'))
            var.get(u"this").put(u'_endsWithWord', Js(False))
            var.get(u"this").put(u'_endsWithInteger', Js(False))
        PyJs__append_600_._set_name(u'_append')
        var.get(u'Printer').get(u'prototype').put(u'_append', PyJs__append_600_)
        @Js
        def PyJs__maybeIndent_601_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'str':str, u'_maybeIndent':PyJs__maybeIndent_601_}, var)
            var.registers([u'str'])
            if ((var.get(u"this").get(u'_indent') and var.get(u"this").callprop(u'endsWith', Js(u'\n'))) and PyJsStrictNeq(var.get(u'str').get(u'0'),Js(u'\n'))):
                var.get(u"this").get(u'_buf').callprop(u'queue', var.get(u"this").callprop(u'_getIndent'))
        PyJs__maybeIndent_601_._set_name(u'_maybeIndent')
        var.get(u'Printer').get(u'prototype').put(u'_maybeIndent', PyJs__maybeIndent_601_)
        @Js
        def PyJs__maybeAddParen_602_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'_maybeAddParen':PyJs__maybeAddParen_602_, u'arguments':arguments, u'str':str}, var)
            var.registers([u'i', u'cha', u'str', u'parenPushNewlineState'])
            var.put(u'parenPushNewlineState', var.get(u"this").get(u'_parenPushNewlineState'))
            if var.get(u'parenPushNewlineState').neg():
                return var.get('undefined')
            var.get(u"this").put(u'_parenPushNewlineState', var.get(u"null"))
            var.put(u'i', PyJsComma(Js(0.0), Js(None)))
            #for JS loop
            var.put(u'i', Js(0.0))
            while ((var.get(u'i')<var.get(u'str').get(u'length')) and PyJsStrictEq(var.get(u'str').get(var.get(u'i')),Js(u' '))):
                try:
                    continue
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            if PyJsStrictEq(var.get(u'i'),var.get(u'str').get(u'length')):
                return var.get('undefined')
            var.put(u'cha', var.get(u'str').get(var.get(u'i')))
            if (PyJsStrictEq(var.get(u'cha'),Js(u'\n')) or PyJsStrictEq(var.get(u'cha'),Js(u'/'))):
                var.get(u"this").callprop(u'token', Js(u'('))
                var.get(u"this").callprop(u'indent')
                var.get(u'parenPushNewlineState').put(u'printed', var.get(u'true'))
        PyJs__maybeAddParen_602_._set_name(u'_maybeAddParen')
        var.get(u'Printer').get(u'prototype').put(u'_maybeAddParen', PyJs__maybeAddParen_602_)
        @Js
        def PyJs__catchUp_603_(prop, loc, this, arguments, var=var):
            var = Scope({u'this':this, u'loc':loc, u'_catchUp':PyJs__catchUp_603_, u'arguments':arguments, u'prop':prop}, var)
            var.registers([u'count', u'i', u'loc', u'pos', u'prop'])
            if var.get(u"this").get(u'format').get(u'retainLines').neg():
                return var.get('undefined')
            var.put(u'pos', (var.get(u'loc').get(var.get(u'prop')) if var.get(u'loc') else var.get(u"null")))
            if (var.get(u'pos') and PyJsStrictNeq(var.get(u'pos').get(u'line'),var.get(u"null"))):
                var.put(u'count', (var.get(u'pos').get(u'line')-var.get(u"this").get(u'_buf').callprop(u'getCurrentLine')))
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'count')):
                    try:
                        var.get(u"this").callprop(u'_newline')
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        PyJs__catchUp_603_._set_name(u'_catchUp')
        var.get(u'Printer').get(u'prototype').put(u'_catchUp', PyJs__catchUp_603_)
        @Js
        def PyJs__getIndent_604_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'_getIndent':PyJs__getIndent_604_}, var)
            var.registers([])
            return PyJsComma(Js(0.0),var.get(u'_repeat2').get(u'default'))(var.get(u"this").get(u'format').get(u'indent').get(u'style'), var.get(u"this").get(u'_indent'))
        PyJs__getIndent_604_._set_name(u'_getIndent')
        var.get(u'Printer').get(u'prototype').put(u'_getIndent', PyJs__getIndent_604_)
        @Js
        def PyJs_startTerminatorless_605_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'startTerminatorless':PyJs_startTerminatorless_605_}, var)
            var.registers([])
            PyJs_Object_606_ = Js({u'printed':Js(False)})
            return var.get(u"this").put(u'_parenPushNewlineState', PyJs_Object_606_)
        PyJs_startTerminatorless_605_._set_name(u'startTerminatorless')
        var.get(u'Printer').get(u'prototype').put(u'startTerminatorless', PyJs_startTerminatorless_605_)
        @Js
        def PyJs_endTerminatorless_607_(state, this, arguments, var=var):
            var = Scope({u'this':this, u'state':state, u'endTerminatorless':PyJs_endTerminatorless_607_, u'arguments':arguments}, var)
            var.registers([u'state'])
            if var.get(u'state').get(u'printed'):
                var.get(u"this").callprop(u'dedent')
                var.get(u"this").callprop(u'newline')
                var.get(u"this").callprop(u'token', Js(u')'))
        PyJs_endTerminatorless_607_._set_name(u'endTerminatorless')
        var.get(u'Printer').get(u'prototype').put(u'endTerminatorless', PyJs_endTerminatorless_607_)
        @Js
        def PyJs_InlineNonPyName_608_(node, parent, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'print':PyJs_InlineNonPyName_608_, u'arguments':arguments, u'parent':parent}, var)
            var.registers([u'node', u'loc', u'needsParens', u'parent', u'_this', u'printMethod', u'oldInAux', u'oldConcise'])
            var.put(u'_this', var.get(u"this"))
            if var.get(u'node').neg():
                return var.get('undefined')
            var.put(u'oldConcise', var.get(u"this").get(u'format').get(u'concise'))
            if var.get(u'node').get(u'_compact'):
                var.get(u"this").get(u'format').put(u'concise', var.get(u'true'))
            var.put(u'printMethod', var.get(u"this").get(var.get(u'node').get(u'type')))
            if var.get(u'printMethod').neg():
                PyJsTempException = JsToPyException(var.get(u'ReferenceError').create((((Js(u'unknown node of type ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'node').get(u'type')))+Js(u' with constructor '))+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))((var.get(u'node') and var.get(u'node').get(u'constructor').get(u'name'))))))
                raise PyJsTempException
            var.get(u"this").get(u'_printStack').callprop(u'push', var.get(u'node'))
            var.put(u'oldInAux', var.get(u"this").get(u'_insideAux'))
            var.get(u"this").put(u'_insideAux', var.get(u'node').get(u'loc').neg())
            var.get(u"this").callprop(u'_maybeAddAuxComment', (var.get(u"this").get(u'_insideAux') and var.get(u'oldInAux').neg()))
            var.put(u'needsParens', var.get(u'n').callprop(u'needsParens', var.get(u'node'), var.get(u'parent'), var.get(u"this").get(u'_printStack')))
            if (((var.get(u"this").get(u'format').get(u'retainFunctionParens') and PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'FunctionExpression'))) and var.get(u'node').get(u'extra')) and var.get(u'node').get(u'extra').get(u'parenthesized')):
                var.put(u'needsParens', var.get(u'true'))
            if var.get(u'needsParens'):
                var.get(u"this").callprop(u'token', Js(u'('))
            var.get(u"this").callprop(u'_printLeadingComments', var.get(u'node'), var.get(u'parent'))
            var.put(u'loc', (var.get(u"null") if (var.get(u't').callprop(u'isProgram', var.get(u'node')) or var.get(u't').callprop(u'isFile', var.get(u'node'))) else var.get(u'node').get(u'loc')))
            @Js
            def PyJs_anonymous_609_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                var.get(u'_this').callprop(var.get(u'node').get(u'type'), var.get(u'node'), var.get(u'parent'))
            PyJs_anonymous_609_._set_name(u'anonymous')
            var.get(u"this").callprop(u'withSource', Js(u'start'), var.get(u'loc'), PyJs_anonymous_609_)
            var.get(u"this").callprop(u'_printTrailingComments', var.get(u'node'), var.get(u'parent'))
            if var.get(u'needsParens'):
                var.get(u"this").callprop(u'token', Js(u')'))
            var.get(u"this").get(u'_printStack').callprop(u'pop')
            var.get(u"this").get(u'format').put(u'concise', var.get(u'oldConcise'))
            var.get(u"this").put(u'_insideAux', var.get(u'oldInAux'))
        PyJs_InlineNonPyName_608_._set_name(u'print')
        var.get(u'Printer').get(u'prototype').put(u'print', PyJs_InlineNonPyName_608_)
        @Js
        def PyJs__maybeAddAuxComment_610_(enteredPositionlessNode, this, arguments, var=var):
            var = Scope({u'enteredPositionlessNode':enteredPositionlessNode, u'this':this, u'_maybeAddAuxComment':PyJs__maybeAddAuxComment_610_, u'arguments':arguments}, var)
            var.registers([u'enteredPositionlessNode'])
            if var.get(u'enteredPositionlessNode'):
                var.get(u"this").callprop(u'_printAuxBeforeComment')
            if var.get(u"this").get(u'_insideAux').neg():
                var.get(u"this").callprop(u'_printAuxAfterComment')
        PyJs__maybeAddAuxComment_610_._set_name(u'_maybeAddAuxComment')
        var.get(u'Printer').get(u'prototype').put(u'_maybeAddAuxComment', PyJs__maybeAddAuxComment_610_)
        @Js
        def PyJs__printAuxBeforeComment_611_(this, arguments, var=var):
            var = Scope({u'this':this, u'_printAuxBeforeComment':PyJs__printAuxBeforeComment_611_, u'arguments':arguments}, var)
            var.registers([u'comment'])
            if var.get(u"this").get(u'_printAuxAfterOnNextUserNode'):
                return var.get('undefined')
            var.get(u"this").put(u'_printAuxAfterOnNextUserNode', var.get(u'true'))
            var.put(u'comment', var.get(u"this").get(u'format').get(u'auxiliaryCommentBefore'))
            if var.get(u'comment'):
                PyJs_Object_612_ = Js({u'type':Js(u'CommentBlock'),u'value':var.get(u'comment')})
                var.get(u"this").callprop(u'_printComment', PyJs_Object_612_)
        PyJs__printAuxBeforeComment_611_._set_name(u'_printAuxBeforeComment')
        var.get(u'Printer').get(u'prototype').put(u'_printAuxBeforeComment', PyJs__printAuxBeforeComment_611_)
        @Js
        def PyJs__printAuxAfterComment_613_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'_printAuxAfterComment':PyJs__printAuxAfterComment_613_}, var)
            var.registers([u'comment'])
            if var.get(u"this").get(u'_printAuxAfterOnNextUserNode').neg():
                return var.get('undefined')
            var.get(u"this").put(u'_printAuxAfterOnNextUserNode', Js(False))
            var.put(u'comment', var.get(u"this").get(u'format').get(u'auxiliaryCommentAfter'))
            if var.get(u'comment'):
                PyJs_Object_614_ = Js({u'type':Js(u'CommentBlock'),u'value':var.get(u'comment')})
                var.get(u"this").callprop(u'_printComment', PyJs_Object_614_)
        PyJs__printAuxAfterComment_613_._set_name(u'_printAuxAfterComment')
        var.get(u'Printer').get(u'prototype').put(u'_printAuxAfterComment', PyJs__printAuxAfterComment_613_)
        @Js
        def PyJs_getPossibleRaw_615_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'getPossibleRaw':PyJs_getPossibleRaw_615_}, var)
            var.registers([u'node', u'extra'])
            if var.get(u"this").get(u'format').get(u'minified'):
                return var.get('undefined')
            var.put(u'extra', var.get(u'node').get(u'extra'))
            if (((var.get(u'extra') and (var.get(u'extra').get(u'raw')!=var.get(u"null"))) and (var.get(u'extra').get(u'rawValue')!=var.get(u"null"))) and PyJsStrictEq(var.get(u'node').get(u'value'),var.get(u'extra').get(u'rawValue'))):
                return var.get(u'extra').get(u'raw')
        PyJs_getPossibleRaw_615_._set_name(u'getPossibleRaw')
        var.get(u'Printer').get(u'prototype').put(u'getPossibleRaw', PyJs_getPossibleRaw_615_)
        @Js
        def PyJs_printJoin_616_(nodes, parent, this, arguments, var=var):
            var = Scope({u'this':this, u'nodes':nodes, u'printJoin':PyJs_printJoin_616_, u'arguments':arguments, u'parent':parent}, var)
            var.registers([u'node', u'parent', u'i', u'newlineOpts', u'nodes', u'opts'])
            PyJs_Object_617_ = Js({})
            var.put(u'opts', (var.get(u'arguments').get(u'2') if ((var.get(u'arguments').get(u'length')>Js(2.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'2'),var.get(u'undefined'))) else PyJs_Object_617_))
            if (var.get(u'nodes').neg() or var.get(u'nodes').get(u'length').neg()):
                return var.get('undefined')
            if var.get(u'opts').get(u'indent'):
                var.get(u"this").callprop(u'indent')
            PyJs_Object_618_ = Js({u'addNewlines':var.get(u'opts').get(u'addNewlines')})
            var.put(u'newlineOpts', PyJs_Object_618_)
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'nodes').get(u'length')):
                try:
                    var.put(u'node', var.get(u'nodes').get(var.get(u'i')))
                    if var.get(u'node').neg():
                        continue
                    if var.get(u'opts').get(u'statement'):
                        var.get(u"this").callprop(u'_printNewline', var.get(u'true'), var.get(u'node'), var.get(u'parent'), var.get(u'newlineOpts'))
                    var.get(u"this").callprop(u'print', var.get(u'node'), var.get(u'parent'))
                    if var.get(u'opts').get(u'iterator'):
                        var.get(u'opts').callprop(u'iterator', var.get(u'node'), var.get(u'i'))
                    if (var.get(u'opts').get(u'separator') and (var.get(u'i')<(var.get(u'nodes').get(u'length')-Js(1.0)))):
                        var.get(u'opts').get(u'separator').callprop(u'call', var.get(u"this"))
                    if var.get(u'opts').get(u'statement'):
                        var.get(u"this").callprop(u'_printNewline', Js(False), var.get(u'node'), var.get(u'parent'), var.get(u'newlineOpts'))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            if var.get(u'opts').get(u'indent'):
                var.get(u"this").callprop(u'dedent')
        PyJs_printJoin_616_._set_name(u'printJoin')
        var.get(u'Printer').get(u'prototype').put(u'printJoin', PyJs_printJoin_616_)
        @Js
        def PyJs_printAndIndentOnComments_619_(node, parent, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'printAndIndentOnComments':PyJs_printAndIndentOnComments_619_, u'arguments':arguments, u'parent':parent}, var)
            var.registers([u'node', u'indent', u'parent'])
            var.put(u'indent', var.get(u'node').get(u'leadingComments').neg().neg())
            if var.get(u'indent'):
                var.get(u"this").callprop(u'indent')
            var.get(u"this").callprop(u'print', var.get(u'node'), var.get(u'parent'))
            if var.get(u'indent'):
                var.get(u"this").callprop(u'dedent')
        PyJs_printAndIndentOnComments_619_._set_name(u'printAndIndentOnComments')
        var.get(u'Printer').get(u'prototype').put(u'printAndIndentOnComments', PyJs_printAndIndentOnComments_619_)
        @Js
        def PyJs_printBlock_620_(parent, this, arguments, var=var):
            var = Scope({u'this':this, u'printBlock':PyJs_printBlock_620_, u'arguments':arguments, u'parent':parent}, var)
            var.registers([u'node', u'parent'])
            var.put(u'node', var.get(u'parent').get(u'body'))
            if var.get(u't').callprop(u'isEmptyStatement', var.get(u'node')).neg():
                var.get(u"this").callprop(u'space')
            var.get(u"this").callprop(u'print', var.get(u'node'), var.get(u'parent'))
        PyJs_printBlock_620_._set_name(u'printBlock')
        var.get(u'Printer').get(u'prototype').put(u'printBlock', PyJs_printBlock_620_)
        @Js
        def PyJs__printTrailingComments_621_(node, parent, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'_printTrailingComments':PyJs__printTrailingComments_621_, u'arguments':arguments, u'parent':parent}, var)
            var.registers([u'node', u'parent'])
            var.get(u"this").callprop(u'_printComments', var.get(u"this").callprop(u'_getComments', Js(False), var.get(u'node'), var.get(u'parent')))
        PyJs__printTrailingComments_621_._set_name(u'_printTrailingComments')
        var.get(u'Printer').get(u'prototype').put(u'_printTrailingComments', PyJs__printTrailingComments_621_)
        @Js
        def PyJs__printLeadingComments_622_(node, parent, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent, u'_printLeadingComments':PyJs__printLeadingComments_622_}, var)
            var.registers([u'node', u'parent'])
            var.get(u"this").callprop(u'_printComments', var.get(u"this").callprop(u'_getComments', var.get(u'true'), var.get(u'node'), var.get(u'parent')))
        PyJs__printLeadingComments_622_._set_name(u'_printLeadingComments')
        var.get(u'Printer').get(u'prototype').put(u'_printLeadingComments', PyJs__printLeadingComments_622_)
        @Js
        def PyJs_printInnerComments_623_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'printInnerComments':PyJs_printInnerComments_623_, u'arguments':arguments}, var)
            var.registers([u'node', u'indent'])
            var.put(u'indent', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else var.get(u'true')))
            if var.get(u'node').get(u'innerComments').neg():
                return var.get('undefined')
            if var.get(u'indent'):
                var.get(u"this").callprop(u'indent')
            var.get(u"this").callprop(u'_printComments', var.get(u'node').get(u'innerComments'))
            if var.get(u'indent'):
                var.get(u"this").callprop(u'dedent')
        PyJs_printInnerComments_623_._set_name(u'printInnerComments')
        var.get(u'Printer').get(u'prototype').put(u'printInnerComments', PyJs_printInnerComments_623_)
        @Js
        def PyJs_printSequence_624_(nodes, parent, this, arguments, var=var):
            var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments, u'parent':parent, u'printSequence':PyJs_printSequence_624_}, var)
            var.registers([u'nodes', u'parent', u'opts'])
            PyJs_Object_625_ = Js({})
            var.put(u'opts', (var.get(u'arguments').get(u'2') if ((var.get(u'arguments').get(u'length')>Js(2.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'2'),var.get(u'undefined'))) else PyJs_Object_625_))
            var.get(u'opts').put(u'statement', var.get(u'true'))
            return var.get(u"this").callprop(u'printJoin', var.get(u'nodes'), var.get(u'parent'), var.get(u'opts'))
        PyJs_printSequence_624_._set_name(u'printSequence')
        var.get(u'Printer').get(u'prototype').put(u'printSequence', PyJs_printSequence_624_)
        @Js
        def PyJs_printList_626_(items, parent, this, arguments, var=var):
            var = Scope({u'this':this, u'items':items, u'printList':PyJs_printList_626_, u'arguments':arguments, u'parent':parent}, var)
            var.registers([u'items', u'parent', u'opts'])
            PyJs_Object_627_ = Js({})
            var.put(u'opts', (var.get(u'arguments').get(u'2') if ((var.get(u'arguments').get(u'length')>Js(2.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'2'),var.get(u'undefined'))) else PyJs_Object_627_))
            if (var.get(u'opts').get(u'separator')==var.get(u"null")):
                var.get(u'opts').put(u'separator', var.get(u'commaSeparator'))
            return var.get(u"this").callprop(u'printJoin', var.get(u'items'), var.get(u'parent'), var.get(u'opts'))
        PyJs_printList_626_._set_name(u'printList')
        var.get(u'Printer').get(u'prototype').put(u'printList', PyJs_printList_626_)
        @Js
        def PyJs__printNewline_628_(leading, node, parent, opts, this, arguments, var=var):
            var = Scope({u'node':node, u'_printNewline':PyJs__printNewline_628_, u'arguments':arguments, u'parent':parent, u'this':this, u'leading':leading, u'opts':opts}, var)
            var.registers([u'node', u'needs', u'parent', u'_comments2', u'leading', u'_comment', u'lines', u'_this2', u'_comments', u'_comment2', u'opts'])
            var.put(u'_this2', var.get(u"this"))
            if (var.get(u"this").get(u'format').get(u'retainLines') or var.get(u"this").get(u'format').get(u'compact')):
                return var.get('undefined')
            if var.get(u"this").get(u'format').get(u'concise'):
                var.get(u"this").callprop(u'space')
                return var.get('undefined')
            var.put(u'lines', Js(0.0))
            if (((var.get(u'node').get(u'start')!=var.get(u"null")) and var.get(u'node').get(u'_ignoreUserWhitespace').neg()) and var.get(u"this").get(u'_whitespace')):
                if var.get(u'leading'):
                    var.put(u'_comments', var.get(u'node').get(u'leadingComments'))
                    @Js
                    def PyJs_anonymous_629_(comment, this, arguments, var=var):
                        var = Scope({u'comment':comment, u'this':this, u'arguments':arguments}, var)
                        var.registers([u'comment'])
                        return (var.get(u'comment').get(u'loc').neg().neg() and var.get(u'_this2').get(u'format').callprop(u'shouldPrintComment', var.get(u'comment').get(u'value')))
                    PyJs_anonymous_629_._set_name(u'anonymous')
                    var.put(u'_comment', (var.get(u'_comments') and PyJsComma(Js(0.0),var.get(u'_find2').get(u'default'))(var.get(u'_comments'), PyJs_anonymous_629_)))
                    var.put(u'lines', var.get(u"this").get(u'_whitespace').callprop(u'getNewlinesBefore', (var.get(u'_comment') or var.get(u'node'))))
                else:
                    var.put(u'_comments2', var.get(u'node').get(u'trailingComments'))
                    @Js
                    def PyJs_anonymous_630_(comment, this, arguments, var=var):
                        var = Scope({u'comment':comment, u'this':this, u'arguments':arguments}, var)
                        var.registers([u'comment'])
                        return (var.get(u'comment').get(u'loc').neg().neg() and var.get(u'_this2').get(u'format').callprop(u'shouldPrintComment', var.get(u'comment').get(u'value')))
                    PyJs_anonymous_630_._set_name(u'anonymous')
                    var.put(u'_comment2', (var.get(u'_comments2') and PyJsComma(Js(0.0),var.get(u'_findLast2').get(u'default'))(var.get(u'_comments2'), PyJs_anonymous_630_)))
                    var.put(u'lines', var.get(u"this").get(u'_whitespace').callprop(u'getNewlinesAfter', (var.get(u'_comment2') or var.get(u'node'))))
            else:
                if var.get(u'leading').neg():
                    (var.put(u'lines',Js(var.get(u'lines').to_number())+Js(1))-Js(1))
                if var.get(u'opts').get(u'addNewlines'):
                    var.put(u'lines', (var.get(u'opts').callprop(u'addNewlines', var.get(u'leading'), var.get(u'node')) or Js(0.0)), u'+')
                var.put(u'needs', var.get(u'n').get(u'needsWhitespaceAfter'))
                if var.get(u'leading'):
                    var.put(u'needs', var.get(u'n').get(u'needsWhitespaceBefore'))
                if var.get(u'needs')(var.get(u'node'), var.get(u'parent')):
                    (var.put(u'lines',Js(var.get(u'lines').to_number())+Js(1))-Js(1))
                if var.get(u"this").get(u'_buf').callprop(u'hasContent').neg():
                    var.put(u'lines', Js(0.0))
            var.get(u"this").callprop(u'newline', var.get(u'lines'))
        PyJs__printNewline_628_._set_name(u'_printNewline')
        var.get(u'Printer').get(u'prototype').put(u'_printNewline', PyJs__printNewline_628_)
        @Js
        def PyJs__getComments_631_(leading, node, this, arguments, var=var):
            var = Scope({u'node':node, u'leading':leading, u'this':this, u'arguments':arguments, u'_getComments':PyJs__getComments_631_}, var)
            var.registers([u'node', u'leading'])
            return ((var.get(u'node') and (var.get(u'node').get(u'leadingComments') if var.get(u'leading') else var.get(u'node').get(u'trailingComments'))) or Js([]))
        PyJs__getComments_631_._set_name(u'_getComments')
        var.get(u'Printer').get(u'prototype').put(u'_getComments', PyJs__getComments_631_)
        @Js
        def PyJs__printComment_632_(comment, this, arguments, var=var):
            var = Scope({u'comment':comment, u'this':this, u'_printComment':PyJs__printComment_632_, u'arguments':arguments}, var)
            var.registers([u'comment', u'val', u'indentSize', u'newlineRegex', u'offset', u'_this3'])
            var.put(u'_this3', var.get(u"this"))
            if var.get(u"this").get(u'format').callprop(u'shouldPrintComment', var.get(u'comment').get(u'value')).neg():
                return var.get('undefined')
            if var.get(u'comment').get(u'ignore'):
                return var.get('undefined')
            if var.get(u"this").get(u'_printedComments').callprop(u'has', var.get(u'comment')):
                return var.get('undefined')
            var.get(u"this").get(u'_printedComments').callprop(u'add', var.get(u'comment'))
            if (var.get(u'comment').get(u'start')!=var.get(u"null")):
                if var.get(u"this").get(u'_printedCommentStarts').get(var.get(u'comment').get(u'start')):
                    return var.get('undefined')
                var.get(u"this").get(u'_printedCommentStarts').put(var.get(u'comment').get(u'start'), var.get(u'true'))
            var.get(u"this").callprop(u'newline', (var.get(u"this").get(u'_whitespace').callprop(u'getNewlinesBefore', var.get(u'comment')) if var.get(u"this").get(u'_whitespace') else Js(0.0)))
            if (var.get(u"this").callprop(u'endsWith', Js(u'[')).neg() and var.get(u"this").callprop(u'endsWith', Js(u'{')).neg()):
                var.get(u"this").callprop(u'space')
            var.put(u'val', (((Js(u'//')+var.get(u'comment').get(u'value'))+Js(u'\n')) if PyJsStrictEq(var.get(u'comment').get(u'type'),Js(u'CommentLine')) else ((Js(u'/*')+var.get(u'comment').get(u'value'))+Js(u'*/'))))
            if (PyJsStrictEq(var.get(u'comment').get(u'type'),Js(u'CommentBlock')) and var.get(u"this").get(u'format').get(u'indent').get(u'adjustMultilineComment')):
                var.put(u'offset', (var.get(u'comment').get(u'loc') and var.get(u'comment').get(u'loc').get(u'start').get(u'column')))
                if var.get(u'offset'):
                    var.put(u'newlineRegex', var.get(u'RegExp').create(((Js(u'\\n\\s{1,')+var.get(u'offset'))+Js(u'}')), Js(u'g')))
                    var.put(u'val', var.get(u'val').callprop(u'replace', var.get(u'newlineRegex'), Js(u'\n')))
                var.put(u'indentSize', var.get(u'Math').callprop(u'max', var.get(u"this").callprop(u'_getIndent').get(u'length'), var.get(u"this").get(u'_buf').callprop(u'getCurrentColumn')))
                var.put(u'val', var.get(u'val').callprop(u'replace', JsRegExp(u'/\\n(?!$)/g'), (Js(u'\n')+PyJsComma(Js(0.0),var.get(u'_repeat2').get(u'default'))(Js(u' '), var.get(u'indentSize')))))
            @Js
            def PyJs_anonymous_633_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                var.get(u'_this3').callprop(u'_append', var.get(u'val'))
            PyJs_anonymous_633_._set_name(u'anonymous')
            var.get(u"this").callprop(u'withSource', Js(u'start'), var.get(u'comment').get(u'loc'), PyJs_anonymous_633_)
            var.get(u"this").callprop(u'newline', ((var.get(u"this").get(u'_whitespace').callprop(u'getNewlinesAfter', var.get(u'comment')) if var.get(u"this").get(u'_whitespace') else Js(0.0))+((-Js(1.0)) if PyJsStrictEq(var.get(u'comment').get(u'type'),Js(u'CommentLine')) else Js(0.0))))
        PyJs__printComment_632_._set_name(u'_printComment')
        var.get(u'Printer').get(u'prototype').put(u'_printComment', PyJs__printComment_632_)
        @Js
        def PyJs__printComments_634_(comments, this, arguments, var=var):
            var = Scope({u'this':this, u'_printComments':PyJs__printComments_634_, u'arguments':arguments, u'comments':comments}, var)
            var.registers([u'_isArray', u'_iterator', u'comments', u'_i', u'_ref', u'_comment3'])
            if (var.get(u'comments').neg() or var.get(u'comments').get(u'length').neg()):
                return var.get('undefined')
            #for JS loop
            var.put(u'_iterator', var.get(u'comments'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'_comment3', var.get(u'_ref'))
                var.get(u"this").callprop(u'_printComment', var.get(u'_comment3'))
            
        PyJs__printComments_634_._set_name(u'_printComments')
        var.get(u'Printer').get(u'prototype').put(u'_printComments', PyJs__printComments_634_)
        return var.get(u'Printer')
    PyJs_anonymous_579_._set_name(u'anonymous')
    var.put(u'Printer', PyJs_anonymous_579_())
    var.get(u'exports').put(u'default', var.get(u'Printer'))
    pass
    var.put(u'_arr', Js([var.get(u'require')(Js(u'./generators/template-literals')), var.get(u'require')(Js(u'./generators/expressions')), var.get(u'require')(Js(u'./generators/statements')), var.get(u'require')(Js(u'./generators/classes')), var.get(u'require')(Js(u'./generators/methods')), var.get(u'require')(Js(u'./generators/modules')), var.get(u'require')(Js(u'./generators/types')), var.get(u'require')(Js(u'./generators/flow')), var.get(u'require')(Js(u'./generators/base')), var.get(u'require')(Js(u'./generators/jsx'))]))
    #for JS loop
    var.put(u'_i2', Js(0.0))
    while (var.get(u'_i2')<var.get(u'_arr').get(u'length')):
        try:
            var.put(u'generator', var.get(u'_arr').get(var.get(u'_i2')))
            PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'Printer').get(u'prototype'), var.get(u'generator'))
        finally:
                (var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_576_._set_name(u'anonymous')
PyJs_Object_635_ = Js({u'./buffer':Js(29.0),u'./generators/base':Js(30.0),u'./generators/classes':Js(31.0),u'./generators/expressions':Js(32.0),u'./generators/flow':Js(33.0),u'./generators/jsx':Js(34.0),u'./generators/methods':Js(35.0),u'./generators/modules':Js(36.0),u'./generators/statements':Js(37.0),u'./generators/template-literals':Js(38.0),u'./generators/types':Js(39.0),u'./node':Js(41.0),u'./whitespace':Js(46.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/json/stringify':Js(97.0),u'babel-runtime/core-js/object/assign':Js(100.0),u'babel-runtime/core-js/weak-set':Js(109.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-types':Js(258.0),u'lodash/find':Js(447.0),u'lodash/findLast':Js(449.0),u'lodash/isInteger':Js(464.0),u'lodash/repeat':Js(483.0)})
@Js
def PyJs_anonymous_636_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_typeof2', u'_typeof3', u'exports', u'_sourceMap', u'require', u'SourceMap', u'module', u'_keys2', u'_keys', u'_interopRequireDefault', u'_classCallCheck3', u'_classCallCheck2', u'_sourceMap2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_637_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_637_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_keys', var.get(u'require')(Js(u'babel-runtime/core-js/object/keys')))
    var.put(u'_keys2', var.get(u'_interopRequireDefault')(var.get(u'_keys')))
    var.put(u'_typeof2', var.get(u'require')(Js(u'babel-runtime/helpers/typeof')))
    var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_sourceMap', var.get(u'require')(Js(u'source-map')))
    var.put(u'_sourceMap2', var.get(u'_interopRequireDefault')(var.get(u'_sourceMap')))
    pass
    @Js
    def PyJs_anonymous_638_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'SourceMap'])
        @Js
        def PyJsHoisted_SourceMap_(opts, code, this, arguments, var=var):
            var = Scope({u'this':this, u'code':code, u'arguments':arguments, u'opts':opts}, var)
            var.registers([u'code', u'opts', u'_this'])
            var.put(u'_this', var.get(u"this"))
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'SourceMap'))
            var.get(u"this").put(u'_opts', var.get(u'opts'))
            PyJs_Object_639_ = Js({u'file':var.get(u'opts').get(u'sourceMapTarget'),u'sourceRoot':var.get(u'opts').get(u'sourceRoot')})
            var.get(u"this").put(u'_map', var.get(u'_sourceMap2').get(u'default').get(u'SourceMapGenerator').create(PyJs_Object_639_))
            if PyJsStrictEq(var.get(u'code',throw=False).typeof(),Js(u'string')):
                var.get(u"this").get(u'_map').callprop(u'setSourceContent', var.get(u'opts').get(u'sourceFileName'), var.get(u'code'))
            else:
                if PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'code',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'code'))),Js(u'object')):
                    @Js
                    def PyJs_anonymous_640_(sourceFileName, this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments, u'sourceFileName':sourceFileName}, var)
                        var.registers([u'sourceFileName'])
                        var.get(u'_this').get(u'_map').callprop(u'setSourceContent', var.get(u'sourceFileName'), var.get(u'code').get(var.get(u'sourceFileName')))
                    PyJs_anonymous_640_._set_name(u'anonymous')
                    PyJsComma(Js(0.0),var.get(u'_keys2').get(u'default'))(var.get(u'code')).callprop(u'forEach', PyJs_anonymous_640_)
        PyJsHoisted_SourceMap_.func_name = u'SourceMap'
        var.put(u'SourceMap', PyJsHoisted_SourceMap_)
        pass
        @Js
        def PyJs_get_641_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_641_}, var)
            var.registers([])
            return var.get(u"this").get(u'_map').callprop(u'toJSON')
        PyJs_get_641_._set_name(u'get')
        var.get(u'SourceMap').get(u'prototype').put(u'get', PyJs_get_641_)
        @Js
        def PyJs_mark_642_(generatedLine, generatedColumn, line, column, identifierName, filename, this, arguments, var=var):
            var = Scope({u'generatedColumn':generatedColumn, u'identifierName':identifierName, u'column':column, u'filename':filename, u'this':this, u'generatedLine':generatedLine, u'arguments':arguments, u'line':line, u'mark':PyJs_mark_642_}, var)
            var.registers([u'generatedColumn', u'identifierName', u'column', u'filename', u'generatedLine', u'line'])
            if (PyJsStrictNeq(var.get(u"this").get(u'_lastGenLine'),var.get(u'generatedLine')) and PyJsStrictEq(var.get(u'line'),var.get(u"null"))):
                return var.get('undefined')
            if ((PyJsStrictEq(var.get(u"this").get(u'_lastGenLine'),var.get(u'generatedLine')) and PyJsStrictEq(var.get(u"this").get(u'_lastSourceLine'),var.get(u'line'))) and PyJsStrictEq(var.get(u"this").get(u'_lastSourceColumn'),var.get(u'column'))):
                return var.get('undefined')
            var.get(u"this").put(u'_lastGenLine', var.get(u'generatedLine'))
            var.get(u"this").put(u'_lastSourceLine', var.get(u'line'))
            var.get(u"this").put(u'_lastSourceColumn', var.get(u'column'))
            PyJs_Object_644_ = Js({u'line':var.get(u'generatedLine'),u'column':var.get(u'generatedColumn')})
            PyJs_Object_645_ = Js({u'line':var.get(u'line'),u'column':var.get(u'column')})
            PyJs_Object_643_ = Js({u'name':var.get(u'identifierName'),u'generated':PyJs_Object_644_,u'source':(var.get(u"null") if (var.get(u'line')==var.get(u"null")) else (var.get(u'filename') or var.get(u"this").get(u'_opts').get(u'sourceFileName'))),u'original':(var.get(u"null") if (var.get(u'line')==var.get(u"null")) else PyJs_Object_645_)})
            var.get(u"this").get(u'_map').callprop(u'addMapping', PyJs_Object_643_)
        PyJs_mark_642_._set_name(u'mark')
        var.get(u'SourceMap').get(u'prototype').put(u'mark', PyJs_mark_642_)
        return var.get(u'SourceMap')
    PyJs_anonymous_638_._set_name(u'anonymous')
    var.put(u'SourceMap', PyJs_anonymous_638_())
    var.get(u'exports').put(u'default', var.get(u'SourceMap'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_636_._set_name(u'anonymous')
PyJs_Object_646_ = Js({u'babel-runtime/core-js/object/keys':Js(103.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-runtime/helpers/typeof':Js(114.0),u'source-map':Js(519.0)})
@Js
def PyJs_anonymous_647_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'Whitespace', u'require', u'module', u'_interopRequireDefault', u'_classCallCheck3', u'_classCallCheck2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_648_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_648_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    pass
    @Js
    def PyJs_anonymous_649_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'Whitespace'])
        @Js
        def PyJsHoisted_Whitespace_(tokens, this, arguments, var=var):
            var = Scope({u'tokens':tokens, u'this':this, u'arguments':arguments}, var)
            var.registers([u'tokens'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Whitespace'))
            var.get(u"this").put(u'tokens', var.get(u'tokens'))
            PyJs_Object_650_ = Js({})
            var.get(u"this").put(u'used', PyJs_Object_650_)
        PyJsHoisted_Whitespace_.func_name = u'Whitespace'
        var.put(u'Whitespace', PyJsHoisted_Whitespace_)
        pass
        @Js
        def PyJs_getNewlinesBefore_651_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'getNewlinesBefore':PyJs_getNewlinesBefore_651_}, var)
            var.registers([u'tokens', u'startToken', u'node', u'endToken', u'index'])
            var.put(u'startToken', PyJsComma(Js(0.0), Js(None)))
            var.put(u'endToken', PyJsComma(Js(0.0), Js(None)))
            var.put(u'tokens', var.get(u"this").get(u'tokens'))
            @Js
            def PyJs_anonymous_652_(token, this, arguments, var=var):
                var = Scope({u'this':this, u'token':token, u'arguments':arguments}, var)
                var.registers([u'token'])
                return (var.get(u'token').get(u'start')-var.get(u'node').get(u'start'))
            PyJs_anonymous_652_._set_name(u'anonymous')
            var.put(u'index', var.get(u"this").callprop(u'_findToken', PyJs_anonymous_652_, Js(0.0), var.get(u'tokens').get(u'length')))
            if (var.get(u'index')>=Js(0.0)):
                while (var.get(u'index') and PyJsStrictEq(var.get(u'node').get(u'start'),var.get(u'tokens').get((var.get(u'index')-Js(1.0))).get(u'start'))):
                    var.put(u'index',Js(var.get(u'index').to_number())-Js(1))
                var.put(u'startToken', var.get(u'tokens').get((var.get(u'index')-Js(1.0))))
                var.put(u'endToken', var.get(u'tokens').get(var.get(u'index')))
            return var.get(u"this").callprop(u'_getNewlinesBetween', var.get(u'startToken'), var.get(u'endToken'))
        PyJs_getNewlinesBefore_651_._set_name(u'getNewlinesBefore')
        var.get(u'Whitespace').get(u'prototype').put(u'getNewlinesBefore', PyJs_getNewlinesBefore_651_)
        @Js
        def PyJs_getNewlinesAfter_653_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'getNewlinesAfter':PyJs_getNewlinesAfter_653_}, var)
            var.registers([u'tokens', u'startToken', u'node', u'endToken', u'index'])
            var.put(u'startToken', PyJsComma(Js(0.0), Js(None)))
            var.put(u'endToken', PyJsComma(Js(0.0), Js(None)))
            var.put(u'tokens', var.get(u"this").get(u'tokens'))
            @Js
            def PyJs_anonymous_654_(token, this, arguments, var=var):
                var = Scope({u'this':this, u'token':token, u'arguments':arguments}, var)
                var.registers([u'token'])
                return (var.get(u'token').get(u'end')-var.get(u'node').get(u'end'))
            PyJs_anonymous_654_._set_name(u'anonymous')
            var.put(u'index', var.get(u"this").callprop(u'_findToken', PyJs_anonymous_654_, Js(0.0), var.get(u'tokens').get(u'length')))
            if (var.get(u'index')>=Js(0.0)):
                while (var.get(u'index') and PyJsStrictEq(var.get(u'node').get(u'end'),var.get(u'tokens').get((var.get(u'index')-Js(1.0))).get(u'end'))):
                    var.put(u'index',Js(var.get(u'index').to_number())-Js(1))
                var.put(u'startToken', var.get(u'tokens').get(var.get(u'index')))
                var.put(u'endToken', var.get(u'tokens').get((var.get(u'index')+Js(1.0))))
                if PyJsStrictEq(var.get(u'endToken').get(u'type').get(u'label'),Js(u',')):
                    var.put(u'endToken', var.get(u'tokens').get((var.get(u'index')+Js(2.0))))
            if (var.get(u'endToken') and PyJsStrictEq(var.get(u'endToken').get(u'type').get(u'label'),Js(u'eof'))):
                return Js(1.0)
            else:
                return var.get(u"this").callprop(u'_getNewlinesBetween', var.get(u'startToken'), var.get(u'endToken'))
        PyJs_getNewlinesAfter_653_._set_name(u'getNewlinesAfter')
        var.get(u'Whitespace').get(u'prototype').put(u'getNewlinesAfter', PyJs_getNewlinesAfter_653_)
        @Js
        def PyJs__getNewlinesBetween_655_(startToken, endToken, this, arguments, var=var):
            var = Scope({u'this':this, u'startToken':startToken, u'arguments':arguments, u'endToken':endToken, u'_getNewlinesBetween':PyJs__getNewlinesBetween_655_}, var)
            var.registers([u'end', u'startToken', u'lines', u'start', u'line', u'endToken'])
            if (var.get(u'endToken').neg() or var.get(u'endToken').get(u'loc').neg()):
                return Js(0.0)
            var.put(u'start', (var.get(u'startToken').get(u'loc').get(u'end').get(u'line') if var.get(u'startToken') else Js(1.0)))
            var.put(u'end', var.get(u'endToken').get(u'loc').get(u'start').get(u'line'))
            var.put(u'lines', Js(0.0))
            #for JS loop
            var.put(u'line', var.get(u'start'))
            while (var.get(u'line')<var.get(u'end')):
                try:
                    if PyJsStrictEq(var.get(u"this").get(u'used').get(var.get(u'line')).typeof(),Js(u'undefined')):
                        var.get(u"this").get(u'used').put(var.get(u'line'), var.get(u'true'))
                        (var.put(u'lines',Js(var.get(u'lines').to_number())+Js(1))-Js(1))
                finally:
                        (var.put(u'line',Js(var.get(u'line').to_number())+Js(1))-Js(1))
            return var.get(u'lines')
        PyJs__getNewlinesBetween_655_._set_name(u'_getNewlinesBetween')
        var.get(u'Whitespace').get(u'prototype').put(u'_getNewlinesBetween', PyJs__getNewlinesBetween_655_)
        @Js
        def PyJs__findToken_656_(test, start, end, this, arguments, var=var):
            var = Scope({u'end':end, u'_findToken':PyJs__findToken_656_, u'this':this, u'start':start, u'arguments':arguments, u'test':test}, var)
            var.registers([u'test', u'middle', u'end', u'match', u'start'])
            if (var.get(u'start')>=var.get(u'end')):
                return (-Js(1.0))
            var.put(u'middle', PyJsBshift((var.get(u'start')+var.get(u'end')),Js(1.0)))
            var.put(u'match', var.get(u'test')(var.get(u"this").get(u'tokens').get(var.get(u'middle'))))
            if (var.get(u'match')<Js(0.0)):
                return var.get(u"this").callprop(u'_findToken', var.get(u'test'), (var.get(u'middle')+Js(1.0)), var.get(u'end'))
            else:
                if (var.get(u'match')>Js(0.0)):
                    return var.get(u"this").callprop(u'_findToken', var.get(u'test'), var.get(u'start'), var.get(u'middle'))
                else:
                    if PyJsStrictEq(var.get(u'match'),Js(0.0)):
                        return var.get(u'middle')
            return (-Js(1.0))
        PyJs__findToken_656_._set_name(u'_findToken')
        var.get(u'Whitespace').get(u'prototype').put(u'_findToken', PyJs__findToken_656_)
        return var.get(u'Whitespace')
    PyJs_anonymous_649_._set_name(u'anonymous')
    var.put(u'Whitespace', PyJs_anonymous_649_())
    var.get(u'exports').put(u'default', var.get(u'Whitespace'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_647_._set_name(u'anonymous')
PyJs_Object_657_ = Js({u'babel-runtime/helpers/classCallCheck':Js(110.0)})
@Js
def PyJs_anonymous_658_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'visitor', u'require', u'_babelTypes', u'module', u'_babelHelperHoistVariables', u't', u'_babelHelperHoistVariables2', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_664_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_664_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_663_ = Js({})
            var.put(u'newObj', PyJs_Object_663_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_659_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
        var.registers([u'node', u'container', u'args', u'state', u'call', u'path', u'scope', u'callee'])
        var.put(u'scope', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else var.get(u'path').get(u'scope')))
        var.put(u'node', var.get(u'path').get(u'node'))
        var.put(u'container', var.get(u't').callprop(u'functionExpression', var.get(u"null"), Js([]), var.get(u'node').get(u'body'), var.get(u'node').get(u'generator'), var.get(u'node').get(u'async')))
        var.put(u'callee', var.get(u'container'))
        var.put(u'args', Js([]))
        @Js
        def PyJs_anonymous_660_(id, this, arguments, var=var):
            var = Scope({u'this':this, u'id':id, u'arguments':arguments}, var)
            var.registers([u'id'])
            PyJs_Object_661_ = Js({u'id':var.get(u'id')})
            return var.get(u'scope').callprop(u'push', PyJs_Object_661_)
        PyJs_anonymous_660_._set_name(u'anonymous')
        PyJsComma(Js(0.0),var.get(u'_babelHelperHoistVariables2').get(u'default'))(var.get(u'path'), PyJs_anonymous_660_)
        PyJs_Object_662_ = Js({u'foundThis':Js(False),u'foundArguments':Js(False)})
        var.put(u'state', PyJs_Object_662_)
        var.get(u'path').callprop(u'traverse', var.get(u'visitor'), var.get(u'state'))
        if var.get(u'state').get(u'foundArguments'):
            var.put(u'callee', var.get(u't').callprop(u'memberExpression', var.get(u'container'), var.get(u't').callprop(u'identifier', Js(u'apply'))))
            var.put(u'args', Js([]))
            if var.get(u'state').get(u'foundThis'):
                var.get(u'args').callprop(u'push', var.get(u't').callprop(u'thisExpression'))
            if var.get(u'state').get(u'foundArguments'):
                if var.get(u'state').get(u'foundThis').neg():
                    var.get(u'args').callprop(u'push', var.get(u't').callprop(u'nullLiteral'))
                var.get(u'args').callprop(u'push', var.get(u't').callprop(u'identifier', Js(u'arguments')))
        var.put(u'call', var.get(u't').callprop(u'callExpression', var.get(u'callee'), var.get(u'args')))
        if var.get(u'node').get(u'generator'):
            var.put(u'call', var.get(u't').callprop(u'yieldExpression', var.get(u'call'), var.get(u'true')))
        return var.get(u't').callprop(u'returnStatement', var.get(u'call'))
    PyJs_anonymous_659_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_659_)
    var.put(u'_babelHelperHoistVariables', var.get(u'require')(Js(u'babel-helper-hoist-variables')))
    var.put(u'_babelHelperHoistVariables2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperHoistVariables')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    @Js
    def PyJs_enter_666_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'enter':PyJs_enter_666_}, var)
        var.registers([u'path', u'state'])
        if var.get(u'path').callprop(u'isThisExpression'):
            var.get(u'state').put(u'foundThis', var.get(u'true'))
        PyJs_Object_667_ = Js({u'name':Js(u'arguments')})
        if var.get(u'path').callprop(u'isReferencedIdentifier', PyJs_Object_667_):
            var.get(u'state').put(u'foundArguments', var.get(u'true'))
    PyJs_enter_666_._set_name(u'enter')
    @Js
    def PyJs_Function_668_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'Function':PyJs_Function_668_, u'arguments':arguments}, var)
        var.registers([u'path'])
        var.get(u'path').callprop(u'skip')
    PyJs_Function_668_._set_name(u'Function')
    PyJs_Object_665_ = Js({u'enter':PyJs_enter_666_,u'Function':PyJs_Function_668_})
    var.put(u'visitor', PyJs_Object_665_)
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_658_._set_name(u'anonymous')
PyJs_Object_669_ = Js({u'babel-helper-hoist-variables':Js(51.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_670_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'toDefineObject', u'exports', u'toComputedObjectFromClass', u'_each', u'_interopRequireWildcard', u'_babelHelperFunctionName', u'require', u'_babelTypes', u'_has2', u'_has', u'hasComputed', u'push', u'module', u'_each2', u't', u'_babelHelperFunctionName2', u'_interopRequireDefault', u'toKind', u'toClassObject'])
    @Js
    def PyJsHoisted_toDefineObject_(mutatorMap, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'mutatorMap':mutatorMap}, var)
        var.registers([u'mutatorMap'])
        @Js
        def PyJs_anonymous_678_(map, this, arguments, var=var):
            var = Scope({u'this':this, u'map':map, u'arguments':arguments}, var)
            var.registers([u'map'])
            if var.get(u'map').get(u'value'):
                var.get(u'map').put(u'writable', var.get(u't').callprop(u'booleanLiteral', var.get(u'true')))
            var.get(u'map').put(u'configurable', var.get(u't').callprop(u'booleanLiteral', var.get(u'true')))
            var.get(u'map').put(u'enumerable', var.get(u't').callprop(u'booleanLiteral', var.get(u'true')))
        PyJs_anonymous_678_._set_name(u'anonymous')
        PyJsComma(Js(0.0),var.get(u'_each2').get(u'default'))(var.get(u'mutatorMap'), PyJs_anonymous_678_)
        return var.get(u'toClassObject')(var.get(u'mutatorMap'))
    PyJsHoisted_toDefineObject_.func_name = u'toDefineObject'
    var.put(u'toDefineObject', PyJsHoisted_toDefineObject_)
    @Js
    def PyJsHoisted_toComputedObjectFromClass_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'i', u'obj', u'objExpr', u'val', u'prop'])
        var.put(u'objExpr', var.get(u't').callprop(u'arrayExpression', Js([])))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'obj').get(u'properties').get(u'length')):
            try:
                var.put(u'prop', var.get(u'obj').get(u'properties').get(var.get(u'i')))
                var.put(u'val', var.get(u'prop').get(u'value'))
                var.get(u'val').get(u'properties').callprop(u'unshift', var.get(u't').callprop(u'objectProperty', var.get(u't').callprop(u'identifier', Js(u'key')), var.get(u't').callprop(u'toComputedKey', var.get(u'prop'))))
                var.get(u'objExpr').get(u'elements').callprop(u'push', var.get(u'val'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'objExpr')
    PyJsHoisted_toComputedObjectFromClass_.func_name = u'toComputedObjectFromClass'
    var.put(u'toComputedObjectFromClass', PyJsHoisted_toComputedObjectFromClass_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_671_ = Js({})
            var.put(u'newObj', PyJs_Object_671_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_hasComputed_(mutatorMap, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'mutatorMap':mutatorMap}, var)
        var.registers([u'mutatorMap', u'key'])
        for PyJsTemp in var.get(u'mutatorMap'):
            var.put(u'key', PyJsTemp)
            if var.get(u'mutatorMap').get(var.get(u'key')).get(u'_computed'):
                return var.get(u'true')
        return Js(False)
    PyJsHoisted_hasComputed_.func_name = u'hasComputed'
    var.put(u'hasComputed', PyJsHoisted_hasComputed_)
    @Js
    def PyJsHoisted_push_(mutatorMap, node, kind, file, scope, this, arguments, var=var):
        var = Scope({u'node':node, u'kind':kind, u'arguments':arguments, u'file':file, u'this':this, u'scope':scope, u'mutatorMap':mutatorMap}, var)
        var.registers([u'node', u'map', u'kind', u'file', u'inheritedKind', u'value', u'alias', u'key', u'scope', u'decorators', u'mutatorMap'])
        var.put(u'alias', var.get(u't').callprop(u'toKeyAlias', var.get(u'node')))
        PyJs_Object_673_ = Js({})
        var.put(u'map', PyJs_Object_673_)
        if PyJsComma(Js(0.0),var.get(u'_has2').get(u'default'))(var.get(u'mutatorMap'), var.get(u'alias')):
            var.put(u'map', var.get(u'mutatorMap').get(var.get(u'alias')))
        var.get(u'mutatorMap').put(var.get(u'alias'), var.get(u'map'))
        var.get(u'map').put(u'_inherits', (var.get(u'map').get(u'_inherits') or Js([])))
        var.get(u'map').get(u'_inherits').callprop(u'push', var.get(u'node'))
        var.get(u'map').put(u'_key', var.get(u'node').get(u'key'))
        if var.get(u'node').get(u'computed'):
            var.get(u'map').put(u'_computed', var.get(u'true'))
        if var.get(u'node').get(u'decorators'):
            var.put(u'decorators', var.get(u'map').put(u'decorators', (var.get(u'map').get(u'decorators') or var.get(u't').callprop(u'arrayExpression', Js([])))))
            @Js
            def PyJs_anonymous_674_(dec, this, arguments, var=var):
                var = Scope({u'this':this, u'dec':dec, u'arguments':arguments}, var)
                var.registers([u'dec'])
                return var.get(u'dec').get(u'expression')
            PyJs_anonymous_674_._set_name(u'anonymous')
            var.get(u'decorators').put(u'elements', var.get(u'decorators').get(u'elements').callprop(u'concat', var.get(u'node').get(u'decorators').callprop(u'map', PyJs_anonymous_674_).callprop(u'reverse')))
        if (var.get(u'map').get(u'value') or var.get(u'map').get(u'initializer')):
            PyJsTempException = JsToPyException(var.get(u'file').callprop(u'buildCodeFrameError', var.get(u'node'), Js(u'Key conflict with sibling node')))
            raise PyJsTempException
        var.put(u'key', PyJsComma(Js(0.0), Js(None)))
        var.put(u'value', PyJsComma(Js(0.0), Js(None)))
        if ((var.get(u't').callprop(u'isObjectProperty', var.get(u'node')) or var.get(u't').callprop(u'isObjectMethod', var.get(u'node'))) or var.get(u't').callprop(u'isClassMethod', var.get(u'node'))):
            var.put(u'key', var.get(u't').callprop(u'toComputedKey', var.get(u'node'), var.get(u'node').get(u'key')))
        if (var.get(u't').callprop(u'isObjectProperty', var.get(u'node')) or var.get(u't').callprop(u'isClassProperty', var.get(u'node'))):
            var.put(u'value', var.get(u'node').get(u'value'))
        else:
            if (var.get(u't').callprop(u'isObjectMethod', var.get(u'node')) or var.get(u't').callprop(u'isClassMethod', var.get(u'node'))):
                var.put(u'value', var.get(u't').callprop(u'functionExpression', var.get(u"null"), var.get(u'node').get(u'params'), var.get(u'node').get(u'body'), var.get(u'node').get(u'generator'), var.get(u'node').get(u'async')))
                var.get(u'value').put(u'returnType', var.get(u'node').get(u'returnType'))
        var.put(u'inheritedKind', var.get(u'toKind')(var.get(u'node')))
        if (var.get(u'kind').neg() or PyJsStrictNeq(var.get(u'inheritedKind'),Js(u'value'))):
            var.put(u'kind', var.get(u'inheritedKind'))
        if (((var.get(u'scope') and var.get(u't').callprop(u'isStringLiteral', var.get(u'key'))) and (PyJsStrictEq(var.get(u'kind'),Js(u'value')) or PyJsStrictEq(var.get(u'kind'),Js(u'initializer')))) and var.get(u't').callprop(u'isFunctionExpression', var.get(u'value'))):
            PyJs_Object_675_ = Js({u'id':var.get(u'key'),u'node':var.get(u'value'),u'scope':var.get(u'scope')})
            var.put(u'value', PyJsComma(Js(0.0),var.get(u'_babelHelperFunctionName2').get(u'default'))(PyJs_Object_675_))
        if var.get(u'value'):
            var.get(u't').callprop(u'inheritsComments', var.get(u'value'), var.get(u'node'))
            var.get(u'map').put(var.get(u'kind'), var.get(u'value'))
        return var.get(u'map')
    PyJsHoisted_push_.func_name = u'push'
    var.put(u'push', PyJsHoisted_push_)
    @Js
    def PyJsHoisted_toClassObject_(mutatorMap, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'mutatorMap':mutatorMap}, var)
        var.registers([u'objExpr', u'mutatorMap'])
        var.put(u'objExpr', var.get(u't').callprop(u'objectExpression', Js([])))
        @Js
        def PyJs_anonymous_676_(map, this, arguments, var=var):
            var = Scope({u'this':this, u'map':map, u'arguments':arguments}, var)
            var.registers([u'mapNode', u'propNode', u'map'])
            var.put(u'mapNode', var.get(u't').callprop(u'objectExpression', Js([])))
            var.put(u'propNode', var.get(u't').callprop(u'objectProperty', var.get(u'map').get(u'_key'), var.get(u'mapNode'), var.get(u'map').get(u'_computed')))
            @Js
            def PyJs_anonymous_677_(node, key, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'key':key}, var)
                var.registers([u'node', u'inheritNode', u'key', u'prop'])
                if PyJsStrictEq(var.get(u'key').get(u'0'),Js(u'_')):
                    return var.get('undefined')
                var.put(u'inheritNode', var.get(u'node'))
                if (var.get(u't').callprop(u'isClassMethod', var.get(u'node')) or var.get(u't').callprop(u'isClassProperty', var.get(u'node'))):
                    var.put(u'node', var.get(u'node').get(u'value'))
                var.put(u'prop', var.get(u't').callprop(u'objectProperty', var.get(u't').callprop(u'identifier', var.get(u'key')), var.get(u'node')))
                var.get(u't').callprop(u'inheritsComments', var.get(u'prop'), var.get(u'inheritNode'))
                var.get(u't').callprop(u'removeComments', var.get(u'inheritNode'))
                var.get(u'mapNode').get(u'properties').callprop(u'push', var.get(u'prop'))
            PyJs_anonymous_677_._set_name(u'anonymous')
            PyJsComma(Js(0.0),var.get(u'_each2').get(u'default'))(var.get(u'map'), PyJs_anonymous_677_)
            var.get(u'objExpr').get(u'properties').callprop(u'push', var.get(u'propNode'))
        PyJs_anonymous_676_._set_name(u'anonymous')
        PyJsComma(Js(0.0),var.get(u'_each2').get(u'default'))(var.get(u'mutatorMap'), PyJs_anonymous_676_)
        return var.get(u'objExpr')
    PyJsHoisted_toClassObject_.func_name = u'toClassObject'
    var.put(u'toClassObject', PyJsHoisted_toClassObject_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_672_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_672_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_toKind_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if (var.get(u't').callprop(u'isClassMethod', var.get(u'node')) or var.get(u't').callprop(u'isObjectMethod', var.get(u'node'))):
            if (PyJsStrictEq(var.get(u'node').get(u'kind'),Js(u'get')) or PyJsStrictEq(var.get(u'node').get(u'kind'),Js(u'set'))):
                return var.get(u'node').get(u'kind')
        return Js(u'value')
    PyJsHoisted_toKind_.func_name = u'toKind'
    var.put(u'toKind', PyJsHoisted_toKind_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'push', var.get(u'push'))
    var.get(u'exports').put(u'hasComputed', var.get(u'hasComputed'))
    var.get(u'exports').put(u'toComputedObjectFromClass', var.get(u'toComputedObjectFromClass'))
    var.get(u'exports').put(u'toClassObject', var.get(u'toClassObject'))
    var.get(u'exports').put(u'toDefineObject', var.get(u'toDefineObject'))
    var.put(u'_babelHelperFunctionName', var.get(u'require')(Js(u'babel-helper-function-name')))
    var.put(u'_babelHelperFunctionName2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperFunctionName')))
    var.put(u'_each', var.get(u'require')(Js(u'lodash/each')))
    var.put(u'_each2', var.get(u'_interopRequireDefault')(var.get(u'_each')))
    var.put(u'_has', var.get(u'require')(Js(u'lodash/has')))
    var.put(u'_has2', var.get(u'_interopRequireDefault')(var.get(u'_has')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_670_._set_name(u'anonymous')
PyJs_Object_679_ = Js({u'babel-helper-function-name':Js(49.0),u'babel-types':Js(258.0),u'lodash/each':Js(443.0),u'lodash/has':Js(453.0)})
@Js
def PyJs_anonymous_680_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'module', u'exports', u'_interopRequireWildcard', u'visitor', u'_babelHelperGetFunctionArity', u'_babelTypes', u'visit', u'_babelHelperGetFunctionArity2', u'wrap', u'_babelTemplate', u'buildPropertyMethodAssignmentWrapper', u'_babelTemplate2', u't', u'_interopRequireDefault', u'require', u'buildGeneratorPropertyMethodAssignmentWrapper'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_684_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_684_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_wrap_(state, method, id, scope, this, arguments, var=var):
        var = Scope({u'state':state, u'arguments':arguments, u'this':this, u'scope':scope, u'method':method, u'id':id}, var)
        var.registers([u'i', u'len', u'id', u'state', u'params', u'build', u'_template', u'scope', u'method'])
        if var.get(u'state').get(u'selfReference'):
            if (var.get(u'scope').callprop(u'hasBinding', var.get(u'id').get(u'name')) and var.get(u'scope').callprop(u'hasGlobal', var.get(u'id').get(u'name')).neg()):
                var.get(u'scope').callprop(u'rename', var.get(u'id').get(u'name'))
            else:
                if var.get(u't').callprop(u'isFunction', var.get(u'method')).neg():
                    return var.get('undefined')
                var.put(u'build', var.get(u'buildPropertyMethodAssignmentWrapper'))
                if var.get(u'method').get(u'generator'):
                    var.put(u'build', var.get(u'buildGeneratorPropertyMethodAssignmentWrapper'))
                PyJs_Object_687_ = Js({u'FUNCTION':var.get(u'method'),u'FUNCTION_ID':var.get(u'id'),u'FUNCTION_KEY':var.get(u'scope').callprop(u'generateUidIdentifier', var.get(u'id').get(u'name'))})
                var.put(u'_template', var.get(u'build')(PyJs_Object_687_).get(u'expression'))
                var.get(u'_template').get(u'callee').put(u'_skipModulesRemap', var.get(u'true'))
                var.put(u'params', var.get(u'_template').get(u'callee').get(u'body').get(u'body').get(u'0').get(u'params'))
                #for JS loop
                var.put(u'i', Js(0.0))
                var.put(u'len', PyJsComma(Js(0.0),var.get(u'_babelHelperGetFunctionArity2').get(u'default'))(var.get(u'method')))
                while (var.get(u'i')<var.get(u'len')):
                    try:
                        var.get(u'params').callprop(u'push', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'x')))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                return var.get(u'_template')
        var.get(u'method').put(u'id', var.get(u'id'))
        var.get(u'scope').callprop(u'getProgramParent').get(u'references').put(var.get(u'id').get(u'name'), var.get(u'true'))
    PyJsHoisted_wrap_.func_name = u'wrap'
    var.put(u'wrap', PyJsHoisted_wrap_)
    @Js
    def PyJsHoisted_visit_(node, name, scope, this, arguments, var=var):
        var = Scope({u'node':node, u'scope':scope, u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'node', u'scope', u'state', u'binding', u'name'])
        PyJs_Object_688_ = Js({u'selfAssignment':Js(False),u'selfReference':Js(False),u'outerDeclar':var.get(u'scope').callprop(u'getBindingIdentifier', var.get(u'name')),u'references':Js([]),u'name':var.get(u'name')})
        var.put(u'state', PyJs_Object_688_)
        var.put(u'binding', var.get(u'scope').callprop(u'getOwnBinding', var.get(u'name')))
        if var.get(u'binding'):
            if PyJsStrictEq(var.get(u'binding').get(u'kind'),Js(u'param')):
                var.get(u'state').put(u'selfReference', var.get(u'true'))
            else:
                pass
        else:
            if (var.get(u'state').get(u'outerDeclar') or var.get(u'scope').callprop(u'hasGlobal', var.get(u'name'))):
                var.get(u'scope').callprop(u'traverse', var.get(u'node'), var.get(u'visitor'), var.get(u'state'))
        return var.get(u'state')
    PyJsHoisted_visit_.func_name = u'visit'
    var.put(u'visit', PyJsHoisted_visit_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_683_ = Js({})
            var.put(u'newObj', PyJs_Object_683_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_681_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'node', u'name', u'parent', u'binding', u'state', u'scope', u'_ref', u'id'])
        var.put(u'node', var.get(u'_ref').get(u'node'))
        var.put(u'parent', var.get(u'_ref').get(u'parent'))
        var.put(u'scope', var.get(u'_ref').get(u'scope'))
        var.put(u'id', var.get(u'_ref').get(u'id'))
        if var.get(u'node').get(u'id'):
            return var.get('undefined')
        PyJs_Object_682_ = Js({u'kind':Js(u'method')})
        if ((var.get(u't').callprop(u'isObjectProperty', var.get(u'parent')) or var.get(u't').callprop(u'isObjectMethod', var.get(u'parent'), PyJs_Object_682_)) and (var.get(u'parent').get(u'computed').neg() or var.get(u't').callprop(u'isLiteral', var.get(u'parent').get(u'key')))):
            var.put(u'id', var.get(u'parent').get(u'key'))
        else:
            if var.get(u't').callprop(u'isVariableDeclarator', var.get(u'parent')):
                var.put(u'id', var.get(u'parent').get(u'id'))
                if var.get(u't').callprop(u'isIdentifier', var.get(u'id')):
                    var.put(u'binding', var.get(u'scope').get(u'parent').callprop(u'getBinding', var.get(u'id').get(u'name')))
                    if ((var.get(u'binding') and var.get(u'binding').get(u'constant')) and PyJsStrictEq(var.get(u'scope').callprop(u'getBinding', var.get(u'id').get(u'name')),var.get(u'binding'))):
                        var.get(u'node').put(u'id', var.get(u'id'))
                        var.get(u'node').get(u'id').put(var.get(u't').get(u'NOT_LOCAL_BINDING'), var.get(u'true'))
                        return var.get('undefined')
            else:
                if var.get(u't').callprop(u'isAssignmentExpression', var.get(u'parent')):
                    var.put(u'id', var.get(u'parent').get(u'left'))
                else:
                    if var.get(u'id').neg():
                        return var.get('undefined')
        var.put(u'name', PyJsComma(Js(0.0), Js(None)))
        if (var.get(u'id') and var.get(u't').callprop(u'isLiteral', var.get(u'id'))):
            var.put(u'name', var.get(u'id').get(u'value'))
        else:
            if (var.get(u'id') and var.get(u't').callprop(u'isIdentifier', var.get(u'id'))):
                var.put(u'name', var.get(u'id').get(u'name'))
            else:
                return var.get('undefined')
        var.put(u'name', var.get(u't').callprop(u'toBindingIdentifierName', var.get(u'name')))
        var.put(u'id', var.get(u't').callprop(u'identifier', var.get(u'name')))
        var.get(u'id').put(var.get(u't').get(u'NOT_LOCAL_BINDING'), var.get(u'true'))
        var.put(u'state', var.get(u'visit')(var.get(u'node'), var.get(u'name'), var.get(u'scope')))
        return (var.get(u'wrap')(var.get(u'state'), var.get(u'node'), var.get(u'id'), var.get(u'scope')) or var.get(u'node'))
    PyJs_anonymous_681_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_681_)
    var.put(u'_babelHelperGetFunctionArity', var.get(u'require')(Js(u'babel-helper-get-function-arity')))
    var.put(u'_babelHelperGetFunctionArity2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperGetFunctionArity')))
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    var.put(u'_babelTemplate2', var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.put(u'buildPropertyMethodAssignmentWrapper', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (FUNCTION_KEY) {\n    function FUNCTION_ID() {\n      return FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    }\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n')))
    var.put(u'buildGeneratorPropertyMethodAssignmentWrapper', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (FUNCTION_KEY) {\n    function* FUNCTION_ID() {\n      return yield* FUNCTION_KEY.apply(this, arguments);\n    }\n\n    FUNCTION_ID.toString = function () {\n      return FUNCTION_KEY.toString();\n    };\n\n    return FUNCTION_ID;\n  })(FUNCTION)\n')))
    @Js
    def PyJs_ReferencedIdentifierBindingIdentifier_686_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'ReferencedIdentifierBindingIdentifier':PyJs_ReferencedIdentifierBindingIdentifier_686_, u'arguments':arguments}, var)
        var.registers([u'path', u'state', u'localDeclar'])
        if PyJsStrictNeq(var.get(u'path').get(u'node').get(u'name'),var.get(u'state').get(u'name')):
            return var.get('undefined')
        var.put(u'localDeclar', var.get(u'path').get(u'scope').callprop(u'getBindingIdentifier', var.get(u'state').get(u'name')))
        if PyJsStrictNeq(var.get(u'localDeclar'),var.get(u'state').get(u'outerDeclar')):
            return var.get('undefined')
        var.get(u'state').put(u'selfReference', var.get(u'true'))
        var.get(u'path').callprop(u'stop')
    PyJs_ReferencedIdentifierBindingIdentifier_686_._set_name(u'ReferencedIdentifierBindingIdentifier')
    PyJs_Object_685_ = Js({u'ReferencedIdentifier|BindingIdentifier':PyJs_ReferencedIdentifierBindingIdentifier_686_})
    var.put(u'visitor', PyJs_Object_685_)
    pass
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_680_._set_name(u'anonymous')
PyJs_Object_689_ = Js({u'babel-helper-get-function-arity':Js(50.0),u'babel-template':Js(221.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_690_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'require', u'_babelTypes', u'module', u't'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_692_ = Js({})
            var.put(u'newObj', PyJs_Object_692_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_691_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'i', u'node', u'params', u'param'])
        var.put(u'params', var.get(u'node').get(u'params'))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'params').get(u'length')):
            try:
                var.put(u'param', var.get(u'params').get(var.get(u'i')))
                if (var.get(u't').callprop(u'isAssignmentPattern', var.get(u'param')) or var.get(u't').callprop(u'isRestElement', var.get(u'param'))):
                    return var.get(u'i')
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'params').get(u'length')
    PyJs_anonymous_691_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_691_)
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_690_._set_name(u'anonymous')
PyJs_Object_693_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_694_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'visitor', u'require', u'_babelTypes', u'module', u't', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_698_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_698_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_697_ = Js({})
            var.put(u'newObj', PyJs_Object_697_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    @Js
    def PyJs_anonymous_695_(path, emit, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'emit':emit, u'arguments':arguments}, var)
        var.registers([u'path', u'kind', u'emit'])
        var.put(u'kind', (var.get(u'arguments').get(u'2') if ((var.get(u'arguments').get(u'length')>Js(2.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'2'),var.get(u'undefined'))) else Js(u'var')))
        PyJs_Object_696_ = Js({u'kind':var.get(u'kind'),u'emit':var.get(u'emit')})
        var.get(u'path').callprop(u'traverse', var.get(u'visitor'), PyJs_Object_696_)
    PyJs_anonymous_695_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_695_)
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    @Js
    def PyJs_Scope_700_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'Scope':PyJs_Scope_700_}, var)
        var.registers([u'path', u'state'])
        if PyJsStrictEq(var.get(u'state').get(u'kind'),Js(u'let')):
            var.get(u'path').callprop(u'skip')
    PyJs_Scope_700_._set_name(u'Scope')
    @Js
    def PyJs_Function_701_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'Function':PyJs_Function_701_, u'arguments':arguments}, var)
        var.registers([u'path'])
        var.get(u'path').callprop(u'skip')
    PyJs_Function_701_._set_name(u'Function')
    @Js
    def PyJs_VariableDeclaration_702_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'VariableDeclaration':PyJs_VariableDeclaration_702_}, var)
        var.registers([u'_isArray', u'_iterator', u'firstId', u'declarations', u'state', u'declar', u'_i', u'path', u'nodes', u'_ref', u'name'])
        if (var.get(u'state').get(u'kind') and PyJsStrictNeq(var.get(u'path').get(u'node').get(u'kind'),var.get(u'state').get(u'kind'))):
            return var.get('undefined')
        var.put(u'nodes', Js([]))
        var.put(u'declarations', var.get(u'path').callprop(u'get', Js(u'declarations')))
        var.put(u'firstId', PyJsComma(Js(0.0), Js(None)))
        #for JS loop
        var.put(u'_iterator', var.get(u'declarations'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'declar', var.get(u'_ref'))
            var.put(u'firstId', var.get(u'declar').get(u'node').get(u'id'))
            if var.get(u'declar').get(u'node').get(u'init'):
                var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'declar').get(u'node').get(u'id'), var.get(u'declar').get(u'node').get(u'init'))))
            for PyJsTemp in var.get(u'declar').callprop(u'getBindingIdentifiers'):
                var.put(u'name', PyJsTemp)
                var.get(u'state').callprop(u'emit', var.get(u't').callprop(u'identifier', var.get(u'name')), var.get(u'name'))
        
        PyJs_Object_703_ = Js({u'left':var.get(u'path').get(u'node')})
        if var.get(u'path').get(u'parentPath').callprop(u'isFor', PyJs_Object_703_):
            var.get(u'path').callprop(u'replaceWith', var.get(u'firstId'))
        else:
            var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'nodes'))
    PyJs_VariableDeclaration_702_._set_name(u'VariableDeclaration')
    PyJs_Object_699_ = Js({u'Scope':PyJs_Scope_700_,u'Function':PyJs_Function_701_,u'VariableDeclaration':PyJs_VariableDeclaration_702_})
    var.put(u'visitor', PyJs_Object_699_)
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_694_._set_name(u'anonymous')
PyJs_Object_704_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_705_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'require', u'_babelTypes', u'module', u't'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_708_ = Js({})
            var.put(u'newObj', PyJs_Object_708_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_706_(callee, thisNode, args, this, arguments, var=var):
        var = Scope({u'thisNode':thisNode, u'this':this, u'args':args, u'callee':callee, u'arguments':arguments}, var)
        var.registers([u'thisNode', u'args', u'callee'])
        PyJs_Object_707_ = Js({u'name':Js(u'arguments')})
        if ((PyJsStrictEq(var.get(u'args').get(u'length'),Js(1.0)) and var.get(u't').callprop(u'isSpreadElement', var.get(u'args').get(u'0'))) and var.get(u't').callprop(u'isIdentifier', var.get(u'args').get(u'0').get(u'argument'), PyJs_Object_707_)):
            return var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u'callee'), var.get(u't').callprop(u'identifier', Js(u'apply'))), Js([var.get(u'thisNode'), var.get(u'args').get(u'0').get(u'argument')]))
        else:
            return var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u'callee'), var.get(u't').callprop(u'identifier', Js(u'call'))), Js([var.get(u'thisNode')]).callprop(u'concat', var.get(u'args')))
    PyJs_anonymous_706_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_706_)
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_705_._set_name(u'anonymous')
PyJs_Object_709_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_710_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'pullFlag', u'_interopRequireWildcard', u'_pull', u'is', u'_babelTypes', u'module', u'_pull2', u't', u'_interopRequireDefault', u'require'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_712_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_712_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_is_(node, flag, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'flag':flag, u'arguments':arguments}, var)
        var.registers([u'node', u'flag'])
        return (var.get(u't').callprop(u'isRegExpLiteral', var.get(u'node')) and (var.get(u'node').get(u'flags').callprop(u'indexOf', var.get(u'flag'))>=Js(0.0)))
    PyJsHoisted_is_.func_name = u'is'
    var.put(u'is', PyJsHoisted_is_)
    @Js
    def PyJsHoisted_pullFlag_(node, flag, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'flag':flag, u'arguments':arguments}, var)
        var.registers([u'node', u'flag', u'flags'])
        var.put(u'flags', var.get(u'node').get(u'flags').callprop(u'split', Js(u'')))
        if (var.get(u'node').get(u'flags').callprop(u'indexOf', var.get(u'flag'))<Js(0.0)):
            return var.get('undefined')
        PyJsComma(Js(0.0),var.get(u'_pull2').get(u'default'))(var.get(u'flags'), var.get(u'flag'))
        var.get(u'node').put(u'flags', var.get(u'flags').callprop(u'join', Js(u'')))
    PyJsHoisted_pullFlag_.func_name = u'pullFlag'
    var.put(u'pullFlag', PyJsHoisted_pullFlag_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_711_ = Js({})
            var.put(u'newObj', PyJs_Object_711_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'is', var.get(u'is'))
    var.get(u'exports').put(u'pullFlag', var.get(u'pullFlag'))
    var.put(u'_pull', var.get(u'require')(Js(u'lodash/pull')))
    var.put(u'_pull2', var.get(u'_interopRequireDefault')(var.get(u'_pull')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
PyJs_anonymous_710_._set_name(u'anonymous')
PyJs_Object_713_ = Js({u'babel-types':Js(258.0),u'lodash/pull':Js(481.0)})
@Js
def PyJs_anonymous_714_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'getPrototypeOfExpression', u'exports', u'_symbol2', u'isMemberExpressionSuper', u'_interopRequireWildcard', u'visitor', u'require', u'_babelTypes', u'messages', u'ReplaceSupers', u'module', u'_babelHelperOptimiseCallExpression', u'HARDCORE_THIS_REF', u'_symbol', u't', u'_babelHelperOptimiseCallExpression2', u'_interopRequireDefault', u'isIllegalBareSuper', u'_classCallCheck3', u'_classCallCheck2', u'_babelMessages'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_716_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_716_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_isIllegalBareSuper_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        if var.get(u't').callprop(u'isSuper', var.get(u'node')).neg():
            return Js(False)
        PyJs_Object_717_ = Js({u'computed':Js(False)})
        if var.get(u't').callprop(u'isMemberExpression', var.get(u'parent'), PyJs_Object_717_):
            return Js(False)
        PyJs_Object_718_ = Js({u'callee':var.get(u'node')})
        if var.get(u't').callprop(u'isCallExpression', var.get(u'parent'), PyJs_Object_718_):
            return Js(False)
        return var.get(u'true')
    PyJsHoisted_isIllegalBareSuper_.func_name = u'isIllegalBareSuper'
    var.put(u'isIllegalBareSuper', PyJsHoisted_isIllegalBareSuper_)
    @Js
    def PyJsHoisted_isMemberExpressionSuper_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        return (var.get(u't').callprop(u'isMemberExpression', var.get(u'node')) and var.get(u't').callprop(u'isSuper', var.get(u'node').get(u'object')))
    PyJsHoisted_isMemberExpressionSuper_.func_name = u'isMemberExpressionSuper'
    var.put(u'isMemberExpressionSuper', PyJsHoisted_isMemberExpressionSuper_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_715_ = Js({})
            var.put(u'newObj', PyJs_Object_715_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_getPrototypeOfExpression_(objectRef, isStatic, this, arguments, var=var):
        var = Scope({u'this':this, u'objectRef':objectRef, u'isStatic':isStatic, u'arguments':arguments}, var)
        var.registers([u'objectRef', u'isStatic', u'targetRef'])
        var.put(u'targetRef', (var.get(u'objectRef') if var.get(u'isStatic') else var.get(u't').callprop(u'memberExpression', var.get(u'objectRef'), var.get(u't').callprop(u'identifier', Js(u'prototype')))))
        def PyJs_LONG_719_(var=var):
            return var.get(u't').callprop(u'logicalExpression', Js(u'||'), var.get(u't').callprop(u'memberExpression', var.get(u'targetRef'), var.get(u't').callprop(u'identifier', Js(u'__proto__'))), var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'Object')), var.get(u't').callprop(u'identifier', Js(u'getPrototypeOf'))), Js([var.get(u'targetRef')])))
        return PyJs_LONG_719_()
    PyJsHoisted_getPrototypeOfExpression_.func_name = u'getPrototypeOfExpression'
    var.put(u'getPrototypeOfExpression', PyJsHoisted_getPrototypeOfExpression_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_symbol', var.get(u'require')(Js(u'babel-runtime/core-js/symbol')))
    var.put(u'_symbol2', var.get(u'_interopRequireDefault')(var.get(u'_symbol')))
    var.put(u'_babelHelperOptimiseCallExpression', var.get(u'require')(Js(u'babel-helper-optimise-call-expression')))
    var.put(u'_babelHelperOptimiseCallExpression2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperOptimiseCallExpression')))
    var.put(u'_babelMessages', var.get(u'require')(Js(u'babel-messages')))
    var.put(u'messages', var.get(u'_interopRequireWildcard')(var.get(u'_babelMessages')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.put(u'HARDCORE_THIS_REF', PyJsComma(Js(0.0),var.get(u'_symbol2').get(u'default'))())
    pass
    pass
    pass
    @Js
    def PyJs_Function_721_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'Function':PyJs_Function_721_, u'arguments':arguments}, var)
        var.registers([u'path'])
        if var.get(u'path').callprop(u'inShadow', Js(u'this')).neg():
            var.get(u'path').callprop(u'skip')
    PyJs_Function_721_._set_name(u'Function')
    @Js
    def PyJs_ReturnStatement_722_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'ReturnStatement':PyJs_ReturnStatement_722_, u'arguments':arguments}, var)
        var.registers([u'path', u'state'])
        if var.get(u'path').callprop(u'inShadow', Js(u'this')).neg():
            var.get(u'state').get(u'returns').callprop(u'push', var.get(u'path'))
    PyJs_ReturnStatement_722_._set_name(u'ReturnStatement')
    @Js
    def PyJs_ThisExpression_723_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'ThisExpression':PyJs_ThisExpression_723_, u'arguments':arguments}, var)
        var.registers([u'path', u'state'])
        if var.get(u'path').get(u'node').get(var.get(u'HARDCORE_THIS_REF')).neg():
            var.get(u'state').get(u'thises').callprop(u'push', var.get(u'path'))
    PyJs_ThisExpression_723_._set_name(u'ThisExpression')
    @Js
    def PyJs_enter_724_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'enter':PyJs_enter_724_}, var)
        var.registers([u'callback', u'isBareSuper', u'state', u'result', u'path'])
        var.put(u'callback', var.get(u'state').get(u'specHandle'))
        if var.get(u'state').get(u'isLoose'):
            var.put(u'callback', var.get(u'state').get(u'looseHandle'))
        var.put(u'isBareSuper', (var.get(u'path').callprop(u'isCallExpression') and var.get(u'path').callprop(u'get', Js(u'callee')).callprop(u'isSuper')))
        var.put(u'result', var.get(u'callback').callprop(u'call', var.get(u'state'), var.get(u'path')))
        if var.get(u'result'):
            var.get(u'state').put(u'hasSuper', var.get(u'true'))
        if var.get(u'isBareSuper'):
            var.get(u'state').get(u'bareSupers').callprop(u'push', var.get(u'path'))
        if PyJsStrictEq(var.get(u'result'),var.get(u'true')):
            var.get(u'path').callprop(u'requeue')
        if (PyJsStrictNeq(var.get(u'result'),var.get(u'true')) and var.get(u'result')):
            if var.get(u'Array').callprop(u'isArray', var.get(u'result')):
                var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'result'))
            else:
                var.get(u'path').callprop(u'replaceWith', var.get(u'result'))
    PyJs_enter_724_._set_name(u'enter')
    PyJs_Object_720_ = Js({u'Function':PyJs_Function_721_,u'ReturnStatement':PyJs_ReturnStatement_722_,u'ThisExpression':PyJs_ThisExpression_723_,u'enter':PyJs_enter_724_})
    var.put(u'visitor', PyJs_Object_720_)
    @Js
    def PyJs_anonymous_725_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'ReplaceSupers'])
        @Js
        def PyJsHoisted_ReplaceSupers_(opts, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'opts':opts}, var)
            var.registers([u'inClass', u'opts'])
            var.put(u'inClass', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else Js(False)))
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'ReplaceSupers'))
            var.get(u"this").put(u'forceSuperMemoisation', var.get(u'opts').get(u'forceSuperMemoisation'))
            var.get(u"this").put(u'methodPath', var.get(u'opts').get(u'methodPath'))
            var.get(u"this").put(u'methodNode', var.get(u'opts').get(u'methodNode'))
            var.get(u"this").put(u'superRef', var.get(u'opts').get(u'superRef'))
            var.get(u"this").put(u'isStatic', var.get(u'opts').get(u'isStatic'))
            var.get(u"this").put(u'hasSuper', Js(False))
            var.get(u"this").put(u'inClass', var.get(u'inClass'))
            var.get(u"this").put(u'isLoose', var.get(u'opts').get(u'isLoose'))
            var.get(u"this").put(u'scope', var.get(u"this").get(u'methodPath').get(u'scope'))
            var.get(u"this").put(u'file', var.get(u'opts').get(u'file'))
            var.get(u"this").put(u'opts', var.get(u'opts'))
            var.get(u"this").put(u'bareSupers', Js([]))
            var.get(u"this").put(u'returns', Js([]))
            var.get(u"this").put(u'thises', Js([]))
        PyJsHoisted_ReplaceSupers_.func_name = u'ReplaceSupers'
        var.put(u'ReplaceSupers', PyJsHoisted_ReplaceSupers_)
        pass
        @Js
        def PyJs_getObjectRef_726_(this, arguments, var=var):
            var = Scope({u'this':this, u'getObjectRef':PyJs_getObjectRef_726_, u'arguments':arguments}, var)
            var.registers([])
            return (var.get(u"this").get(u'opts').get(u'objectRef') or var.get(u"this").get(u'opts').callprop(u'getObjectRef'))
        PyJs_getObjectRef_726_._set_name(u'getObjectRef')
        var.get(u'ReplaceSupers').get(u'prototype').put(u'getObjectRef', PyJs_getObjectRef_726_)
        @Js
        def PyJs_setSuperProperty_727_(property, value, isComputed, this, arguments, var=var):
            var = Scope({u'setSuperProperty':PyJs_setSuperProperty_727_, u'this':this, u'value':value, u'arguments':arguments, u'property':property, u'isComputed':isComputed}, var)
            var.registers([u'property', u'value', u'isComputed'])
            def PyJs_LONG_728_(var=var):
                return var.get(u't').callprop(u'callExpression', var.get(u"this").get(u'file').callprop(u'addHelper', Js(u'set')), Js([var.get(u'getPrototypeOfExpression')(var.get(u"this").callprop(u'getObjectRef'), var.get(u"this").get(u'isStatic')), (var.get(u'property') if var.get(u'isComputed') else var.get(u't').callprop(u'stringLiteral', var.get(u'property').get(u'name'))), var.get(u'value'), var.get(u't').callprop(u'thisExpression')]))
            return PyJs_LONG_728_()
        PyJs_setSuperProperty_727_._set_name(u'setSuperProperty')
        var.get(u'ReplaceSupers').get(u'prototype').put(u'setSuperProperty', PyJs_setSuperProperty_727_)
        @Js
        def PyJs_getSuperProperty_729_(property, isComputed, this, arguments, var=var):
            var = Scope({u'this':this, u'getSuperProperty':PyJs_getSuperProperty_729_, u'property':property, u'arguments':arguments, u'isComputed':isComputed}, var)
            var.registers([u'property', u'isComputed'])
            def PyJs_LONG_730_(var=var):
                return var.get(u't').callprop(u'callExpression', var.get(u"this").get(u'file').callprop(u'addHelper', Js(u'get')), Js([var.get(u'getPrototypeOfExpression')(var.get(u"this").callprop(u'getObjectRef'), var.get(u"this").get(u'isStatic')), (var.get(u'property') if var.get(u'isComputed') else var.get(u't').callprop(u'stringLiteral', var.get(u'property').get(u'name'))), var.get(u't').callprop(u'thisExpression')]))
            return PyJs_LONG_730_()
        PyJs_getSuperProperty_729_._set_name(u'getSuperProperty')
        var.get(u'ReplaceSupers').get(u'prototype').put(u'getSuperProperty', PyJs_getSuperProperty_729_)
        @Js
        def PyJs_replace_731_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'replace':PyJs_replace_731_}, var)
            var.registers([])
            var.get(u"this").get(u'methodPath').callprop(u'traverse', var.get(u'visitor'), var.get(u"this"))
        PyJs_replace_731_._set_name(u'replace')
        var.get(u'ReplaceSupers').get(u'prototype').put(u'replace', PyJs_replace_731_)
        @Js
        def PyJs_getLooseSuperProperty_732_(id, parent, this, arguments, var=var):
            var = Scope({u'this':this, u'getLooseSuperProperty':PyJs_getLooseSuperProperty_732_, u'id':id, u'parent':parent, u'arguments':arguments}, var)
            var.registers([u'methodNode', u'superRef', u'id', u'parent'])
            var.put(u'methodNode', var.get(u"this").get(u'methodNode'))
            var.put(u'superRef', (var.get(u"this").get(u'superRef') or var.get(u't').callprop(u'identifier', Js(u'Function'))))
            if PyJsStrictEq(var.get(u'parent').get(u'property'),var.get(u'id')):
                return var.get('undefined')
            else:
                PyJs_Object_733_ = Js({u'callee':var.get(u'id')})
                if var.get(u't').callprop(u'isCallExpression', var.get(u'parent'), PyJs_Object_733_):
                    return var.get('undefined')
                else:
                    if (var.get(u't').callprop(u'isMemberExpression', var.get(u'parent')) and var.get(u'methodNode').get(u'static').neg()):
                        return var.get(u't').callprop(u'memberExpression', var.get(u'superRef'), var.get(u't').callprop(u'identifier', Js(u'prototype')))
                    else:
                        return var.get(u'superRef')
        PyJs_getLooseSuperProperty_732_._set_name(u'getLooseSuperProperty')
        var.get(u'ReplaceSupers').get(u'prototype').put(u'getLooseSuperProperty', PyJs_getLooseSuperProperty_732_)
        @Js
        def PyJs_looseHandle_734_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'looseHandle':PyJs_looseHandle_734_}, var)
            var.registers([u'node', u'path', u'callee'])
            var.put(u'node', var.get(u'path').get(u'node'))
            if var.get(u'path').callprop(u'isSuper'):
                return var.get(u"this").callprop(u'getLooseSuperProperty', var.get(u'node'), var.get(u'path').get(u'parent'))
            else:
                if var.get(u'path').callprop(u'isCallExpression'):
                    var.put(u'callee', var.get(u'node').get(u'callee'))
                    if var.get(u't').callprop(u'isMemberExpression', var.get(u'callee')).neg():
                        return var.get('undefined')
                    if var.get(u't').callprop(u'isSuper', var.get(u'callee').get(u'object')).neg():
                        return var.get('undefined')
                    var.get(u't').callprop(u'appendToMemberExpression', var.get(u'callee'), var.get(u't').callprop(u'identifier', Js(u'call')))
                    var.get(u'node').get(u'arguments').callprop(u'unshift', var.get(u't').callprop(u'thisExpression'))
                    return var.get(u'true')
        PyJs_looseHandle_734_._set_name(u'looseHandle')
        var.get(u'ReplaceSupers').get(u'prototype').put(u'looseHandle', PyJs_looseHandle_734_)
        @Js
        def PyJs_specHandleAssignmentExpression_735_(ref, path, node, this, arguments, var=var):
            var = Scope({u'node':node, u'specHandleAssignmentExpression':PyJs_specHandleAssignmentExpression_735_, u'this':this, u'arguments':arguments, u'path':path, u'ref':ref}, var)
            var.registers([u'node', u'path', u'ref'])
            if PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'=')):
                return var.get(u"this").callprop(u'setSuperProperty', var.get(u'node').get(u'left').get(u'property'), var.get(u'node').get(u'right'), var.get(u'node').get(u'left').get(u'computed'))
            else:
                var.put(u'ref', (var.get(u'ref') or var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'ref'))))
                return Js([var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'ref'), var.get(u'node').get(u'left'))])), var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'node').get(u'left'), var.get(u't').callprop(u'binaryExpression', var.get(u'node').get(u'operator').get(u'0'), var.get(u'ref'), var.get(u'node').get(u'right'))))])
        PyJs_specHandleAssignmentExpression_735_._set_name(u'specHandleAssignmentExpression')
        var.get(u'ReplaceSupers').get(u'prototype').put(u'specHandleAssignmentExpression', PyJs_specHandleAssignmentExpression_735_)
        @Js
        def PyJs_specHandle_736_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'specHandle':PyJs_specHandle_736_}, var)
            var.registers([u'node', u'binary', u'superProperty', u'computed', u'parent', u'ref', u'args', u'path', u'property', u'callee'])
            var.put(u'property', PyJsComma(Js(0.0), Js(None)))
            var.put(u'computed', PyJsComma(Js(0.0), Js(None)))
            var.put(u'args', PyJsComma(Js(0.0), Js(None)))
            var.put(u'parent', var.get(u'path').get(u'parent'))
            var.put(u'node', var.get(u'path').get(u'node'))
            if var.get(u'isIllegalBareSuper')(var.get(u'node'), var.get(u'parent')):
                PyJsTempException = JsToPyException(var.get(u'path').callprop(u'buildCodeFrameError', var.get(u'messages').callprop(u'get', Js(u'classesIllegalBareSuper'))))
                raise PyJsTempException
            if var.get(u't').callprop(u'isCallExpression', var.get(u'node')):
                var.put(u'callee', var.get(u'node').get(u'callee'))
                if var.get(u't').callprop(u'isSuper', var.get(u'callee')):
                    return var.get('undefined')
                else:
                    if var.get(u'isMemberExpressionSuper')(var.get(u'callee')):
                        var.put(u'property', var.get(u'callee').get(u'property'))
                        var.put(u'computed', var.get(u'callee').get(u'computed'))
                        var.put(u'args', var.get(u'node').get(u'arguments'))
            else:
                if (var.get(u't').callprop(u'isMemberExpression', var.get(u'node')) and var.get(u't').callprop(u'isSuper', var.get(u'node').get(u'object'))):
                    var.put(u'property', var.get(u'node').get(u'property'))
                    var.put(u'computed', var.get(u'node').get(u'computed'))
                else:
                    if (var.get(u't').callprop(u'isUpdateExpression', var.get(u'node')) and var.get(u'isMemberExpressionSuper')(var.get(u'node').get(u'argument'))):
                        var.put(u'binary', var.get(u't').callprop(u'binaryExpression', var.get(u'node').get(u'operator').get(u'0'), var.get(u'node').get(u'argument'), var.get(u't').callprop(u'numericLiteral', Js(1.0))))
                        if var.get(u'node').get(u'prefix'):
                            return var.get(u"this").callprop(u'specHandleAssignmentExpression', var.get(u"null"), var.get(u'path'), var.get(u'binary'))
                        else:
                            var.put(u'ref', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'ref')))
                            return var.get(u"this").callprop(u'specHandleAssignmentExpression', var.get(u'ref'), var.get(u'path'), var.get(u'binary')).callprop(u'concat', var.get(u't').callprop(u'expressionStatement', var.get(u'ref')))
                    else:
                        if (var.get(u't').callprop(u'isAssignmentExpression', var.get(u'node')) and var.get(u'isMemberExpressionSuper')(var.get(u'node').get(u'left'))):
                            return var.get(u"this").callprop(u'specHandleAssignmentExpression', var.get(u"null"), var.get(u'path'), var.get(u'node'))
            if var.get(u'property').neg():
                return var.get('undefined')
            var.put(u'superProperty', var.get(u"this").callprop(u'getSuperProperty', var.get(u'property'), var.get(u'computed')))
            if var.get(u'args'):
                return var.get(u"this").callprop(u'optimiseCall', var.get(u'superProperty'), var.get(u'args'))
            else:
                return var.get(u'superProperty')
        PyJs_specHandle_736_._set_name(u'specHandle')
        var.get(u'ReplaceSupers').get(u'prototype').put(u'specHandle', PyJs_specHandle_736_)
        @Js
        def PyJs_optimiseCall_737_(callee, args, this, arguments, var=var):
            var = Scope({u'this':this, u'args':args, u'callee':callee, u'arguments':arguments, u'optimiseCall':PyJs_optimiseCall_737_}, var)
            var.registers([u'thisNode', u'args', u'callee'])
            var.put(u'thisNode', var.get(u't').callprop(u'thisExpression'))
            var.get(u'thisNode').put(var.get(u'HARDCORE_THIS_REF'), var.get(u'true'))
            return PyJsComma(Js(0.0),var.get(u'_babelHelperOptimiseCallExpression2').get(u'default'))(var.get(u'callee'), var.get(u'thisNode'), var.get(u'args'))
        PyJs_optimiseCall_737_._set_name(u'optimiseCall')
        var.get(u'ReplaceSupers').get(u'prototype').put(u'optimiseCall', PyJs_optimiseCall_737_)
        return var.get(u'ReplaceSupers')
    PyJs_anonymous_725_._set_name(u'anonymous')
    var.put(u'ReplaceSupers', PyJs_anonymous_725_())
    var.get(u'exports').put(u'default', var.get(u'ReplaceSupers'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_714_._set_name(u'anonymous')
PyJs_Object_738_ = Js({u'babel-helper-optimise-call-expression':Js(52.0),u'babel-messages':Js(57.0),u'babel-runtime/core-js/symbol':Js(105.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_739_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'_babelTemplate', u'module', u'helpers', u'_interopRequireDefault', u'_babelTemplate2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_740_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_740_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    var.put(u'_babelTemplate2', var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')))
    pass
    PyJs_Object_741_ = Js({})
    var.put(u'helpers', PyJs_Object_741_)
    var.get(u'exports').put(u'default', var.get(u'helpers'))
    def PyJs_LONG_742_(var=var):
        return var.get(u'helpers').put(u'typeof', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (typeof Symbol === "function" && typeof Symbol.iterator === "symbol")\n    ? function (obj) { return typeof obj; }\n    : function (obj) {\n        return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype\n          ? "symbol"\n          : typeof obj;\n      };\n')))
    PyJs_LONG_742_()
    def PyJs_LONG_743_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function () {\n    var REACT_ELEMENT_TYPE = (typeof Symbol === "function" && Symbol.for && Symbol.for("react.element")) || 0xeac7;\n\n    return function createRawReactElement (type, props, key, children) {\n      var defaultProps = type && type.defaultProps;\n      var childrenLength = arguments.length - 3;\n\n      if (!props && childrenLength !== 0) {\n        // If we\'re going to assign props.children, we create a new object now\n        // to avoid mutating defaultProps.\n        props = {};\n      }\n      if (props && defaultProps) {\n        for (var propName in defaultProps) {\n          if (props[propName] === void 0) {\n            props[propName] = defaultProps[propName];\n          }\n        }\n      } else if (!props) {\n        props = defaultProps || {};\n      }\n\n      if (childrenLength === 1) {\n        props.children = children;\n      } else if (childrenLength > 1) {\n        var childArray = Array(childrenLength);\n        for (var i = 0; i < childrenLength; i++) {\n          childArray[i] = arguments[i + 3];\n        }\n        props.children = childArray;\n      }\n\n      return {\n        $$typeof: REACT_ELEMENT_TYPE,\n        type: type,\n        key: key === undefined ? null : \'\' + key,\n        ref: null,\n        props: props,\n        _owner: null,\n      };\n    };\n\n  })()\n'))
    var.get(u'helpers').put(u'jsx', PyJs_LONG_743_())
    def PyJs_LONG_744_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (iterable) {\n    if (typeof Symbol === "function") {\n      if (Symbol.asyncIterator) {\n        var method = iterable[Symbol.asyncIterator];\n        if (method != null) return method.call(iterable);\n      }\n      if (Symbol.iterator) {\n        return iterable[Symbol.iterator]();\n      }\n    }\n    throw new TypeError("Object is not async iterable");\n  })\n'))
    var.get(u'helpers').put(u'asyncIterator', PyJs_LONG_744_())
    def PyJs_LONG_745_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function () {\n    function AwaitValue(value) {\n      this.value = value;\n    }\n\n    function AsyncGenerator(gen) {\n      var front, back;\n\n      function send(key, arg) {\n        return new Promise(function (resolve, reject) {\n          var request = {\n            key: key,\n            arg: arg,\n            resolve: resolve,\n            reject: reject,\n            next: null\n          };\n\n          if (back) {\n            back = back.next = request;\n          } else {\n            front = back = request;\n            resume(key, arg);\n          }\n        });\n      }\n\n      function resume(key, arg) {\n        try {\n          var result = gen[key](arg)\n          var value = result.value;\n          if (value instanceof AwaitValue) {\n            Promise.resolve(value.value).then(\n              function (arg) { resume("next", arg); },\n              function (arg) { resume("throw", arg); });\n          } else {\n            settle(result.done ? "return" : "normal", result.value);\n          }\n        } catch (err) {\n          settle("throw", err);\n        }\n      }\n\n      function settle(type, value) {\n        switch (type) {\n          case "return":\n            front.resolve({ value: value, done: true });\n            break;\n          case "throw":\n            front.reject(value);\n            break;\n          default:\n            front.resolve({ value: value, done: false });\n            break;\n        }\n\n        front = front.next;\n        if (front) {\n          resume(front.key, front.arg);\n        } else {\n          back = null;\n        }\n      }\n\n      this._invoke = send;\n\n      // Hide "return" method if generator return is not supported\n      if (typeof gen.return !== "function") {\n        this.return = undefined;\n      }\n    }\n\n    if (typeof Symbol === "function" && Symbol.asyncIterator) {\n      AsyncGenerator.prototype[Symbol.asyncIterator] = function () { return this; };\n    }\n\n    AsyncGenerator.prototype.next = function (arg) { return this._invoke("next", arg); };\n    AsyncGenerator.prototype.throw = function (arg) { return this._invoke("throw", arg); };\n    AsyncGenerator.prototype.return = function (arg) { return this._invoke("return", arg); };\n\n    return {\n      wrap: function (fn) {\n        return function () {\n          return new AsyncGenerator(fn.apply(this, arguments));\n        };\n      },\n      await: function (value) {\n        return new AwaitValue(value);\n      }\n    };\n\n  })()\n'))
    var.get(u'helpers').put(u'asyncGenerator', PyJs_LONG_745_())
    def PyJs_LONG_746_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (inner, awaitWrap) {\n    var iter = {}, waiting = false;\n\n    function pump(key, value) {\n      waiting = true;\n      value = new Promise(function (resolve) { resolve(inner[key](value)); });\n      return { done: false, value: awaitWrap(value) };\n    };\n\n    if (typeof Symbol === "function" && Symbol.iterator) {\n      iter[Symbol.iterator] = function () { return this; };\n    }\n\n    iter.next = function (value) {\n      if (waiting) {\n        waiting = false;\n        return value;\n      }\n      return pump("next", value);\n    };\n\n    if (typeof inner.throw === "function") {\n      iter.throw = function (value) {\n        if (waiting) {\n          waiting = false;\n          throw value;\n        }\n        return pump("throw", value);\n      };\n    }\n\n    if (typeof inner.return === "function") {\n      iter.return = function (value) {\n        return pump("return", value);\n      };\n    }\n\n    return iter;\n  })\n'))
    var.get(u'helpers').put(u'asyncGeneratorDelegate', PyJs_LONG_746_())
    def PyJs_LONG_747_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (fn) {\n    return function () {\n      var gen = fn.apply(this, arguments);\n      return new Promise(function (resolve, reject) {\n        function step(key, arg) {\n          try {\n            var info = gen[key](arg);\n            var value = info.value;\n          } catch (error) {\n            reject(error);\n            return;\n          }\n\n          if (info.done) {\n            resolve(value);\n          } else {\n            return Promise.resolve(value).then(function (value) {\n              step("next", value);\n            }, function (err) {\n              step("throw", err);\n            });\n          }\n        }\n\n        return step("next");\n      });\n    };\n  })\n'))
    var.get(u'helpers').put(u'asyncToGenerator', PyJs_LONG_747_())
    var.get(u'helpers').put(u'classCallCheck', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (instance, Constructor) {\n    if (!(instance instanceof Constructor)) {\n      throw new TypeError("Cannot call a class as a function");\n    }\n  });\n')))
    def PyJs_LONG_748_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function() {\n    function defineProperties(target, props) {\n      for (var i = 0; i < props.length; i ++) {\n        var descriptor = props[i];\n        descriptor.enumerable = descriptor.enumerable || false;\n        descriptor.configurable = true;\n        if ("value" in descriptor) descriptor.writable = true;\n        Object.defineProperty(target, descriptor.key, descriptor);\n      }\n    }\n\n    return function (Constructor, protoProps, staticProps) {\n      if (protoProps) defineProperties(Constructor.prototype, protoProps);\n      if (staticProps) defineProperties(Constructor, staticProps);\n      return Constructor;\n    };\n  })()\n'))
    var.get(u'helpers').put(u'createClass', PyJs_LONG_748_())
    var.get(u'helpers').put(u'defineEnumerableProperties', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (obj, descs) {\n    for (var key in descs) {\n      var desc = descs[key];\n      desc.configurable = desc.enumerable = true;\n      if ("value" in desc) desc.writable = true;\n      Object.defineProperty(obj, key, desc);\n    }\n    return obj;\n  })\n')))
    def PyJs_LONG_749_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (obj, defaults) {\n    var keys = Object.getOwnPropertyNames(defaults);\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n      var value = Object.getOwnPropertyDescriptor(defaults, key);\n      if (value && value.configurable && obj[key] === undefined) {\n        Object.defineProperty(obj, key, value);\n      }\n    }\n    return obj;\n  })\n'))
    var.get(u'helpers').put(u'defaults', PyJs_LONG_749_())
    def PyJs_LONG_750_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (obj, key, value) {\n    // Shortcircuit the slow defineProperty path when possible.\n    // We are trying to avoid issues where setters defined on the\n    // prototype cause side effects under the fast path of simple\n    // assignment. By checking for existence of the property with\n    // the in operator, we can optimize most of this overhead away.\n    if (key in obj) {\n      Object.defineProperty(obj, key, {\n        value: value,\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      obj[key] = value;\n    }\n    return obj;\n  });\n'))
    var.get(u'helpers').put(u'defineProperty', PyJs_LONG_750_())
    def PyJs_LONG_751_(var=var):
        return var.get(u'helpers').put(u'extends', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  Object.assign || (function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  })\n')))
    PyJs_LONG_751_()
    def PyJs_LONG_752_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function get(object, property, receiver) {\n    if (object === null) object = Function.prototype;\n\n    var desc = Object.getOwnPropertyDescriptor(object, property);\n\n    if (desc === undefined) {\n      var parent = Object.getPrototypeOf(object);\n\n      if (parent === null) {\n        return undefined;\n      } else {\n        return get(parent, property, receiver);\n      }\n    } else if ("value" in desc) {\n      return desc.value;\n    } else {\n      var getter = desc.get;\n\n      if (getter === undefined) {\n        return undefined;\n      }\n\n      return getter.call(receiver);\n    }\n  });\n'))
    var.get(u'helpers').put(u'get', PyJs_LONG_752_())
    def PyJs_LONG_753_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (subClass, superClass) {\n    if (typeof superClass !== "function" && superClass !== null) {\n      throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);\n    }\n    subClass.prototype = Object.create(superClass && superClass.prototype, {\n      constructor: {\n        value: subClass,\n        enumerable: false,\n        writable: true,\n        configurable: true\n      }\n    });\n    if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n  })\n'))
    var.get(u'helpers').put(u'inherits', PyJs_LONG_753_())
    var.get(u'helpers').put(u'instanceof', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (left, right) {\n    if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {\n      return right[Symbol.hasInstance](left);\n    } else {\n      return left instanceof right;\n    }\n  });\n')))
    var.get(u'helpers').put(u'interopRequireDefault', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (obj) {\n    return obj && obj.__esModule ? obj : { default: obj };\n  })\n')))
    def PyJs_LONG_754_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (obj) {\n    if (obj && obj.__esModule) {\n      return obj;\n    } else {\n      var newObj = {};\n      if (obj != null) {\n        for (var key in obj) {\n          if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n        }\n      }\n      newObj.default = obj;\n      return newObj;\n    }\n  })\n'))
    var.get(u'helpers').put(u'interopRequireWildcard', PyJs_LONG_754_())
    var.get(u'helpers').put(u'newArrowCheck', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (innerThis, boundThis) {\n    if (innerThis !== boundThis) {\n      throw new TypeError("Cannot instantiate an arrow function");\n    }\n  });\n')))
    var.get(u'helpers').put(u'objectDestructuringEmpty', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (obj) {\n    if (obj == null) throw new TypeError("Cannot destructure undefined");\n  });\n')))
    var.get(u'helpers').put(u'objectWithoutProperties', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (obj, keys) {\n    var target = {};\n    for (var i in obj) {\n      if (keys.indexOf(i) >= 0) continue;\n      if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n      target[i] = obj[i];\n    }\n    return target;\n  })\n')))
    var.get(u'helpers').put(u'possibleConstructorReturn', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (self, call) {\n    if (!self) {\n      throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called");\n    }\n    return call && (typeof call === "object" || typeof call === "function") ? call : self;\n  });\n')))
    var.get(u'helpers').put(u'selfGlobal', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  typeof global === "undefined" ? self : global\n')))
    def PyJs_LONG_755_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function set(object, property, value, receiver) {\n    var desc = Object.getOwnPropertyDescriptor(object, property);\n\n    if (desc === undefined) {\n      var parent = Object.getPrototypeOf(object);\n\n      if (parent !== null) {\n        set(parent, property, value, receiver);\n      }\n    } else if ("value" in desc && desc.writable) {\n      desc.value = value;\n    } else {\n      var setter = desc.set;\n\n      if (setter !== undefined) {\n        setter.call(receiver, value);\n      }\n    }\n\n    return value;\n  });\n'))
    var.get(u'helpers').put(u'set', PyJs_LONG_755_())
    def PyJs_LONG_756_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function () {\n    // Broken out into a separate function to avoid deoptimizations due to the try/catch for the\n    // array iterator case.\n    function sliceIterator(arr, i) {\n      // this is an expanded form of `for...of` that properly supports abrupt completions of\n      // iterators etc. variable names have been minimised to reduce the size of this massive\n      // helper. sometimes spec compliancy is annoying :(\n      //\n      // _n = _iteratorNormalCompletion\n      // _d = _didIteratorError\n      // _e = _iteratorError\n      // _i = _iterator\n      // _s = _step\n\n      var _arr = [];\n      var _n = true;\n      var _d = false;\n      var _e = undefined;\n      try {\n        for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n          _arr.push(_s.value);\n          if (i && _arr.length === i) break;\n        }\n      } catch (err) {\n        _d = true;\n        _e = err;\n      } finally {\n        try {\n          if (!_n && _i["return"]) _i["return"]();\n        } finally {\n          if (_d) throw _e;\n        }\n      }\n      return _arr;\n    }\n\n    return function (arr, i) {\n      if (Array.isArray(arr)) {\n        return arr;\n      } else if (Symbol.iterator in Object(arr)) {\n        return sliceIterator(arr, i);\n      } else {\n        throw new TypeError("Invalid attempt to destructure non-iterable instance");\n      }\n    };\n  })();\n'))
    var.get(u'helpers').put(u'slicedToArray', PyJs_LONG_756_())
    def PyJs_LONG_757_(var=var):
        return PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (arr, i) {\n    if (Array.isArray(arr)) {\n      return arr;\n    } else if (Symbol.iterator in Object(arr)) {\n      var _arr = [];\n      for (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done;) {\n        _arr.push(_step.value);\n        if (i && _arr.length === i) break;\n      }\n      return _arr;\n    } else {\n      throw new TypeError("Invalid attempt to destructure non-iterable instance");\n    }\n  });\n'))
    var.get(u'helpers').put(u'slicedToArrayLoose', PyJs_LONG_757_())
    var.get(u'helpers').put(u'taggedTemplateLiteral', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (strings, raw) {\n    return Object.freeze(Object.defineProperties(strings, {\n        raw: { value: Object.freeze(raw) }\n    }));\n  });\n')))
    var.get(u'helpers').put(u'taggedTemplateLiteralLoose', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (strings, raw) {\n    strings.raw = raw;\n    return strings;\n  });\n')))
    var.get(u'helpers').put(u'temporalRef', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (val, name, undef) {\n    if (val === undef) {\n      throw new ReferenceError(name + " is not defined - temporal dead zone");\n    } else {\n      return val;\n    }\n  })\n')))
    var.get(u'helpers').put(u'temporalUndefined', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  ({})\n')))
    var.get(u'helpers').put(u'toArray', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (arr) {\n    return Array.isArray(arr) ? arr : Array.from(arr);\n  });\n')))
    var.get(u'helpers').put(u'toConsumableArray', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (arr) {\n    if (Array.isArray(arr)) {\n      for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n      return arr2;\n    } else {\n      return Array.from(arr);\n    }\n  });\n')))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_739_._set_name(u'anonymous')
PyJs_Object_758_ = Js({u'babel-template':Js(221.0)})
@Js
def PyJs_anonymous_759_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'get', u'_helpers2', u'require', u'list', u'_helpers', u'_keys2', u'_keys', u'module', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_760_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_760_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_get_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name', u'fn'])
        var.put(u'fn', var.get(u'_helpers2').get(u'default').get(var.get(u'name')))
        if var.get(u'fn').neg():
            PyJsTempException = JsToPyException(var.get(u'ReferenceError').create((Js(u'Unknown helper ')+var.get(u'name'))))
            raise PyJsTempException
        return var.get(u'fn')().get(u'expression')
    PyJsHoisted_get_.func_name = u'get'
    var.put(u'get', PyJsHoisted_get_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'list', var.get(u'undefined'))
    var.put(u'_keys', var.get(u'require')(Js(u'babel-runtime/core-js/object/keys')))
    var.put(u'_keys2', var.get(u'_interopRequireDefault')(var.get(u'_keys')))
    var.get(u'exports').put(u'get', var.get(u'get'))
    var.put(u'_helpers', var.get(u'require')(Js(u'./helpers')))
    var.put(u'_helpers2', var.get(u'_interopRequireDefault')(var.get(u'_helpers')))
    pass
    pass
    @Js
    def PyJs_anonymous_761_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name'])
        return PyJsStrictNeq(var.get(u'name'),Js(u'__esModule'))
    PyJs_anonymous_761_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_762_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name'])
        return (var.get(u'name').callprop(u'slice', Js(1.0)) if PyJsStrictEq(var.get(u'name').get(u'0'),Js(u'_')) else var.get(u'name'))
    PyJs_anonymous_762_._set_name(u'anonymous')
    var.put(u'list', var.get(u'exports').put(u'list', PyJsComma(Js(0.0),var.get(u'_keys2').get(u'default'))(var.get(u'_helpers2').get(u'default')).callprop(u'map', PyJs_anonymous_762_).callprop(u'filter', PyJs_anonymous_761_)))
    var.get(u'exports').put(u'default', var.get(u'get'))
PyJs_anonymous_759_._set_name(u'anonymous')
PyJs_Object_763_ = Js({u'./helpers':Js(55.0),u'babel-runtime/core-js/object/keys':Js(103.0)})
@Js
def PyJs_anonymous_764_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_stringify2', u'_interopRequireWildcard', u'get', u'require', u'parseArgs', u'MESSAGES', u'_util', u'util', u'_stringify', u'module', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_766_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_766_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_parseArgs_(args, this, arguments, var=var):
        var = Scope({u'this':this, u'args':args, u'arguments':arguments}, var)
        var.registers([u'args'])
        @Js
        def PyJs_anonymous_769_(val, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
            var.registers([u'val'])
            if ((var.get(u'val')!=var.get(u"null")) and var.get(u'val').get(u'inspect')):
                return var.get(u'val').callprop(u'inspect')
            else:
                try:
                    return (PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'val')) or (var.get(u'val')+Js(u'')))
                except PyJsException as PyJsTempException:
                    PyJsHolder_65_98138155 = var.own.get(u'e')
                    var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
                    try:
                        return var.get(u'util').callprop(u'inspect', var.get(u'val'))
                    finally:
                        if PyJsHolder_65_98138155 is not None:
                            var.own[u'e'] = PyJsHolder_65_98138155
                        else:
                            del var.own[u'e']
                        del PyJsHolder_65_98138155
        PyJs_anonymous_769_._set_name(u'anonymous')
        return var.get(u'args').callprop(u'map', PyJs_anonymous_769_)
    PyJsHoisted_parseArgs_.func_name = u'parseArgs'
    var.put(u'parseArgs', PyJsHoisted_parseArgs_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_765_ = Js({})
            var.put(u'newObj', PyJs_Object_765_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_get_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'_len', u'_key', u'args', u'key', u'msg'])
        #for JS loop
        var.put(u'_len', var.get(u'arguments').get(u'length'))
        var.put(u'args', var.get(u'Array')(((var.get(u'_len')-Js(1.0)) if (var.get(u'_len')>Js(1.0)) else Js(0.0))))
        var.put(u'_key', Js(1.0))
        while (var.get(u'_key')<var.get(u'_len')):
            try:
                var.get(u'args').put((var.get(u'_key')-Js(1.0)), var.get(u'arguments').get(var.get(u'_key')))
            finally:
                    (var.put(u'_key',Js(var.get(u'_key').to_number())+Js(1))-Js(1))
        var.put(u'msg', var.get(u'MESSAGES').get(var.get(u'key')))
        if var.get(u'msg').neg():
            PyJsTempException = JsToPyException(var.get(u'ReferenceError').create((Js(u'Unknown message ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'key')))))
            raise PyJsTempException
        var.put(u'args', var.get(u'parseArgs')(var.get(u'args')))
        @Js
        def PyJs_anonymous_768_(str, i, this, arguments, var=var):
            var = Scope({u'i':i, u'this':this, u'arguments':arguments, u'str':str}, var)
            var.registers([u'i', u'str'])
            return var.get(u'args').get((var.get(u'i')-Js(1.0)))
        PyJs_anonymous_768_._set_name(u'anonymous')
        return var.get(u'msg').callprop(u'replace', JsRegExp(u'/\\$(\\d+)/g'), PyJs_anonymous_768_)
    PyJsHoisted_get_.func_name = u'get'
    var.put(u'get', PyJsHoisted_get_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'MESSAGES', var.get(u'undefined'))
    var.put(u'_stringify', var.get(u'require')(Js(u'babel-runtime/core-js/json/stringify')))
    var.put(u'_stringify2', var.get(u'_interopRequireDefault')(var.get(u'_stringify')))
    var.get(u'exports').put(u'get', var.get(u'get'))
    var.get(u'exports').put(u'parseArgs', var.get(u'parseArgs'))
    var.put(u'_util', var.get(u'require')(Js(u'util')))
    var.put(u'util', var.get(u'_interopRequireWildcard')(var.get(u'_util')))
    pass
    pass
    PyJs_Object_767_ = Js({u'tailCallReassignmentDeopt':Js(u"Function reference has been reassigned, so it will probably be dereferenced, therefore we can't optimise this with confidence"),u'classesIllegalBareSuper':Js(u'Illegal use of bare super'),u'classesIllegalSuperCall':Js(u'Direct super call is illegal in non-constructor, use super.$1() instead'),u'scopeDuplicateDeclaration':Js(u'Duplicate declaration $1'),u'settersNoRest':Js(u"Setters aren't allowed to have a rest"),u'noAssignmentsInForHead':Js(u'No assignments allowed in for-in/of head'),u'expectedMemberExpressionOrIdentifier':Js(u'Expected type MemberExpression or Identifier'),u'invalidParentForThisNode':Js(u"We don't know how to handle this node within the current parent - please open an issue"),u'readOnly':Js(u'$1 is read-only'),u'unknownForHead':Js(u'Unknown node type $1 in ForStatement'),u'didYouMean':Js(u'Did you mean $1?'),u'codeGeneratorDeopt':Js(u'Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.'),u'missingTemplatesDirectory':Js(u'no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues'),u'unsupportedOutputType':Js(u'Unsupported output type $1'),u'illegalMethodName':Js(u'Illegal method name $1'),u'lostTrackNodePath':Js(u"We lost track of this node's position, likely because the AST was directly manipulated"),u'modulesIllegalExportName':Js(u'Illegal export $1'),u'modulesDuplicateDeclarations':Js(u'Duplicate module declarations with the same source but in different scopes'),u'undeclaredVariable':Js(u'Reference to undeclared variable $1'),u'undeclaredVariableType':Js(u'Referencing a type alias outside of a type annotation'),u'undeclaredVariableSuggestion':Js(u'Reference to undeclared variable $1 - did you mean $2?'),u'traverseNeedsParent':Js(u'You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a $1 node without passing scope and parentPath.'),u'traverseVerifyRootFunction':Js(u"You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?"),u'traverseVerifyVisitorProperty':Js(u'You passed `traverse()` a visitor object with the property $1 that has the invalid property $2'),u'traverseVerifyNodeType':Js(u"You gave us a visitor for the node type $1 but it's not a valid type"),u'pluginNotObject':Js(u'Plugin $2 specified in $1 was expected to return an object when invoked but returned $3'),u'pluginNotFunction':Js(u'Plugin $2 specified in $1 was expected to return a function but returned $3'),u'pluginUnknown':Js(u'Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4'),u'pluginInvalidProperty':Js(u'Plugin $2 specified in $1 provided an invalid property of $3')})
    var.put(u'MESSAGES', var.get(u'exports').put(u'MESSAGES', PyJs_Object_767_))
    pass
    pass
PyJs_anonymous_764_._set_name(u'anonymous')
PyJs_Object_770_ = Js({u'babel-runtime/core-js/json/stringify':Js(97.0),u'util':Js(534.0)})
@Js
def PyJs_anonymous_771_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_776_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_776_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    @Js
    def PyJs_anonymous_772_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'_ref', u'messages'])
        var.put(u'messages', var.get(u'_ref').get(u'messages'))
        @Js
        def PyJs_Scope_775_(_ref2, this, arguments, var=var):
            var = Scope({u'this':this, u'Scope':PyJs_Scope_775_, u'_ref2':_ref2, u'arguments':arguments}, var)
            var.registers([u'_isArray', u'_iterator', u'name', u'violation', u'_ref3', u'binding', u'_ref2', u'_i', u'scope'])
            var.put(u'scope', var.get(u'_ref2').get(u'scope'))
            for PyJsTemp in var.get(u'scope').get(u'bindings'):
                var.put(u'name', PyJsTemp)
                var.put(u'binding', var.get(u'scope').get(u'bindings').get(var.get(u'name')))
                if (PyJsStrictNeq(var.get(u'binding').get(u'kind'),Js(u'const')) and PyJsStrictNeq(var.get(u'binding').get(u'kind'),Js(u'module'))):
                    continue
                #for JS loop
                var.put(u'_iterator', var.get(u'binding').get(u'constantViolations'))
                var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
                var.put(u'_i', Js(0.0))
                var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
                while 1:
                    pass
                    if var.get(u'_isArray'):
                        if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                            break
                        var.put(u'_ref3', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                        if var.get(u'_i').get(u'done'):
                            break
                        var.put(u'_ref3', var.get(u'_i').get(u'value'))
                    var.put(u'violation', var.get(u'_ref3'))
                    PyJsTempException = JsToPyException(var.get(u'violation').callprop(u'buildCodeFrameError', var.get(u'messages').callprop(u'get', Js(u'readOnly'), var.get(u'name'))))
                    raise PyJsTempException
                
        PyJs_Scope_775_._set_name(u'Scope')
        PyJs_Object_774_ = Js({u'Scope':PyJs_Scope_775_})
        PyJs_Object_773_ = Js({u'visitor':PyJs_Object_774_})
        return PyJs_Object_773_
    PyJs_anonymous_772_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_772_)
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_771_._set_name(u'anonymous')
PyJs_Object_777_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0)})
@Js
def PyJs_anonymous_778_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_779_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'_ref', u't'])
        var.put(u't', var.get(u'_ref').get(u'types'))
        @Js
        def PyJs_ArrowFunctionExpression_782_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'ArrowFunctionExpression':PyJs_ArrowFunctionExpression_782_}, var)
            var.registers([u'node', u'path', u'state', u'boundThis'])
            if var.get(u'state').get(u'opts').get(u'spec'):
                var.put(u'node', var.get(u'path').get(u'node'))
                if var.get(u'node').get(u'shadow'):
                    return var.get('undefined')
                PyJs_Object_783_ = Js({u'this':Js(False)})
                var.get(u'node').put(u'shadow', PyJs_Object_783_)
                var.get(u'node').put(u'type', Js(u'FunctionExpression'))
                var.put(u'boundThis', var.get(u't').callprop(u'thisExpression'))
                var.get(u'boundThis').put(u'_forceShadow', var.get(u'path'))
                var.get(u'path').callprop(u'ensureBlock')
                var.get(u'path').callprop(u'get', Js(u'body')).callprop(u'unshiftContainer', Js(u'body'), var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'callExpression', var.get(u'state').callprop(u'addHelper', Js(u'newArrowCheck')), Js([var.get(u't').callprop(u'thisExpression'), var.get(u'boundThis')]))))
                var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u'node'), var.get(u't').callprop(u'identifier', Js(u'bind'))), Js([var.get(u't').callprop(u'thisExpression')])))
            else:
                var.get(u'path').callprop(u'arrowFunctionToShadowed')
        PyJs_ArrowFunctionExpression_782_._set_name(u'ArrowFunctionExpression')
        PyJs_Object_781_ = Js({u'ArrowFunctionExpression':PyJs_ArrowFunctionExpression_782_})
        PyJs_Object_780_ = Js({u'visitor':PyJs_Object_781_})
        return PyJs_Object_780_
    PyJs_anonymous_779_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_779_)
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_778_._set_name(u'anonymous')
PyJs_Object_784_ = Js({})
@Js
def PyJs_anonymous_785_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_792_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_792_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    @Js
    def PyJs_anonymous_786_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'_ref', u't', u'statementList'])
        @Js
        def PyJsHoisted_statementList_(key, path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'key':key}, var)
            var.registers([u'key', u'paths', u'_isArray', u'_iterator', u'func', u'_ref2', u'declar', u'_i', u'path', u'_path'])
            var.put(u'paths', var.get(u'path').callprop(u'get', var.get(u'key')))
            #for JS loop
            var.put(u'_iterator', var.get(u'paths'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i').get(u'value'))
                var.put(u'_path', var.get(u'_ref2'))
                var.put(u'func', var.get(u'_path').get(u'node'))
                if var.get(u'_path').callprop(u'isFunctionDeclaration').neg():
                    continue
                var.put(u'declar', var.get(u't').callprop(u'variableDeclaration', Js(u'let'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'func').get(u'id'), var.get(u't').callprop(u'toExpression', var.get(u'func')))])))
                var.get(u'declar').put(u'_blockHoist', Js(2.0))
                var.get(u'func').put(u'id', var.get(u"null"))
                var.get(u'_path').callprop(u'replaceWith', var.get(u'declar'))
            
        PyJsHoisted_statementList_.func_name = u'statementList'
        var.put(u'statementList', PyJsHoisted_statementList_)
        var.put(u't', var.get(u'_ref').get(u'types'))
        pass
        @Js
        def PyJs_BlockStatement_789_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'BlockStatement':PyJs_BlockStatement_789_}, var)
            var.registers([u'node', u'path', u'parent'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'parent', var.get(u'path').get(u'parent'))
            PyJs_Object_790_ = Js({u'body':var.get(u'node')})
            if (var.get(u't').callprop(u'isFunction', var.get(u'parent'), PyJs_Object_790_) or var.get(u't').callprop(u'isExportDeclaration', var.get(u'parent'))):
                return var.get('undefined')
            var.get(u'statementList')(Js(u'body'), var.get(u'path'))
        PyJs_BlockStatement_789_._set_name(u'BlockStatement')
        @Js
        def PyJs_SwitchCase_791_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'SwitchCase':PyJs_SwitchCase_791_, u'arguments':arguments}, var)
            var.registers([u'path'])
            var.get(u'statementList')(Js(u'consequent'), var.get(u'path'))
        PyJs_SwitchCase_791_._set_name(u'SwitchCase')
        PyJs_Object_788_ = Js({u'BlockStatement':PyJs_BlockStatement_789_,u'SwitchCase':PyJs_SwitchCase_791_})
        PyJs_Object_787_ = Js({u'visitor':PyJs_Object_788_})
        return PyJs_Object_787_
    PyJs_anonymous_786_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_786_)
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_785_._set_name(u'anonymous')
PyJs_Object_793_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0)})
@Js
def PyJs_anonymous_794_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_symbol2', u'continuationVisitor', u'loopLabelVisitor', u'_babelTemplate', u'module', u'letReferenceFunctionVisitor', u'isVar', u'_interopRequireDefault', u'loopNodeTo', u'_extend', u'_babelTraverse', u'convertBlockScopedToVar', u'_tdz', u'BlockScoping', u'ignoreBlock', u'hoistVarDeclarationsVisitor', u'_values2', u'_extend2', u'_create2', u'buildRetCheck', u'_classCallCheck3', u'_classCallCheck2', u'_create', u'exports', u'_babelTraverse2', u'_interopRequireWildcard', u'_babelTypes', u'_symbol', u'isBlockScoped', u'loopVisitor', u'require', u'_babelTemplate2', u't', u'_values', u'letReferenceBlockVisitor'])
    @Js
    def PyJsHoisted_convertBlockScopedToVar_(path, node, parent, scope, this, arguments, var=var):
        var = Scope({u'node':node, u'arguments':arguments, u'parent':parent, u'scope':scope, u'this':this, u'path':path}, var)
        var.registers([u'node', u'name', u'moveBindingsToParent', u'i', u'binding', u'ids', u'declar', u'parent', u'parentScope', u'path', u'scope'])
        var.put(u'moveBindingsToParent', (var.get(u'arguments').get(u'4') if ((var.get(u'arguments').get(u'length')>Js(4.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'4'),var.get(u'undefined'))) else Js(False)))
        if var.get(u'node').neg():
            var.put(u'node', var.get(u'path').get(u'node'))
        if var.get(u't').callprop(u'isFor', var.get(u'parent')).neg():
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'node').get(u'declarations').get(u'length')):
                try:
                    var.put(u'declar', var.get(u'node').get(u'declarations').get(var.get(u'i')))
                    var.get(u'declar').put(u'init', (var.get(u'declar').get(u'init') or var.get(u'scope').callprop(u'buildUndefinedNode')))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        var.get(u'node').put(var.get(u't').get(u'BLOCK_SCOPED_SYMBOL'), var.get(u'true'))
        var.get(u'node').put(u'kind', Js(u'var'))
        if var.get(u'moveBindingsToParent'):
            var.put(u'parentScope', var.get(u'scope').callprop(u'getFunctionParent'))
            var.put(u'ids', var.get(u'path').callprop(u'getBindingIdentifiers'))
            for PyJsTemp in var.get(u'ids'):
                var.put(u'name', PyJsTemp)
                var.put(u'binding', var.get(u'scope').callprop(u'getOwnBinding', var.get(u'name')))
                if var.get(u'binding'):
                    var.get(u'binding').put(u'kind', Js(u'var'))
                var.get(u'scope').callprop(u'moveBindingTo', var.get(u'name'), var.get(u'parentScope'))
    PyJsHoisted_convertBlockScopedToVar_.func_name = u'convertBlockScopedToVar'
    var.put(u'convertBlockScopedToVar', PyJsHoisted_convertBlockScopedToVar_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_802_ = Js({})
            var.put(u'newObj', PyJs_Object_802_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_ignoreBlock_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
        var.registers([u'path'])
        return (var.get(u't').callprop(u'isLoop', var.get(u'path').get(u'parent')) or var.get(u't').callprop(u'isCatchClause', var.get(u'path').get(u'parent')))
    PyJsHoisted_ignoreBlock_.func_name = u'ignoreBlock'
    var.put(u'ignoreBlock', PyJsHoisted_ignoreBlock_)
    @Js
    def PyJsHoisted_loopNodeTo_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u't').callprop(u'isBreakStatement', var.get(u'node')):
            return Js(u'break')
        else:
            if var.get(u't').callprop(u'isContinueStatement', var.get(u'node')):
                return Js(u'continue')
    PyJsHoisted_loopNodeTo_.func_name = u'loopNodeTo'
    var.put(u'loopNodeTo', PyJsHoisted_loopNodeTo_)
    @Js
    def PyJsHoisted_isVar_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        PyJs_Object_804_ = Js({u'kind':Js(u'var')})
        return (var.get(u't').callprop(u'isVariableDeclaration', var.get(u'node'), PyJs_Object_804_) and var.get(u'isBlockScoped')(var.get(u'node')).neg())
    PyJsHoisted_isVar_.func_name = u'isVar'
    var.put(u'isVar', PyJsHoisted_isVar_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_803_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_803_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_isBlockScoped_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u't').callprop(u'isVariableDeclaration', var.get(u'node')).neg():
            return Js(False)
        if var.get(u'node').get(var.get(u't').get(u'BLOCK_SCOPED_SYMBOL')):
            return var.get(u'true')
        if (PyJsStrictNeq(var.get(u'node').get(u'kind'),Js(u'let')) and PyJsStrictNeq(var.get(u'node').get(u'kind'),Js(u'const'))):
            return Js(False)
        return var.get(u'true')
    PyJsHoisted_isBlockScoped_.func_name = u'isBlockScoped'
    var.put(u'isBlockScoped', PyJsHoisted_isBlockScoped_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_symbol', var.get(u'require')(Js(u'babel-runtime/core-js/symbol')))
    var.put(u'_symbol2', var.get(u'_interopRequireDefault')(var.get(u'_symbol')))
    var.put(u'_create', var.get(u'require')(Js(u'babel-runtime/core-js/object/create')))
    var.put(u'_create2', var.get(u'_interopRequireDefault')(var.get(u'_create')))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    @Js
    def PyJs_anonymous_795_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_VariableDeclaration_798_(path, file, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'file':file, u'VariableDeclaration':PyJs_VariableDeclaration_798_}, var)
            var.registers([u'node', u'decl', u'parent', u'i', u'file', u'path', u'scope', u'nodes', u'assign'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'parent', var.get(u'path').get(u'parent'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            if var.get(u'isBlockScoped')(var.get(u'node')).neg():
                return var.get('undefined')
            var.get(u'convertBlockScopedToVar')(var.get(u'path'), var.get(u"null"), var.get(u'parent'), var.get(u'scope'), var.get(u'true'))
            if var.get(u'node').get(u'_tdzThis'):
                var.put(u'nodes', Js([var.get(u'node')]))
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'node').get(u'declarations').get(u'length')):
                    try:
                        var.put(u'decl', var.get(u'node').get(u'declarations').get(var.get(u'i')))
                        if var.get(u'decl').get(u'init'):
                            var.put(u'assign', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'decl').get(u'id'), var.get(u'decl').get(u'init')))
                            var.get(u'assign').put(u'_ignoreBlockScopingTDZ', var.get(u'true'))
                            var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u'assign')))
                        var.get(u'decl').put(u'init', var.get(u'file').callprop(u'addHelper', Js(u'temporalUndefined')))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                var.get(u'node').put(u'_blockHoist', Js(2.0))
                if var.get(u'path').callprop(u'isCompletionRecord'):
                    var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u'scope').callprop(u'buildUndefinedNode')))
                var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'nodes'))
        PyJs_VariableDeclaration_798_._set_name(u'VariableDeclaration')
        @Js
        def PyJs_Loop_799_(path, file, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'Loop':PyJs_Loop_799_, u'arguments':arguments, u'file':file}, var)
            var.registers([u'node', u'blockScoping', u'parent', u'replace', u'file', u'path', u'scope'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'parent', var.get(u'path').get(u'parent'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.get(u't').callprop(u'ensureBlock', var.get(u'node'))
            var.put(u'blockScoping', var.get(u'BlockScoping').create(var.get(u'path'), var.get(u'path').callprop(u'get', Js(u'body')), var.get(u'parent'), var.get(u'scope'), var.get(u'file')))
            var.put(u'replace', var.get(u'blockScoping').callprop(u'run'))
            if var.get(u'replace'):
                var.get(u'path').callprop(u'replaceWith', var.get(u'replace'))
        PyJs_Loop_799_._set_name(u'Loop')
        @Js
        def PyJs_CatchClause_800_(path, file, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'file':file, u'CatchClause':PyJs_CatchClause_800_}, var)
            var.registers([u'scope', u'blockScoping', u'file', u'parent', u'path'])
            var.put(u'parent', var.get(u'path').get(u'parent'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.put(u'blockScoping', var.get(u'BlockScoping').create(var.get(u"null"), var.get(u'path').callprop(u'get', Js(u'body')), var.get(u'parent'), var.get(u'scope'), var.get(u'file')))
            var.get(u'blockScoping').callprop(u'run')
        PyJs_CatchClause_800_._set_name(u'CatchClause')
        @Js
        def PyJs_BlockStatementSwitchStatementProgram_801_(path, file, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'BlockStatementSwitchStatementProgram':PyJs_BlockStatementSwitchStatementProgram_801_, u'arguments':arguments, u'file':file}, var)
            var.registers([u'path', u'blockScoping', u'file'])
            if var.get(u'ignoreBlock')(var.get(u'path')).neg():
                var.put(u'blockScoping', var.get(u'BlockScoping').create(var.get(u"null"), var.get(u'path'), var.get(u'path').get(u'parent'), var.get(u'path').get(u'scope'), var.get(u'file')))
                var.get(u'blockScoping').callprop(u'run')
        PyJs_BlockStatementSwitchStatementProgram_801_._set_name(u'BlockStatementSwitchStatementProgram')
        PyJs_Object_797_ = Js({u'VariableDeclaration':PyJs_VariableDeclaration_798_,u'Loop':PyJs_Loop_799_,u'CatchClause':PyJs_CatchClause_800_,u'BlockStatement|SwitchStatement|Program':PyJs_BlockStatementSwitchStatementProgram_801_})
        PyJs_Object_796_ = Js({u'visitor':PyJs_Object_797_})
        return PyJs_Object_796_
    PyJs_anonymous_795_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_795_)
    var.put(u'_babelTraverse', var.get(u'require')(Js(u'babel-traverse')))
    var.put(u'_babelTraverse2', var.get(u'_interopRequireDefault')(var.get(u'_babelTraverse')))
    var.put(u'_tdz', var.get(u'require')(Js(u'./tdz')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_values', var.get(u'require')(Js(u'lodash/values')))
    var.put(u'_values2', var.get(u'_interopRequireDefault')(var.get(u'_values')))
    var.put(u'_extend', var.get(u'require')(Js(u'lodash/extend')))
    var.put(u'_extend2', var.get(u'_interopRequireDefault')(var.get(u'_extend')))
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    var.put(u'_babelTemplate2', var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')))
    pass
    pass
    pass
    var.put(u'buildRetCheck', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  if (typeof RETURN === "object") return RETURN.v;\n')))
    pass
    pass
    pass
    @Js
    def PyJs_Function_806_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'Function':PyJs_Function_806_, u'arguments':arguments}, var)
        var.registers([u'path', u'state'])
        var.get(u'path').callprop(u'traverse', var.get(u'letReferenceFunctionVisitor'), var.get(u'state'))
        return var.get(u'path').callprop(u'skip')
    PyJs_Function_806_._set_name(u'Function')
    PyJs_Object_805_ = Js({u'Function':PyJs_Function_806_})
    var.put(u'letReferenceBlockVisitor', var.get(u'_babelTraverse2').get(u'default').get(u'visitors').callprop(u'merge', Js([PyJs_Object_805_, var.get(u'_tdz').get(u'visitor')])))
    @Js
    def PyJs_ReferencedIdentifier_808_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_808_, u'arguments':arguments}, var)
        var.registers([u'localBinding', u'path', u'state', u'ref'])
        var.put(u'ref', var.get(u'state').get(u'letReferences').get(var.get(u'path').get(u'node').get(u'name')))
        if var.get(u'ref').neg():
            return var.get('undefined')
        var.put(u'localBinding', var.get(u'path').get(u'scope').callprop(u'getBindingIdentifier', var.get(u'path').get(u'node').get(u'name')))
        if (var.get(u'localBinding') and PyJsStrictNeq(var.get(u'localBinding'),var.get(u'ref'))):
            return var.get('undefined')
        var.get(u'state').put(u'closurify', var.get(u'true'))
    PyJs_ReferencedIdentifier_808_._set_name(u'ReferencedIdentifier')
    PyJs_Object_807_ = Js({u'ReferencedIdentifier':PyJs_ReferencedIdentifier_808_})
    var.put(u'letReferenceFunctionVisitor', var.get(u'_babelTraverse2').get(u'default').get(u'visitors').callprop(u'merge', Js([PyJs_Object_807_, var.get(u'_tdz').get(u'visitor')])))
    @Js
    def PyJs_enter_810_(path, self, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'self':self, u'arguments':arguments, u'enter':PyJs_enter_810_}, var)
        var.registers([u'node', u'path', u'nodes', u'self', u'parent'])
        var.put(u'node', var.get(u'path').get(u'node'))
        var.put(u'parent', var.get(u'path').get(u'parent'))
        if var.get(u'path').callprop(u'isForStatement'):
            if var.get(u'isVar')(var.get(u'node').get(u'init'), var.get(u'node')):
                var.put(u'nodes', var.get(u'self').callprop(u'pushDeclar', var.get(u'node').get(u'init')))
                if PyJsStrictEq(var.get(u'nodes').get(u'length'),Js(1.0)):
                    var.get(u'node').put(u'init', var.get(u'nodes').get(u'0'))
                else:
                    var.get(u'node').put(u'init', var.get(u't').callprop(u'sequenceExpression', var.get(u'nodes')))
        else:
            if var.get(u'path').callprop(u'isFor'):
                if var.get(u'isVar')(var.get(u'node').get(u'left'), var.get(u'node')):
                    var.get(u'self').callprop(u'pushDeclar', var.get(u'node').get(u'left'))
                    var.get(u'node').put(u'left', var.get(u'node').get(u'left').get(u'declarations').get(u'0').get(u'id'))
            else:
                if var.get(u'isVar')(var.get(u'node'), var.get(u'parent')):
                    @Js
                    def PyJs_anonymous_811_(expr, this, arguments, var=var):
                        var = Scope({u'this':this, u'expr':expr, u'arguments':arguments}, var)
                        var.registers([u'expr'])
                        return var.get(u't').callprop(u'expressionStatement', var.get(u'expr'))
                    PyJs_anonymous_811_._set_name(u'anonymous')
                    var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'self').callprop(u'pushDeclar', var.get(u'node')).callprop(u'map', PyJs_anonymous_811_))
                else:
                    if var.get(u'path').callprop(u'isFunction'):
                        return var.get(u'path').callprop(u'skip')
    PyJs_enter_810_._set_name(u'enter')
    PyJs_Object_809_ = Js({u'enter':PyJs_enter_810_})
    var.put(u'hoistVarDeclarationsVisitor', PyJs_Object_809_)
    @Js
    def PyJs_LabeledStatement_813_(_ref, state, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'LabeledStatement':PyJs_LabeledStatement_813_, u'state':state, u'arguments':arguments}, var)
        var.registers([u'node', u'_ref', u'state'])
        var.put(u'node', var.get(u'_ref').get(u'node'))
        var.get(u'state').get(u'innerLabels').callprop(u'push', var.get(u'node').get(u'label').get(u'name'))
    PyJs_LabeledStatement_813_._set_name(u'LabeledStatement')
    PyJs_Object_812_ = Js({u'LabeledStatement':PyJs_LabeledStatement_813_})
    var.put(u'loopLabelVisitor', PyJs_Object_812_)
    @Js
    def PyJs_enter_815_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'enter':PyJs_enter_815_}, var)
        var.registers([u'path', u'bindings', u'name', u'state'])
        if (var.get(u'path').callprop(u'isAssignmentExpression') or var.get(u'path').callprop(u'isUpdateExpression')):
            var.put(u'bindings', var.get(u'path').callprop(u'getBindingIdentifiers'))
            for PyJsTemp in var.get(u'bindings'):
                var.put(u'name', PyJsTemp)
                if PyJsStrictNeq(var.get(u'state').get(u'outsideReferences').get(var.get(u'name')),var.get(u'path').get(u'scope').callprop(u'getBindingIdentifier', var.get(u'name'))):
                    continue
                var.get(u'state').get(u'reassignments').put(var.get(u'name'), var.get(u'true'))
    PyJs_enter_815_._set_name(u'enter')
    PyJs_Object_814_ = Js({u'enter':PyJs_enter_815_})
    var.put(u'continuationVisitor', PyJs_Object_814_)
    pass
    @Js
    def PyJs_Loop_817_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'Loop':PyJs_Loop_817_}, var)
        var.registers([u'oldIgnoreLabeless', u'state', u'path'])
        var.put(u'oldIgnoreLabeless', var.get(u'state').get(u'ignoreLabeless'))
        var.get(u'state').put(u'ignoreLabeless', var.get(u'true'))
        var.get(u'path').callprop(u'traverse', var.get(u'loopVisitor'), var.get(u'state'))
        var.get(u'state').put(u'ignoreLabeless', var.get(u'oldIgnoreLabeless'))
        var.get(u'path').callprop(u'skip')
    PyJs_Loop_817_._set_name(u'Loop')
    @Js
    def PyJs_Function_818_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'Function':PyJs_Function_818_, u'arguments':arguments}, var)
        var.registers([u'path'])
        var.get(u'path').callprop(u'skip')
    PyJs_Function_818_._set_name(u'Function')
    @Js
    def PyJs_SwitchCase_819_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'SwitchCase':PyJs_SwitchCase_819_}, var)
        var.registers([u'oldInSwitchCase', u'state', u'path'])
        var.put(u'oldInSwitchCase', var.get(u'state').get(u'inSwitchCase'))
        var.get(u'state').put(u'inSwitchCase', var.get(u'true'))
        var.get(u'path').callprop(u'traverse', var.get(u'loopVisitor'), var.get(u'state'))
        var.get(u'state').put(u'inSwitchCase', var.get(u'oldInSwitchCase'))
        var.get(u'path').callprop(u'skip')
    PyJs_SwitchCase_819_._set_name(u'SwitchCase')
    @Js
    def PyJs_BreakStatementContinueStatementReturnStatement_820_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'BreakStatementContinueStatementReturnStatement':PyJs_BreakStatementContinueStatementReturnStatement_820_}, var)
        var.registers([u'node', u'parent', u'loopText', u'replace', u'state', u'path', u'scope'])
        var.put(u'node', var.get(u'path').get(u'node'))
        var.put(u'parent', var.get(u'path').get(u'parent'))
        var.put(u'scope', var.get(u'path').get(u'scope'))
        if var.get(u'node').get(var.get(u"this").get(u'LOOP_IGNORE')):
            return var.get('undefined')
        var.put(u'replace', PyJsComma(Js(0.0), Js(None)))
        var.put(u'loopText', var.get(u'loopNodeTo')(var.get(u'node')))
        if var.get(u'loopText'):
            if var.get(u'node').get(u'label'):
                if (var.get(u'state').get(u'innerLabels').callprop(u'indexOf', var.get(u'node').get(u'label').get(u'name'))>=Js(0.0)):
                    return var.get('undefined')
                var.put(u'loopText', ((var.get(u'loopText')+Js(u'|'))+var.get(u'node').get(u'label').get(u'name')))
            else:
                if var.get(u'state').get(u'ignoreLabeless'):
                    return var.get('undefined')
                if var.get(u'state').get(u'inSwitchCase'):
                    return var.get('undefined')
                if (var.get(u't').callprop(u'isBreakStatement', var.get(u'node')) and var.get(u't').callprop(u'isSwitchCase', var.get(u'parent'))):
                    return var.get('undefined')
            var.get(u'state').put(u'hasBreakContinue', var.get(u'true'))
            var.get(u'state').get(u'map').put(var.get(u'loopText'), var.get(u'node'))
            var.put(u'replace', var.get(u't').callprop(u'stringLiteral', var.get(u'loopText')))
        if var.get(u'path').callprop(u'isReturnStatement'):
            var.get(u'state').put(u'hasReturn', var.get(u'true'))
            var.put(u'replace', var.get(u't').callprop(u'objectExpression', Js([var.get(u't').callprop(u'objectProperty', var.get(u't').callprop(u'identifier', Js(u'v')), (var.get(u'node').get(u'argument') or var.get(u'scope').callprop(u'buildUndefinedNode')))])))
        if var.get(u'replace'):
            var.put(u'replace', var.get(u't').callprop(u'returnStatement', var.get(u'replace')))
            var.get(u'replace').put(var.get(u"this").get(u'LOOP_IGNORE'), var.get(u'true'))
            var.get(u'path').callprop(u'skip')
            var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'inherits', var.get(u'replace'), var.get(u'node')))
    PyJs_BreakStatementContinueStatementReturnStatement_820_._set_name(u'BreakStatementContinueStatementReturnStatement')
    PyJs_Object_816_ = Js({u'Loop':PyJs_Loop_817_,u'Function':PyJs_Function_818_,u'SwitchCase':PyJs_SwitchCase_819_,u'BreakStatement|ContinueStatement|ReturnStatement':PyJs_BreakStatementContinueStatementReturnStatement_820_})
    var.put(u'loopVisitor', PyJs_Object_816_)
    @Js
    def PyJs_anonymous_821_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'BlockScoping'])
        @Js
        def PyJsHoisted_BlockScoping_(loopPath, blockPath, parent, scope, file, this, arguments, var=var):
            var = Scope({u'arguments':arguments, u'parent':parent, u'file':file, u'blockPath':blockPath, u'this':this, u'scope':scope, u'loopPath':loopPath}, var)
            var.registers([u'scope', u'blockPath', u'file', u'parent', u'loopPath'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'BlockScoping'))
            var.get(u"this").put(u'parent', var.get(u'parent'))
            var.get(u"this").put(u'scope', var.get(u'scope'))
            var.get(u"this").put(u'file', var.get(u'file'))
            var.get(u"this").put(u'blockPath', var.get(u'blockPath'))
            var.get(u"this").put(u'block', var.get(u'blockPath').get(u'node'))
            var.get(u"this").put(u'outsideLetReferences', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.get(u"this").put(u'hasLetReferences', Js(False))
            var.get(u"this").put(u'letReferences', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.get(u"this").put(u'body', Js([]))
            if var.get(u'loopPath'):
                var.get(u"this").put(u'loopParent', var.get(u'loopPath').get(u'parent'))
                var.get(u"this").put(u'loopLabel', (var.get(u't').callprop(u'isLabeledStatement', var.get(u"this").get(u'loopParent')) and var.get(u"this").get(u'loopParent').get(u'label')))
                var.get(u"this").put(u'loopPath', var.get(u'loopPath'))
                var.get(u"this").put(u'loop', var.get(u'loopPath').get(u'node'))
        PyJsHoisted_BlockScoping_.func_name = u'BlockScoping'
        var.put(u'BlockScoping', PyJsHoisted_BlockScoping_)
        pass
        @Js
        def PyJs_run_822_(this, arguments, var=var):
            var = Scope({u'this':this, u'run':PyJs_run_822_, u'arguments':arguments}, var)
            var.registers([u'needsClosure', u'block'])
            var.put(u'block', var.get(u"this").get(u'block'))
            if var.get(u'block').get(u'_letDone'):
                return var.get('undefined')
            var.get(u'block').put(u'_letDone', var.get(u'true'))
            var.put(u'needsClosure', var.get(u"this").callprop(u'getLetReferences'))
            if (var.get(u't').callprop(u'isFunction', var.get(u"this").get(u'parent')) or var.get(u't').callprop(u'isProgram', var.get(u"this").get(u'block'))):
                var.get(u"this").callprop(u'updateScopeInfo')
                return var.get('undefined')
            if var.get(u"this").get(u'hasLetReferences').neg():
                return var.get('undefined')
            if var.get(u'needsClosure'):
                var.get(u"this").callprop(u'wrapClosure')
            else:
                var.get(u"this").callprop(u'remap')
            var.get(u"this").callprop(u'updateScopeInfo')
            if (var.get(u"this").get(u'loopLabel') and var.get(u't').callprop(u'isLabeledStatement', var.get(u"this").get(u'loopParent')).neg()):
                return var.get(u't').callprop(u'labeledStatement', var.get(u"this").get(u'loopLabel'), var.get(u"this").get(u'loop'))
        PyJs_run_822_._set_name(u'run')
        var.get(u'BlockScoping').get(u'prototype').put(u'run', PyJs_run_822_)
        @Js
        def PyJs_updateScopeInfo_823_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'updateScopeInfo':PyJs_updateScopeInfo_823_}, var)
            var.registers([u'letRefs', u'binding', u'key', u'parentScope', u'scope', u'ref'])
            var.put(u'scope', var.get(u"this").get(u'scope'))
            var.put(u'parentScope', var.get(u'scope').callprop(u'getFunctionParent'))
            var.put(u'letRefs', var.get(u"this").get(u'letReferences'))
            for PyJsTemp in var.get(u'letRefs'):
                var.put(u'key', PyJsTemp)
                var.put(u'ref', var.get(u'letRefs').get(var.get(u'key')))
                var.put(u'binding', var.get(u'scope').callprop(u'getBinding', var.get(u'ref').get(u'name')))
                if var.get(u'binding').neg():
                    continue
                if (PyJsStrictEq(var.get(u'binding').get(u'kind'),Js(u'let')) or PyJsStrictEq(var.get(u'binding').get(u'kind'),Js(u'const'))):
                    var.get(u'binding').put(u'kind', Js(u'var'))
                    var.get(u'scope').callprop(u'moveBindingTo', var.get(u'ref').get(u'name'), var.get(u'parentScope'))
        PyJs_updateScopeInfo_823_._set_name(u'updateScopeInfo')
        var.get(u'BlockScoping').get(u'prototype').put(u'updateScopeInfo', PyJs_updateScopeInfo_823_)
        @Js
        def PyJs_remap_824_(this, arguments, var=var):
            var = Scope({u'this':this, u'remap':PyJs_remap_824_, u'arguments':arguments}, var)
            var.registers([u'scope', u'ref', u'key', u'letRefs'])
            var.put(u'letRefs', var.get(u"this").get(u'letReferences'))
            var.put(u'scope', var.get(u"this").get(u'scope'))
            for PyJsTemp in var.get(u'letRefs'):
                var.put(u'key', PyJsTemp)
                var.put(u'ref', var.get(u'letRefs').get(var.get(u'key')))
                if (var.get(u'scope').callprop(u'parentHasBinding', var.get(u'key')) or var.get(u'scope').callprop(u'hasGlobal', var.get(u'key'))):
                    if var.get(u'scope').callprop(u'hasOwnBinding', var.get(u'key')):
                        var.get(u'scope').callprop(u'rename', var.get(u'ref').get(u'name'))
                    if var.get(u"this").get(u'blockPath').get(u'scope').callprop(u'hasOwnBinding', var.get(u'key')):
                        var.get(u"this").get(u'blockPath').get(u'scope').callprop(u'rename', var.get(u'ref').get(u'name'))
        PyJs_remap_824_._set_name(u'remap')
        var.get(u'BlockScoping').get(u'prototype').put(u'remap', PyJs_remap_824_)
        @Js
        def PyJs_wrapClosure_825_(this, arguments, var=var):
            var = Scope({u'this':this, u'wrapClosure':PyJs_wrapClosure_825_, u'arguments':arguments}, var)
            var.registers([u'hasYield', u'name', u'call', u'args', u'hasAsync', u'ret', u'params', u'fn', u'outsideRefs', u'isSwitch', u'ref', u'id', u'block'])
            var.put(u'block', var.get(u"this").get(u'block'))
            var.put(u'outsideRefs', var.get(u"this").get(u'outsideLetReferences'))
            if var.get(u"this").get(u'loop'):
                for PyJsTemp in var.get(u'outsideRefs'):
                    var.put(u'name', PyJsTemp)
                    var.put(u'id', var.get(u'outsideRefs').get(var.get(u'name')))
                    if (var.get(u"this").get(u'scope').callprop(u'hasGlobal', var.get(u'id').get(u'name')) or var.get(u"this").get(u'scope').callprop(u'parentHasBinding', var.get(u'id').get(u'name'))):
                        var.get(u'outsideRefs').delete(var.get(u'id').get(u'name'))
                        var.get(u"this").get(u'letReferences').delete(var.get(u'id').get(u'name'))
                        var.get(u"this").get(u'scope').callprop(u'rename', var.get(u'id').get(u'name'))
                        var.get(u"this").get(u'letReferences').put(var.get(u'id').get(u'name'), var.get(u'id'))
                        var.get(u'outsideRefs').put(var.get(u'id').get(u'name'), var.get(u'id'))
            var.get(u"this").put(u'has', var.get(u"this").callprop(u'checkLoop'))
            var.get(u"this").callprop(u'hoistVarDeclarations')
            var.put(u'params', PyJsComma(Js(0.0),var.get(u'_values2').get(u'default'))(var.get(u'outsideRefs')))
            var.put(u'args', PyJsComma(Js(0.0),var.get(u'_values2').get(u'default'))(var.get(u'outsideRefs')))
            var.put(u'isSwitch', var.get(u"this").get(u'blockPath').callprop(u'isSwitchStatement'))
            var.put(u'fn', var.get(u't').callprop(u'functionExpression', var.get(u"null"), var.get(u'params'), var.get(u't').callprop(u'blockStatement', (Js([var.get(u'block')]) if var.get(u'isSwitch') else var.get(u'block').get(u'body')))))
            var.get(u'fn').put(u'shadow', var.get(u'true'))
            var.get(u"this").callprop(u'addContinuations', var.get(u'fn'))
            var.put(u'ref', var.get(u'fn'))
            if var.get(u"this").get(u'loop'):
                var.put(u'ref', var.get(u"this").get(u'scope').callprop(u'generateUidIdentifier', Js(u'loop')))
                var.get(u"this").get(u'loopPath').callprop(u'insertBefore', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'ref'), var.get(u'fn'))])))
            var.put(u'call', var.get(u't').callprop(u'callExpression', var.get(u'ref'), var.get(u'args')))
            var.put(u'ret', var.get(u"this").get(u'scope').callprop(u'generateUidIdentifier', Js(u'ret')))
            var.put(u'hasYield', var.get(u'_babelTraverse2').get(u'default').callprop(u'hasType', var.get(u'fn').get(u'body'), var.get(u"this").get(u'scope'), Js(u'YieldExpression'), var.get(u't').get(u'FUNCTION_TYPES')))
            if var.get(u'hasYield'):
                var.get(u'fn').put(u'generator', var.get(u'true'))
                var.put(u'call', var.get(u't').callprop(u'yieldExpression', var.get(u'call'), var.get(u'true')))
            var.put(u'hasAsync', var.get(u'_babelTraverse2').get(u'default').callprop(u'hasType', var.get(u'fn').get(u'body'), var.get(u"this").get(u'scope'), Js(u'AwaitExpression'), var.get(u't').get(u'FUNCTION_TYPES')))
            if var.get(u'hasAsync'):
                var.get(u'fn').put(u'async', var.get(u'true'))
                var.put(u'call', var.get(u't').callprop(u'awaitExpression', var.get(u'call')))
            var.get(u"this").callprop(u'buildClosure', var.get(u'ret'), var.get(u'call'))
            if var.get(u'isSwitch'):
                var.get(u"this").get(u'blockPath').callprop(u'replaceWithMultiple', var.get(u"this").get(u'body'))
            else:
                var.get(u'block').put(u'body', var.get(u"this").get(u'body'))
        PyJs_wrapClosure_825_._set_name(u'wrapClosure')
        var.get(u'BlockScoping').get(u'prototype').put(u'wrapClosure', PyJs_wrapClosure_825_)
        @Js
        def PyJs_buildClosure_826_(ret, call, this, arguments, var=var):
            var = Scope({u'this':this, u'buildClosure':PyJs_buildClosure_826_, u'call':call, u'arguments':arguments, u'ret':ret}, var)
            var.registers([u'has', u'call', u'ret'])
            var.put(u'has', var.get(u"this").get(u'has'))
            if (var.get(u'has').get(u'hasReturn') or var.get(u'has').get(u'hasBreakContinue')):
                var.get(u"this").callprop(u'buildHas', var.get(u'ret'), var.get(u'call'))
            else:
                var.get(u"this").get(u'body').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u'call')))
        PyJs_buildClosure_826_._set_name(u'buildClosure')
        var.get(u'BlockScoping').get(u'prototype').put(u'buildClosure', PyJs_buildClosure_826_)
        @Js
        def PyJs_addContinuations_827_(fn, this, arguments, var=var):
            var = Scope({u'this':this, u'addContinuations':PyJs_addContinuations_827_, u'arguments':arguments, u'fn':fn}, var)
            var.registers([u'i', u'state', u'newParam', u'param', u'fn'])
            PyJs_Object_829_ = Js({})
            PyJs_Object_828_ = Js({u'reassignments':PyJs_Object_829_,u'outsideReferences':var.get(u"this").get(u'outsideLetReferences')})
            var.put(u'state', PyJs_Object_828_)
            var.get(u"this").get(u'scope').callprop(u'traverse', var.get(u'fn'), var.get(u'continuationVisitor'), var.get(u'state'))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'fn').get(u'params').get(u'length')):
                try:
                    var.put(u'param', var.get(u'fn').get(u'params').get(var.get(u'i')))
                    if var.get(u'state').get(u'reassignments').get(var.get(u'param').get(u'name')).neg():
                        continue
                    var.put(u'newParam', var.get(u"this").get(u'scope').callprop(u'generateUidIdentifier', var.get(u'param').get(u'name')))
                    var.get(u'fn').get(u'params').put(var.get(u'i'), var.get(u'newParam'))
                    var.get(u"this").get(u'scope').callprop(u'rename', var.get(u'param').get(u'name'), var.get(u'newParam').get(u'name'), var.get(u'fn'))
                    var.get(u'fn').get(u'body').get(u'body').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'param'), var.get(u'newParam'))))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        PyJs_addContinuations_827_._set_name(u'addContinuations')
        var.get(u'BlockScoping').get(u'prototype').put(u'addContinuations', PyJs_addContinuations_827_)
        @Js
        def PyJs_getLetReferences_830_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'getLetReferences':PyJs_getLetReferences_830_}, var)
            var.registers([u'_this', u'state', u'i', u'_i2', u'j', u'declarPath', u'declarators', u'keys', u'init', u'declar', u'addDeclarationsFromChild', u'_i', u'consequents', u'_declarPath', u'_declar', u'block'])
            var.put(u'_this', var.get(u"this"))
            var.put(u'block', var.get(u"this").get(u'block'))
            var.put(u'declarators', Js([]))
            if var.get(u"this").get(u'loop'):
                var.put(u'init', (var.get(u"this").get(u'loop').get(u'left') or var.get(u"this").get(u'loop').get(u'init')))
                if var.get(u'isBlockScoped')(var.get(u'init')):
                    var.get(u'declarators').callprop(u'push', var.get(u'init'))
                    PyJsComma(Js(0.0),var.get(u'_extend2').get(u'default'))(var.get(u"this").get(u'outsideLetReferences'), var.get(u't').callprop(u'getBindingIdentifiers', var.get(u'init')))
            @Js
            def PyJs_addDeclarationsFromChild_831_(path, node, this, arguments, var=var):
                var = Scope({u'node':node, u'path':path, u'this':this, u'arguments':arguments, u'addDeclarationsFromChild':PyJs_addDeclarationsFromChild_831_}, var)
                var.registers([u'node', u'path'])
                var.put(u'node', (var.get(u'node') or var.get(u'path').get(u'node')))
                if ((var.get(u't').callprop(u'isClassDeclaration', var.get(u'node')) or var.get(u't').callprop(u'isFunctionDeclaration', var.get(u'node'))) or var.get(u'isBlockScoped')(var.get(u'node'))):
                    if var.get(u'isBlockScoped')(var.get(u'node')):
                        var.get(u'convertBlockScopedToVar')(var.get(u'path'), var.get(u'node'), var.get(u'block'), var.get(u'_this').get(u'scope'))
                    var.put(u'declarators', var.get(u'declarators').callprop(u'concat', (var.get(u'node').get(u'declarations') or var.get(u'node'))))
                if var.get(u't').callprop(u'isLabeledStatement', var.get(u'node')):
                    var.get(u'addDeclarationsFromChild')(var.get(u'path').callprop(u'get', Js(u'body')), var.get(u'node').get(u'body'))
            PyJs_addDeclarationsFromChild_831_._set_name(u'addDeclarationsFromChild')
            var.put(u'addDeclarationsFromChild', PyJs_addDeclarationsFromChild_831_)
            if var.get(u'block').get(u'body'):
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'block').get(u'body').get(u'length')):
                    try:
                        var.put(u'declarPath', var.get(u"this").get(u'blockPath').callprop(u'get', Js(u'body')).get(var.get(u'i')))
                        var.get(u'addDeclarationsFromChild')(var.get(u'declarPath'))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            if var.get(u'block').get(u'cases'):
                #for JS loop
                var.put(u'_i', Js(0.0))
                while (var.get(u'_i')<var.get(u'block').get(u'cases').get(u'length')):
                    try:
                        var.put(u'consequents', var.get(u'block').get(u'cases').get(var.get(u'_i')).get(u'consequent'))
                        #for JS loop
                        var.put(u'j', Js(0.0))
                        while (var.get(u'j')<var.get(u'consequents').get(u'length')):
                            try:
                                var.put(u'_declarPath', var.get(u"this").get(u'blockPath').callprop(u'get', Js(u'cases')).get(var.get(u'_i')))
                                var.put(u'declar', var.get(u'consequents').get(var.get(u'j')))
                                var.get(u'addDeclarationsFromChild')(var.get(u'_declarPath'), var.get(u'declar'))
                            finally:
                                    (var.put(u'j',Js(var.get(u'j').to_number())+Js(1))-Js(1))
                    finally:
                            (var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))
            #for JS loop
            var.put(u'_i2', Js(0.0))
            while (var.get(u'_i2')<var.get(u'declarators').get(u'length')):
                try:
                    var.put(u'_declar', var.get(u'declarators').get(var.get(u'_i2')))
                    var.put(u'keys', var.get(u't').callprop(u'getBindingIdentifiers', var.get(u'_declar')))
                    PyJsComma(Js(0.0),var.get(u'_extend2').get(u'default'))(var.get(u"this").get(u'letReferences'), var.get(u'keys'))
                    var.get(u"this").put(u'hasLetReferences', var.get(u'true'))
                finally:
                        (var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))
            if var.get(u"this").get(u'hasLetReferences').neg():
                return var.get('undefined')
            PyJs_Object_832_ = Js({u'letReferences':var.get(u"this").get(u'letReferences'),u'closurify':Js(False),u'file':var.get(u"this").get(u'file')})
            var.put(u'state', PyJs_Object_832_)
            var.get(u"this").get(u'blockPath').callprop(u'traverse', var.get(u'letReferenceBlockVisitor'), var.get(u'state'))
            return var.get(u'state').get(u'closurify')
        PyJs_getLetReferences_830_._set_name(u'getLetReferences')
        var.get(u'BlockScoping').get(u'prototype').put(u'getLetReferences', PyJs_getLetReferences_830_)
        @Js
        def PyJs_checkLoop_833_(this, arguments, var=var):
            var = Scope({u'this':this, u'checkLoop':PyJs_checkLoop_833_, u'arguments':arguments}, var)
            var.registers([u'state'])
            PyJs_Object_835_ = Js({})
            PyJs_Object_834_ = Js({u'hasBreakContinue':Js(False),u'ignoreLabeless':Js(False),u'inSwitchCase':Js(False),u'innerLabels':Js([]),u'hasReturn':Js(False),u'isLoop':var.get(u"this").get(u'loop').neg().neg(),u'map':PyJs_Object_835_,u'LOOP_IGNORE':PyJsComma(Js(0.0),var.get(u'_symbol2').get(u'default'))()})
            var.put(u'state', PyJs_Object_834_)
            var.get(u"this").get(u'blockPath').callprop(u'traverse', var.get(u'loopLabelVisitor'), var.get(u'state'))
            var.get(u"this").get(u'blockPath').callprop(u'traverse', var.get(u'loopVisitor'), var.get(u'state'))
            return var.get(u'state')
        PyJs_checkLoop_833_._set_name(u'checkLoop')
        var.get(u'BlockScoping').get(u'prototype').put(u'checkLoop', PyJs_checkLoop_833_)
        @Js
        def PyJs_hoistVarDeclarations_836_(this, arguments, var=var):
            var = Scope({u'this':this, u'hoistVarDeclarations':PyJs_hoistVarDeclarations_836_, u'arguments':arguments}, var)
            var.registers([])
            var.get(u"this").get(u'blockPath').callprop(u'traverse', var.get(u'hoistVarDeclarationsVisitor'), var.get(u"this"))
        PyJs_hoistVarDeclarations_836_._set_name(u'hoistVarDeclarations')
        var.get(u'BlockScoping').get(u'prototype').put(u'hoistVarDeclarations', PyJs_hoistVarDeclarations_836_)
        @Js
        def PyJs_pushDeclar_837_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'pushDeclar':PyJs_pushDeclar_837_, u'arguments':arguments}, var)
            var.registers([u'node', u'name', u'i', u'expr', u'declars', u'replace', u'declar', u'names'])
            var.put(u'declars', Js([]))
            var.put(u'names', var.get(u't').callprop(u'getBindingIdentifiers', var.get(u'node')))
            for PyJsTemp in var.get(u'names'):
                var.put(u'name', PyJsTemp)
                var.get(u'declars').callprop(u'push', var.get(u't').callprop(u'variableDeclarator', var.get(u'names').get(var.get(u'name'))))
            var.get(u"this").get(u'body').callprop(u'push', var.get(u't').callprop(u'variableDeclaration', var.get(u'node').get(u'kind'), var.get(u'declars')))
            var.put(u'replace', Js([]))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'node').get(u'declarations').get(u'length')):
                try:
                    var.put(u'declar', var.get(u'node').get(u'declarations').get(var.get(u'i')))
                    if var.get(u'declar').get(u'init').neg():
                        continue
                    var.put(u'expr', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'declar').get(u'id'), var.get(u'declar').get(u'init')))
                    var.get(u'replace').callprop(u'push', var.get(u't').callprop(u'inherits', var.get(u'expr'), var.get(u'declar')))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'replace')
        PyJs_pushDeclar_837_._set_name(u'pushDeclar')
        var.get(u'BlockScoping').get(u'prototype').put(u'pushDeclar', PyJs_pushDeclar_837_)
        @Js
        def PyJs_buildHas_838_(ret, call, this, arguments, var=var):
            var = Scope({u'this':this, u'buildHas':PyJs_buildHas_838_, u'call':call, u'arguments':arguments, u'ret':ret}, var)
            var.registers([u'body', u'i', u'retCheck', u'ret', u'caseConsequent', u'single', u'call', u'key', u'cases', u'has'])
            var.put(u'body', var.get(u"this").get(u'body'))
            var.get(u'body').callprop(u'push', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'ret'), var.get(u'call'))])))
            var.put(u'retCheck', PyJsComma(Js(0.0), Js(None)))
            var.put(u'has', var.get(u"this").get(u'has'))
            var.put(u'cases', Js([]))
            if var.get(u'has').get(u'hasReturn'):
                PyJs_Object_839_ = Js({u'RETURN':var.get(u'ret')})
                var.put(u'retCheck', var.get(u'buildRetCheck')(PyJs_Object_839_))
            if var.get(u'has').get(u'hasBreakContinue'):
                for PyJsTemp in var.get(u'has').get(u'map'):
                    var.put(u'key', PyJsTemp)
                    var.get(u'cases').callprop(u'push', var.get(u't').callprop(u'switchCase', var.get(u't').callprop(u'stringLiteral', var.get(u'key')), Js([var.get(u'has').get(u'map').get(var.get(u'key'))])))
                if var.get(u'has').get(u'hasReturn'):
                    var.get(u'cases').callprop(u'push', var.get(u't').callprop(u'switchCase', var.get(u"null"), Js([var.get(u'retCheck')])))
                if PyJsStrictEq(var.get(u'cases').get(u'length'),Js(1.0)):
                    var.put(u'single', var.get(u'cases').get(u'0'))
                    var.get(u'body').callprop(u'push', var.get(u't').callprop(u'ifStatement', var.get(u't').callprop(u'binaryExpression', Js(u'==='), var.get(u'ret'), var.get(u'single').get(u'test')), var.get(u'single').get(u'consequent').get(u'0')))
                else:
                    if var.get(u"this").get(u'loop'):
                        #for JS loop
                        var.put(u'i', Js(0.0))
                        while (var.get(u'i')<var.get(u'cases').get(u'length')):
                            try:
                                var.put(u'caseConsequent', var.get(u'cases').get(var.get(u'i')).get(u'consequent').get(u'0'))
                                if (var.get(u't').callprop(u'isBreakStatement', var.get(u'caseConsequent')) and var.get(u'caseConsequent').get(u'label').neg()):
                                    var.get(u'caseConsequent').put(u'label', var.get(u"this").put(u'loopLabel', (var.get(u"this").get(u'loopLabel') or var.get(u"this").get(u'scope').callprop(u'generateUidIdentifier', Js(u'loop')))))
                            finally:
                                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                    var.get(u'body').callprop(u'push', var.get(u't').callprop(u'switchStatement', var.get(u'ret'), var.get(u'cases')))
            else:
                if var.get(u'has').get(u'hasReturn'):
                    var.get(u'body').callprop(u'push', var.get(u'retCheck'))
        PyJs_buildHas_838_._set_name(u'buildHas')
        var.get(u'BlockScoping').get(u'prototype').put(u'buildHas', PyJs_buildHas_838_)
        return var.get(u'BlockScoping')
    PyJs_anonymous_821_._set_name(u'anonymous')
    var.put(u'BlockScoping', PyJs_anonymous_821_())
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_794_._set_name(u'anonymous')
PyJs_Object_840_ = Js({u'./tdz':Js(62.0),u'babel-runtime/core-js/object/create':Js(101.0),u'babel-runtime/core-js/symbol':Js(105.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-template':Js(221.0),u'babel-traverse':Js(225.0),u'babel-types':Js(258.0),u'lodash/extend':Js(446.0),u'lodash/values':Js(496.0)})
@Js
def PyJs_anonymous_841_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'visitor', u'require', u'_babelTypes', u'module', u'getTDZStatus', u't', u'buildTDZAssert', u'isReference'])
    @Js
    def PyJsHoisted_getTDZStatus_(refPath, bindingPath, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'refPath':refPath, u'bindingPath':bindingPath}, var)
        var.registers([u'refPath', u'bindingPath', u'executionStatus'])
        var.put(u'executionStatus', var.get(u'bindingPath').callprop(u'_guessExecutionStatusRelativeTo', var.get(u'refPath')))
        if PyJsStrictEq(var.get(u'executionStatus'),Js(u'before')):
            return Js(u'inside')
        else:
            if PyJsStrictEq(var.get(u'executionStatus'),Js(u'after')):
                return Js(u'outside')
            else:
                return Js(u'maybe')
    PyJsHoisted_getTDZStatus_.func_name = u'getTDZStatus'
    var.put(u'getTDZStatus', PyJsHoisted_getTDZStatus_)
    @Js
    def PyJsHoisted_buildTDZAssert_(node, file, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'file':file}, var)
        var.registers([u'node', u'file'])
        return var.get(u't').callprop(u'callExpression', var.get(u'file').callprop(u'addHelper', Js(u'temporalRef')), Js([var.get(u'node'), var.get(u't').callprop(u'stringLiteral', var.get(u'node').get(u'name')), var.get(u'file').callprop(u'addHelper', Js(u'temporalUndefined'))]))
    PyJsHoisted_buildTDZAssert_.func_name = u'buildTDZAssert'
    var.put(u'buildTDZAssert', PyJsHoisted_buildTDZAssert_)
    @Js
    def PyJsHoisted_isReference_(node, scope, state, this, arguments, var=var):
        var = Scope({u'node':node, u'scope':scope, u'state':state, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'scope', u'declared', u'state'])
        var.put(u'declared', var.get(u'state').get(u'letReferences').get(var.get(u'node').get(u'name')))
        if var.get(u'declared').neg():
            return Js(False)
        return PyJsStrictEq(var.get(u'scope').callprop(u'getBindingIdentifier', var.get(u'node').get(u'name')),var.get(u'declared'))
    PyJsHoisted_isReference_.func_name = u'isReference'
    var.put(u'isReference', PyJsHoisted_isReference_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_842_ = Js({})
            var.put(u'newObj', PyJs_Object_842_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'visitor', var.get(u'undefined'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    @Js
    def PyJs_ReferencedIdentifier_844_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_844_, u'arguments':arguments}, var)
        var.registers([u'node', u'status', u'bindingPath', u'parent', u'assert', u'state', u'path', u'scope'])
        if var.get(u"this").get(u'file').get(u'opts').get(u'tdz').neg():
            return var.get('undefined')
        var.put(u'node', var.get(u'path').get(u'node'))
        var.put(u'parent', var.get(u'path').get(u'parent'))
        var.put(u'scope', var.get(u'path').get(u'scope'))
        PyJs_Object_845_ = Js({u'left':var.get(u'node')})
        if var.get(u'path').get(u'parentPath').callprop(u'isFor', PyJs_Object_845_):
            return var.get('undefined')
        if var.get(u'isReference')(var.get(u'node'), var.get(u'scope'), var.get(u'state')).neg():
            return var.get('undefined')
        var.put(u'bindingPath', var.get(u'scope').callprop(u'getBinding', var.get(u'node').get(u'name')).get(u'path'))
        var.put(u'status', var.get(u'getTDZStatus')(var.get(u'path'), var.get(u'bindingPath')))
        if PyJsStrictEq(var.get(u'status'),Js(u'inside')):
            return var.get('undefined')
        if PyJsStrictEq(var.get(u'status'),Js(u'maybe')):
            var.put(u'assert', var.get(u'buildTDZAssert')(var.get(u'node'), var.get(u'state').get(u'file')))
            var.get(u'bindingPath').get(u'parent').put(u'_tdzThis', var.get(u'true'))
            var.get(u'path').callprop(u'skip')
            if var.get(u'path').get(u'parentPath').callprop(u'isUpdateExpression'):
                if var.get(u'parent').get(u'_ignoreBlockScopingTDZ'):
                    return var.get('undefined')
                var.get(u'path').get(u'parentPath').callprop(u'replaceWith', var.get(u't').callprop(u'sequenceExpression', Js([var.get(u'assert'), var.get(u'parent')])))
            else:
                var.get(u'path').callprop(u'replaceWith', var.get(u'assert'))
        else:
            if PyJsStrictEq(var.get(u'status'),Js(u'outside')):
                var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'throwStatement', var.get(u't').callprop(u'inherits', var.get(u't').callprop(u'newExpression', var.get(u't').callprop(u'identifier', Js(u'ReferenceError')), Js([var.get(u't').callprop(u'stringLiteral', (var.get(u'node').get(u'name')+Js(u' is not defined - temporal dead zone')))])), var.get(u'node'))))
    PyJs_ReferencedIdentifier_844_._set_name(u'ReferencedIdentifier')
    @Js
    def PyJs_exit_847_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'exit':PyJs_exit_847_, u'arguments':arguments}, var)
        var.registers([u'node', u'name', u'ids', u'state', u'path', u'nodes', u'id'])
        if var.get(u"this").get(u'file').get(u'opts').get(u'tdz').neg():
            return var.get('undefined')
        var.put(u'node', var.get(u'path').get(u'node'))
        if var.get(u'node').get(u'_ignoreBlockScopingTDZ'):
            return var.get('undefined')
        var.put(u'nodes', Js([]))
        var.put(u'ids', var.get(u'path').callprop(u'getBindingIdentifiers'))
        for PyJsTemp in var.get(u'ids'):
            var.put(u'name', PyJsTemp)
            var.put(u'id', var.get(u'ids').get(var.get(u'name')))
            if var.get(u'isReference')(var.get(u'id'), var.get(u'path').get(u'scope'), var.get(u'state')):
                var.get(u'nodes').callprop(u'push', var.get(u'buildTDZAssert')(var.get(u'id'), var.get(u'state').get(u'file')))
        if var.get(u'nodes').get(u'length'):
            var.get(u'node').put(u'_ignoreBlockScopingTDZ', var.get(u'true'))
            var.get(u'nodes').callprop(u'push', var.get(u'node'))
            var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'nodes').callprop(u'map', var.get(u't').get(u'expressionStatement')))
    PyJs_exit_847_._set_name(u'exit')
    PyJs_Object_846_ = Js({u'exit':PyJs_exit_847_})
    PyJs_Object_843_ = Js({u'ReferencedIdentifier':PyJs_ReferencedIdentifier_844_,u'AssignmentExpression':PyJs_Object_846_})
    var.put(u'visitor', var.get(u'exports').put(u'visitor', PyJs_Object_843_))
PyJs_anonymous_841_._set_name(u'anonymous')
PyJs_Object_848_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_849_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_vanilla', u'exports', u'_symbol2', u'_loose', u'require', u'_babelHelperFunctionName', u'module', u'_vanilla2', u'_symbol', u'_babelHelperFunctionName2', u'_interopRequireDefault', u'_loose2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_856_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_856_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_symbol', var.get(u'require')(Js(u'babel-runtime/core-js/symbol')))
    var.put(u'_symbol2', var.get(u'_interopRequireDefault')(var.get(u'_symbol')))
    @Js
    def PyJs_anonymous_850_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'VISITED', u'_ref', u't'])
        var.put(u't', var.get(u'_ref').get(u'types'))
        var.put(u'VISITED', PyJsComma(Js(0.0),var.get(u'_symbol2').get(u'default'))())
        @Js
        def PyJs_ExportDefaultDeclaration_853_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'ExportDefaultDeclaration':PyJs_ExportDefaultDeclaration_853_}, var)
            var.registers([u'node', u'path', u'ref'])
            if var.get(u'path').callprop(u'get', Js(u'declaration')).callprop(u'isClassDeclaration').neg():
                return var.get('undefined')
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'ref', (var.get(u'node').get(u'declaration').get(u'id') or var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'class'))))
            var.get(u'node').get(u'declaration').put(u'id', var.get(u'ref'))
            var.get(u'path').callprop(u'replaceWith', var.get(u'node').get(u'declaration'))
            var.get(u'path').callprop(u'insertAfter', var.get(u't').callprop(u'exportDefaultDeclaration', var.get(u'ref')))
        PyJs_ExportDefaultDeclaration_853_._set_name(u'ExportDefaultDeclaration')
        @Js
        def PyJs_ClassDeclaration_854_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'ClassDeclaration':PyJs_ClassDeclaration_854_, u'arguments':arguments}, var)
            var.registers([u'node', u'path', u'ref'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'ref', (var.get(u'node').get(u'id') or var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'class'))))
            var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'variableDeclaration', Js(u'let'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'ref'), var.get(u't').callprop(u'toExpression', var.get(u'node')))])))
        PyJs_ClassDeclaration_854_._set_name(u'ClassDeclaration')
        @Js
        def PyJs_ClassExpression_855_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'ClassExpression':PyJs_ClassExpression_855_}, var)
            var.registers([u'node', u'path', u'state', u'inferred', u'Constructor'])
            var.put(u'node', var.get(u'path').get(u'node'))
            if var.get(u'node').get(var.get(u'VISITED')):
                return var.get('undefined')
            var.put(u'inferred', PyJsComma(Js(0.0),var.get(u'_babelHelperFunctionName2').get(u'default'))(var.get(u'path')))
            if (var.get(u'inferred') and PyJsStrictNeq(var.get(u'inferred'),var.get(u'node'))):
                return var.get(u'path').callprop(u'replaceWith', var.get(u'inferred'))
            var.get(u'node').put(var.get(u'VISITED'), var.get(u'true'))
            var.put(u'Constructor', var.get(u'_vanilla2').get(u'default'))
            if var.get(u'state').get(u'opts').get(u'loose'):
                var.put(u'Constructor', var.get(u'_loose2').get(u'default'))
            var.get(u'path').callprop(u'replaceWith', var.get(u'Constructor').create(var.get(u'path'), var.get(u'state').get(u'file')).callprop(u'run'))
        PyJs_ClassExpression_855_._set_name(u'ClassExpression')
        PyJs_Object_852_ = Js({u'ExportDefaultDeclaration':PyJs_ExportDefaultDeclaration_853_,u'ClassDeclaration':PyJs_ClassDeclaration_854_,u'ClassExpression':PyJs_ClassExpression_855_})
        PyJs_Object_851_ = Js({u'visitor':PyJs_Object_852_})
        return PyJs_Object_851_
    PyJs_anonymous_850_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_850_)
    var.put(u'_loose', var.get(u'require')(Js(u'./loose')))
    var.put(u'_loose2', var.get(u'_interopRequireDefault')(var.get(u'_loose')))
    var.put(u'_vanilla', var.get(u'require')(Js(u'./vanilla')))
    var.put(u'_vanilla2', var.get(u'_interopRequireDefault')(var.get(u'_vanilla')))
    var.put(u'_babelHelperFunctionName', var.get(u'require')(Js(u'babel-helper-function-name')))
    var.put(u'_babelHelperFunctionName2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperFunctionName')))
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_849_._set_name(u'anonymous')
PyJs_Object_857_ = Js({u'./loose':Js(64.0),u'./vanilla':Js(65.0),u'babel-helper-function-name':Js(49.0),u'babel-runtime/core-js/symbol':Js(105.0)})
@Js
def PyJs_anonymous_858_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_vanilla', u'LooseClassTransformer', u'_vanilla2', u'exports', u'_interopRequireWildcard', u'_inherits3', u'_inherits2', u'require', u'_babelTypes', u'_possibleConstructorReturn3', u'_possibleConstructorReturn2', u'module', u't', u'_babelHelperFunctionName', u'_babelHelperFunctionName2', u'_interopRequireDefault', u'_classCallCheck3', u'_classCallCheck2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_860_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_860_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_859_ = Js({})
            var.put(u'newObj', PyJs_Object_859_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_possibleConstructorReturn2', var.get(u'require')(Js(u'babel-runtime/helpers/possibleConstructorReturn')))
    var.put(u'_possibleConstructorReturn3', var.get(u'_interopRequireDefault')(var.get(u'_possibleConstructorReturn2')))
    var.put(u'_inherits2', var.get(u'require')(Js(u'babel-runtime/helpers/inherits')))
    var.put(u'_inherits3', var.get(u'_interopRequireDefault')(var.get(u'_inherits2')))
    var.put(u'_babelHelperFunctionName', var.get(u'require')(Js(u'babel-helper-function-name')))
    var.put(u'_babelHelperFunctionName2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperFunctionName')))
    var.put(u'_vanilla', var.get(u'require')(Js(u'./vanilla')))
    var.put(u'_vanilla2', var.get(u'_interopRequireDefault')(var.get(u'_vanilla')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    @Js
    def PyJs_anonymous_861_(_VanillaTransformer, this, arguments, var=var):
        var = Scope({u'this':this, u'_VanillaTransformer':_VanillaTransformer, u'arguments':arguments}, var)
        var.registers([u'LooseClassTransformer', u'_VanillaTransformer'])
        @Js
        def PyJsHoisted_LooseClassTransformer_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'_this'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'LooseClassTransformer'))
            var.put(u'_this', PyJsComma(Js(0.0),var.get(u'_possibleConstructorReturn3').get(u'default'))(var.get(u"this"), var.get(u'_VanillaTransformer').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))))
            var.get(u'_this').put(u'isLoose', var.get(u'true'))
            return var.get(u'_this')
        PyJsHoisted_LooseClassTransformer_.func_name = u'LooseClassTransformer'
        var.put(u'LooseClassTransformer', PyJsHoisted_LooseClassTransformer_)
        PyJsComma(Js(0.0),var.get(u'_inherits3').get(u'default'))(var.get(u'LooseClassTransformer'), var.get(u'_VanillaTransformer'))
        pass
        @Js
        def PyJs__processMethod_862_(node, scope, this, arguments, var=var):
            var = Scope({u'node':node, u'scope':scope, u'_processMethod':PyJs__processMethod_862_, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node', u'methodName', u'func', u'expr', u'classRef', u'key', u'scope'])
            if var.get(u'node').get(u'decorators').neg():
                var.put(u'classRef', var.get(u"this").get(u'classRef'))
                if var.get(u'node').get(u'static').neg():
                    var.put(u'classRef', var.get(u't').callprop(u'memberExpression', var.get(u'classRef'), var.get(u't').callprop(u'identifier', Js(u'prototype'))))
                var.put(u'methodName', var.get(u't').callprop(u'memberExpression', var.get(u'classRef'), var.get(u'node').get(u'key'), (var.get(u'node').get(u'computed') or var.get(u't').callprop(u'isLiteral', var.get(u'node').get(u'key')))))
                var.put(u'func', var.get(u't').callprop(u'functionExpression', var.get(u"null"), var.get(u'node').get(u'params'), var.get(u'node').get(u'body'), var.get(u'node').get(u'generator'), var.get(u'node').get(u'async')))
                var.get(u'func').put(u'returnType', var.get(u'node').get(u'returnType'))
                var.put(u'key', var.get(u't').callprop(u'toComputedKey', var.get(u'node'), var.get(u'node').get(u'key')))
                if var.get(u't').callprop(u'isStringLiteral', var.get(u'key')):
                    PyJs_Object_863_ = Js({u'node':var.get(u'func'),u'id':var.get(u'key'),u'scope':var.get(u'scope')})
                    var.put(u'func', PyJsComma(Js(0.0),var.get(u'_babelHelperFunctionName2').get(u'default'))(PyJs_Object_863_))
                var.put(u'expr', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'methodName'), var.get(u'func'))))
                var.get(u't').callprop(u'inheritsComments', var.get(u'expr'), var.get(u'node'))
                var.get(u"this").get(u'body').callprop(u'push', var.get(u'expr'))
                return var.get(u'true')
        PyJs__processMethod_862_._set_name(u'_processMethod')
        var.get(u'LooseClassTransformer').get(u'prototype').put(u'_processMethod', PyJs__processMethod_862_)
        return var.get(u'LooseClassTransformer')
    PyJs_anonymous_861_._set_name(u'anonymous')
    var.put(u'LooseClassTransformer', PyJs_anonymous_861_(var.get(u'_vanilla2').get(u'default')))
    var.get(u'exports').put(u'default', var.get(u'LooseClassTransformer'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_858_._set_name(u'anonymous')
PyJs_Object_864_ = Js({u'./vanilla':Js(65.0),u'babel-helper-function-name':Js(49.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-runtime/helpers/inherits':Js(111.0),u'babel-runtime/helpers/possibleConstructorReturn':Js(113.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_865_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'defineMap', u'_babelHelperDefineMap', u'verifyConstructorVisitor', u'_babelTemplate', u'module', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'_babelTraverse', u'findThisesVisitor', u'noMethodVisitor', u'_babelHelperOptimiseCallExpression2', u'_classCallCheck3', u'_classCallCheck2', u'exports', u'_interopRequireWildcard', u'_babelTypes', u'buildDerivedConstructor', u'_babelHelperReplaceSupers', u'_babelHelperReplaceSupers2', u'require', u'_babelHelperOptimiseCallExpression', u'ClassTransformer', u'_babelTemplate2', u't'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_867_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_867_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_866_ = Js({})
            var.put(u'newObj', PyJs_Object_866_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_babelTraverse', var.get(u'require')(Js(u'babel-traverse')))
    var.put(u'_babelHelperReplaceSupers', var.get(u'require')(Js(u'babel-helper-replace-supers')))
    var.put(u'_babelHelperReplaceSupers2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperReplaceSupers')))
    var.put(u'_babelHelperOptimiseCallExpression', var.get(u'require')(Js(u'babel-helper-optimise-call-expression')))
    var.put(u'_babelHelperOptimiseCallExpression2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperOptimiseCallExpression')))
    var.put(u'_babelHelperDefineMap', var.get(u'require')(Js(u'babel-helper-define-map')))
    var.put(u'defineMap', var.get(u'_interopRequireWildcard')(var.get(u'_babelHelperDefineMap')))
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    var.put(u'_babelTemplate2', var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.put(u'buildDerivedConstructor', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function () {\n    super(...arguments);\n  })\n')))
    @Js
    def PyJs_FunctionExpressionFunctionDeclaration_869_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'FunctionExpressionFunctionDeclaration':PyJs_FunctionExpressionFunctionDeclaration_869_}, var)
        var.registers([u'path'])
        if var.get(u'path').callprop(u'is', Js(u'shadow')).neg():
            var.get(u'path').callprop(u'skip')
    PyJs_FunctionExpressionFunctionDeclaration_869_._set_name(u'FunctionExpressionFunctionDeclaration')
    @Js
    def PyJs_Method_870_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'Method':PyJs_Method_870_}, var)
        var.registers([u'path'])
        var.get(u'path').callprop(u'skip')
    PyJs_Method_870_._set_name(u'Method')
    PyJs_Object_868_ = Js({u'FunctionExpression|FunctionDeclaration':PyJs_FunctionExpressionFunctionDeclaration_869_,u'Method':PyJs_Method_870_})
    var.put(u'noMethodVisitor', PyJs_Object_868_)
    @Js
    def PyJs_Super_872_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'Super':PyJs_Super_872_, u'arguments':arguments}, var)
        var.registers([u'path'])
        PyJs_Object_873_ = Js({u'callee':var.get(u'path').get(u'node')})
        if ((var.get(u"this").get(u'isDerived') and var.get(u"this").get(u'hasBareSuper').neg()) and var.get(u'path').get(u'parentPath').callprop(u'isCallExpression', PyJs_Object_873_).neg()):
            PyJsTempException = JsToPyException(var.get(u'path').callprop(u'buildCodeFrameError', Js(u"'super.*' is not allowed before super()")))
            raise PyJsTempException
    PyJs_Super_872_._set_name(u'Super')
    @Js
    def PyJs_exit_875_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'exit':PyJs_exit_875_, u'arguments':arguments}, var)
        var.registers([u'path'])
        if var.get(u'path').callprop(u'get', Js(u'callee')).callprop(u'isSuper'):
            var.get(u"this").put(u'hasBareSuper', var.get(u'true'))
            if var.get(u"this").get(u'isDerived').neg():
                PyJsTempException = JsToPyException(var.get(u'path').callprop(u'buildCodeFrameError', Js(u'super() is only allowed in a derived constructor')))
                raise PyJsTempException
    PyJs_exit_875_._set_name(u'exit')
    PyJs_Object_874_ = Js({u'exit':PyJs_exit_875_})
    @Js
    def PyJs_ThisExpression_876_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'ThisExpression':PyJs_ThisExpression_876_, u'arguments':arguments}, var)
        var.registers([u'path'])
        if (var.get(u"this").get(u'isDerived') and var.get(u"this").get(u'hasBareSuper').neg()):
            if var.get(u'path').callprop(u'inShadow', Js(u'this')).neg():
                PyJsTempException = JsToPyException(var.get(u'path').callprop(u'buildCodeFrameError', Js(u"'this' is not allowed before super()")))
                raise PyJsTempException
    PyJs_ThisExpression_876_._set_name(u'ThisExpression')
    PyJs_Object_871_ = Js({u'Super':PyJs_Super_872_,u'CallExpression':PyJs_Object_874_,u'ThisExpression':PyJs_ThisExpression_876_})
    var.put(u'verifyConstructorVisitor', var.get(u'_babelTraverse').get(u'visitors').callprop(u'merge', Js([var.get(u'noMethodVisitor'), PyJs_Object_871_])))
    @Js
    def PyJs_ThisExpression_878_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'ThisExpression':PyJs_ThisExpression_878_, u'arguments':arguments}, var)
        var.registers([u'path'])
        var.get(u"this").get(u'superThises').callprop(u'push', var.get(u'path'))
    PyJs_ThisExpression_878_._set_name(u'ThisExpression')
    PyJs_Object_877_ = Js({u'ThisExpression':PyJs_ThisExpression_878_})
    var.put(u'findThisesVisitor', var.get(u'_babelTraverse').get(u'visitors').callprop(u'merge', Js([var.get(u'noMethodVisitor'), PyJs_Object_877_])))
    @Js
    def PyJs_anonymous_879_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'ClassTransformer'])
        @Js
        def PyJsHoisted_ClassTransformer_(path, file, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'file':file}, var)
            var.registers([u'path', u'file'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'ClassTransformer'))
            var.get(u"this").put(u'parent', var.get(u'path').get(u'parent'))
            var.get(u"this").put(u'scope', var.get(u'path').get(u'scope'))
            var.get(u"this").put(u'node', var.get(u'path').get(u'node'))
            var.get(u"this").put(u'path', var.get(u'path'))
            var.get(u"this").put(u'file', var.get(u'file'))
            var.get(u"this").callprop(u'clearDescriptors')
            var.get(u"this").put(u'instancePropBody', Js([]))
            PyJs_Object_880_ = Js({})
            var.get(u"this").put(u'instancePropRefs', PyJs_Object_880_)
            var.get(u"this").put(u'staticPropBody', Js([]))
            var.get(u"this").put(u'body', Js([]))
            var.get(u"this").put(u'bareSuperAfter', Js([]))
            var.get(u"this").put(u'bareSupers', Js([]))
            var.get(u"this").put(u'pushedConstructor', Js(False))
            var.get(u"this").put(u'pushedInherits', Js(False))
            var.get(u"this").put(u'isLoose', Js(False))
            var.get(u"this").put(u'superThises', Js([]))
            var.get(u"this").put(u'classId', var.get(u"this").get(u'node').get(u'id'))
            var.get(u"this").put(u'classRef', (var.get(u't').callprop(u'identifier', var.get(u"this").get(u'node').get(u'id').get(u'name')) if var.get(u"this").get(u'node').get(u'id') else var.get(u"this").get(u'scope').callprop(u'generateUidIdentifier', Js(u'class'))))
            var.get(u"this").put(u'superName', (var.get(u"this").get(u'node').get(u'superClass') or var.get(u't').callprop(u'identifier', Js(u'Function'))))
            var.get(u"this").put(u'isDerived', var.get(u"this").get(u'node').get(u'superClass').neg().neg())
        PyJsHoisted_ClassTransformer_.func_name = u'ClassTransformer'
        var.put(u'ClassTransformer', PyJsHoisted_ClassTransformer_)
        pass
        @Js
        def PyJs_run_881_(this, arguments, var=var):
            var = Scope({u'this':this, u'run':PyJs_run_881_, u'arguments':arguments}, var)
            var.registers([u'body', u'container', u'_this', u'file', u'superName', u'closureArgs', u'closureParams', u'constructorBody'])
            var.put(u'_this', var.get(u"this"))
            var.put(u'superName', var.get(u"this").get(u'superName'))
            var.put(u'file', var.get(u"this").get(u'file'))
            var.put(u'body', var.get(u"this").get(u'body'))
            var.put(u'constructorBody', var.get(u"this").put(u'constructorBody', var.get(u't').callprop(u'blockStatement', Js([]))))
            var.get(u"this").put(u'constructor', var.get(u"this").callprop(u'buildConstructor'))
            var.put(u'closureParams', Js([]))
            var.put(u'closureArgs', Js([]))
            if var.get(u"this").get(u'isDerived'):
                var.get(u'closureArgs').callprop(u'push', var.get(u'superName'))
                var.put(u'superName', var.get(u"this").get(u'scope').callprop(u'generateUidIdentifierBasedOnNode', var.get(u'superName')))
                var.get(u'closureParams').callprop(u'push', var.get(u'superName'))
                var.get(u"this").put(u'superName', var.get(u'superName'))
            var.get(u"this").callprop(u'buildBody')
            var.get(u'constructorBody').get(u'body').callprop(u'unshift', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'callExpression', var.get(u'file').callprop(u'addHelper', Js(u'classCallCheck')), Js([var.get(u't').callprop(u'thisExpression'), var.get(u"this").get(u'classRef')]))))
            @Js
            def PyJs_anonymous_882_(fn, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'fn':fn}, var)
                var.registers([u'fn'])
                return var.get(u'fn')(var.get(u'_this').get(u'classRef'))
            PyJs_anonymous_882_._set_name(u'anonymous')
            var.put(u'body', var.get(u'body').callprop(u'concat', var.get(u"this").get(u'staticPropBody').callprop(u'map', PyJs_anonymous_882_)))
            if var.get(u"this").get(u'classId'):
                if PyJsStrictEq(var.get(u'body').get(u'length'),Js(1.0)):
                    return var.get(u't').callprop(u'toExpression', var.get(u'body').get(u'0'))
            var.get(u'body').callprop(u'push', var.get(u't').callprop(u'returnStatement', var.get(u"this").get(u'classRef')))
            var.put(u'container', var.get(u't').callprop(u'functionExpression', var.get(u"null"), var.get(u'closureParams'), var.get(u't').callprop(u'blockStatement', var.get(u'body'))))
            var.get(u'container').put(u'shadow', var.get(u'true'))
            return var.get(u't').callprop(u'callExpression', var.get(u'container'), var.get(u'closureArgs'))
        PyJs_run_881_._set_name(u'run')
        var.get(u'ClassTransformer').get(u'prototype').put(u'run', PyJs_run_881_)
        @Js
        def PyJs_buildConstructor_883_(this, arguments, var=var):
            var = Scope({u'this':this, u'buildConstructor':PyJs_buildConstructor_883_, u'arguments':arguments}, var)
            var.registers([u'func'])
            var.put(u'func', var.get(u't').callprop(u'functionDeclaration', var.get(u"this").get(u'classRef'), Js([]), var.get(u"this").get(u'constructorBody')))
            var.get(u't').callprop(u'inherits', var.get(u'func'), var.get(u"this").get(u'node'))
            return var.get(u'func')
        PyJs_buildConstructor_883_._set_name(u'buildConstructor')
        var.get(u'ClassTransformer').get(u'prototype').put(u'buildConstructor', PyJs_buildConstructor_883_)
        @Js
        def PyJs_pushToMap_884_(node, enumerable, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'pushToMap':PyJs_pushToMap_884_, u'enumerable':enumerable, u'arguments':arguments}, var)
            var.registers([u'node', u'map', u'kind', u'scope', u'enumerable', u'mutatorMap'])
            var.put(u'kind', (var.get(u'arguments').get(u'2') if ((var.get(u'arguments').get(u'length')>Js(2.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'2'),var.get(u'undefined'))) else Js(u'value')))
            var.put(u'scope', var.get(u'arguments').get(u'3'))
            var.put(u'mutatorMap', PyJsComma(Js(0.0), Js(None)))
            if var.get(u'node').get(u'static'):
                var.get(u"this").put(u'hasStaticDescriptors', var.get(u'true'))
                var.put(u'mutatorMap', var.get(u"this").get(u'staticMutatorMap'))
            else:
                var.get(u"this").put(u'hasInstanceDescriptors', var.get(u'true'))
                var.put(u'mutatorMap', var.get(u"this").get(u'instanceMutatorMap'))
            var.put(u'map', var.get(u'defineMap').callprop(u'push', var.get(u'mutatorMap'), var.get(u'node'), var.get(u'kind'), var.get(u"this").get(u'file'), var.get(u'scope')))
            if var.get(u'enumerable'):
                var.get(u'map').put(u'enumerable', var.get(u't').callprop(u'booleanLiteral', var.get(u'true')))
            return var.get(u'map')
        PyJs_pushToMap_884_._set_name(u'pushToMap')
        var.get(u'ClassTransformer').get(u'prototype').put(u'pushToMap', PyJs_pushToMap_884_)
        @Js
        def PyJs_constructorMeMaybe_885_(this, arguments, var=var):
            var = Scope({u'this':this, u'constructorMeMaybe':PyJs_constructorMeMaybe_885_, u'arguments':arguments}, var)
            var.registers([u'body', u'paths', u'_isArray', u'_iterator', u'_constructor', u'params', u'_i', u'path', u'hasConstructor', u'_ref'])
            var.put(u'hasConstructor', Js(False))
            var.put(u'paths', var.get(u"this").get(u'path').callprop(u'get', Js(u'body.body')))
            #for JS loop
            var.put(u'_iterator', var.get(u'paths'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'path', var.get(u'_ref'))
                var.put(u'hasConstructor', var.get(u'path').callprop(u'equals', Js(u'kind'), Js(u'constructor')))
                if var.get(u'hasConstructor'):
                    break
            
            if var.get(u'hasConstructor'):
                return var.get('undefined')
            var.put(u'params', PyJsComma(Js(0.0), Js(None)))
            var.put(u'body', PyJsComma(Js(0.0), Js(None)))
            if var.get(u"this").get(u'isDerived'):
                var.put(u'_constructor', var.get(u'buildDerivedConstructor')().get(u'expression'))
                var.put(u'params', var.get(u'_constructor').get(u'params'))
                var.put(u'body', var.get(u'_constructor').get(u'body'))
            else:
                var.put(u'params', Js([]))
                var.put(u'body', var.get(u't').callprop(u'blockStatement', Js([])))
            var.get(u"this").get(u'path').callprop(u'get', Js(u'body')).callprop(u'unshiftContainer', Js(u'body'), var.get(u't').callprop(u'classMethod', Js(u'constructor'), var.get(u't').callprop(u'identifier', Js(u'constructor')), var.get(u'params'), var.get(u'body')))
        PyJs_constructorMeMaybe_885_._set_name(u'constructorMeMaybe')
        var.get(u'ClassTransformer').get(u'prototype').put(u'constructorMeMaybe', PyJs_constructorMeMaybe_885_)
        @Js
        def PyJs_buildBody_886_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'buildBody':PyJs_buildBody_886_}, var)
            var.registers([u'constructorBody'])
            var.get(u"this").callprop(u'constructorMeMaybe')
            var.get(u"this").callprop(u'pushBody')
            var.get(u"this").callprop(u'verifyConstructor')
            if var.get(u"this").get(u'userConstructor'):
                var.put(u'constructorBody', var.get(u"this").get(u'constructorBody'))
                var.get(u'constructorBody').put(u'body', var.get(u'constructorBody').get(u'body').callprop(u'concat', var.get(u"this").get(u'userConstructor').get(u'body').get(u'body')))
                var.get(u't').callprop(u'inherits', var.get(u"this").get(u'constructor'), var.get(u"this").get(u'userConstructor'))
                var.get(u't').callprop(u'inherits', var.get(u'constructorBody'), var.get(u"this").get(u'userConstructor').get(u'body'))
            var.get(u"this").callprop(u'pushDescriptors')
        PyJs_buildBody_886_._set_name(u'buildBody')
        var.get(u'ClassTransformer').get(u'prototype').put(u'buildBody', PyJs_buildBody_886_)
        @Js
        def PyJs_pushBody_887_(this, arguments, var=var):
            var = Scope({u'this':this, u'pushBody':PyJs_pushBody_887_, u'arguments':arguments}, var)
            var.registers([u'node', u'_isArray2', u'isConstructor', u'_i2', u'classBodyPaths', u'_ref2', u'replaceSupers', u'path', u'_iterator2'])
            var.put(u'classBodyPaths', var.get(u"this").get(u'path').callprop(u'get', Js(u'body.body')))
            #for JS loop
            var.put(u'_iterator2', var.get(u'classBodyPaths'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                var.put(u'path', var.get(u'_ref2'))
                var.put(u'node', var.get(u'path').get(u'node'))
                if var.get(u'path').callprop(u'isClassProperty'):
                    PyJsTempException = JsToPyException(var.get(u'path').callprop(u'buildCodeFrameError', Js(u'Missing class properties transform.')))
                    raise PyJsTempException
                if var.get(u'node').get(u'decorators'):
                    PyJsTempException = JsToPyException(var.get(u'path').callprop(u'buildCodeFrameError', Js(u'Method has decorators, put the decorator plugin before the classes one.')))
                    raise PyJsTempException
                if var.get(u't').callprop(u'isClassMethod', var.get(u'node')):
                    var.put(u'isConstructor', PyJsStrictEq(var.get(u'node').get(u'kind'),Js(u'constructor')))
                    if var.get(u'isConstructor'):
                        var.get(u'path').callprop(u'traverse', var.get(u'verifyConstructorVisitor'), var.get(u"this"))
                        if (var.get(u"this").get(u'hasBareSuper').neg() and var.get(u"this").get(u'isDerived')):
                            PyJsTempException = JsToPyException(var.get(u'path').callprop(u'buildCodeFrameError', Js(u'missing super() call in constructor')))
                            raise PyJsTempException
                    PyJs_Object_888_ = Js({u'forceSuperMemoisation':var.get(u'isConstructor'),u'methodPath':var.get(u'path'),u'methodNode':var.get(u'node'),u'objectRef':var.get(u"this").get(u'classRef'),u'superRef':var.get(u"this").get(u'superName'),u'isStatic':var.get(u'node').get(u'static'),u'isLoose':var.get(u"this").get(u'isLoose'),u'scope':var.get(u"this").get(u'scope'),u'file':var.get(u"this").get(u'file')})
                    var.put(u'replaceSupers', var.get(u'_babelHelperReplaceSupers2').get(u'default').create(PyJs_Object_888_, var.get(u'true')))
                    var.get(u'replaceSupers').callprop(u'replace')
                    if var.get(u'isConstructor'):
                        var.get(u"this").callprop(u'pushConstructor', var.get(u'replaceSupers'), var.get(u'node'), var.get(u'path'))
                    else:
                        var.get(u"this").callprop(u'pushMethod', var.get(u'node'), var.get(u'path'))
            
        PyJs_pushBody_887_._set_name(u'pushBody')
        var.get(u'ClassTransformer').get(u'prototype').put(u'pushBody', PyJs_pushBody_887_)
        @Js
        def PyJs_clearDescriptors_889_(this, arguments, var=var):
            var = Scope({u'this':this, u'clearDescriptors':PyJs_clearDescriptors_889_, u'arguments':arguments}, var)
            var.registers([])
            var.get(u"this").put(u'hasInstanceDescriptors', Js(False))
            var.get(u"this").put(u'hasStaticDescriptors', Js(False))
            PyJs_Object_890_ = Js({})
            var.get(u"this").put(u'instanceMutatorMap', PyJs_Object_890_)
            PyJs_Object_891_ = Js({})
            var.get(u"this").put(u'staticMutatorMap', PyJs_Object_891_)
        PyJs_clearDescriptors_889_._set_name(u'clearDescriptors')
        var.get(u'ClassTransformer').get(u'prototype').put(u'clearDescriptors', PyJs_clearDescriptors_889_)
        @Js
        def PyJs_pushDescriptors_892_(this, arguments, var=var):
            var = Scope({u'this':this, u'pushDescriptors':PyJs_pushDescriptors_892_, u'arguments':arguments}, var)
            var.registers([u'body', u'i', u'args', u'lastNonNullIndex', u'staticProps', u'instanceProps', u'nullNode'])
            var.get(u"this").callprop(u'pushInherits')
            var.put(u'body', var.get(u"this").get(u'body'))
            var.put(u'instanceProps', PyJsComma(Js(0.0), Js(None)))
            var.put(u'staticProps', PyJsComma(Js(0.0), Js(None)))
            if var.get(u"this").get(u'hasInstanceDescriptors'):
                var.put(u'instanceProps', var.get(u'defineMap').callprop(u'toClassObject', var.get(u"this").get(u'instanceMutatorMap')))
            if var.get(u"this").get(u'hasStaticDescriptors'):
                var.put(u'staticProps', var.get(u'defineMap').callprop(u'toClassObject', var.get(u"this").get(u'staticMutatorMap')))
            if (var.get(u'instanceProps') or var.get(u'staticProps')):
                if var.get(u'instanceProps'):
                    var.put(u'instanceProps', var.get(u'defineMap').callprop(u'toComputedObjectFromClass', var.get(u'instanceProps')))
                if var.get(u'staticProps'):
                    var.put(u'staticProps', var.get(u'defineMap').callprop(u'toComputedObjectFromClass', var.get(u'staticProps')))
                var.put(u'nullNode', var.get(u't').callprop(u'nullLiteral'))
                var.put(u'args', Js([var.get(u"this").get(u'classRef'), var.get(u'nullNode'), var.get(u'nullNode'), var.get(u'nullNode'), var.get(u'nullNode')]))
                if var.get(u'instanceProps'):
                    var.get(u'args').put(u'1', var.get(u'instanceProps'))
                if var.get(u'staticProps'):
                    var.get(u'args').put(u'2', var.get(u'staticProps'))
                if var.get(u"this").get(u'instanceInitializersId'):
                    var.get(u'args').put(u'3', var.get(u"this").get(u'instanceInitializersId'))
                    var.get(u'body').callprop(u'unshift', var.get(u"this").callprop(u'buildObjectAssignment', var.get(u"this").get(u'instanceInitializersId')))
                if var.get(u"this").get(u'staticInitializersId'):
                    var.get(u'args').put(u'4', var.get(u"this").get(u'staticInitializersId'))
                    var.get(u'body').callprop(u'unshift', var.get(u"this").callprop(u'buildObjectAssignment', var.get(u"this").get(u'staticInitializersId')))
                var.put(u'lastNonNullIndex', Js(0.0))
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'args').get(u'length')):
                    try:
                        if PyJsStrictNeq(var.get(u'args').get(var.get(u'i')),var.get(u'nullNode')):
                            var.put(u'lastNonNullIndex', var.get(u'i'))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                var.put(u'args', var.get(u'args').callprop(u'slice', Js(0.0), (var.get(u'lastNonNullIndex')+Js(1.0))))
                var.get(u'body').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'callExpression', var.get(u"this").get(u'file').callprop(u'addHelper', Js(u'createClass')), var.get(u'args'))))
            var.get(u"this").callprop(u'clearDescriptors')
        PyJs_pushDescriptors_892_._set_name(u'pushDescriptors')
        var.get(u'ClassTransformer').get(u'prototype').put(u'pushDescriptors', PyJs_pushDescriptors_892_)
        @Js
        def PyJs_buildObjectAssignment_893_(id, this, arguments, var=var):
            var = Scope({u'this':this, u'buildObjectAssignment':PyJs_buildObjectAssignment_893_, u'id':id, u'arguments':arguments}, var)
            var.registers([u'id'])
            return var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'id'), var.get(u't').callprop(u'objectExpression', Js([])))]))
        PyJs_buildObjectAssignment_893_._set_name(u'buildObjectAssignment')
        var.get(u'ClassTransformer').get(u'prototype').put(u'buildObjectAssignment', PyJs_buildObjectAssignment_893_)
        @Js
        def PyJs_wrapSuperCall_894_(bareSuper, superRef, thisRef, body, this, arguments, var=var):
            var = Scope({u'bareSuper':bareSuper, u'body':body, u'thisRef':thisRef, u'arguments':arguments, u'this':this, u'superRef':superRef, u'wrapSuperCall':PyJs_wrapSuperCall_894_}, var)
            var.registers([u'bareSuper', u'body', u'superRef', u'call', u'bareSuperNode', u'thisRef', u'bareSuperAfter'])
            var.put(u'bareSuperNode', var.get(u'bareSuper').get(u'node'))
            if var.get(u"this").get(u'isLoose'):
                var.get(u'bareSuperNode').get(u'arguments').callprop(u'unshift', var.get(u't').callprop(u'thisExpression'))
                PyJs_Object_895_ = Js({u'name':Js(u'arguments')})
                if ((PyJsStrictEq(var.get(u'bareSuperNode').get(u'arguments').get(u'length'),Js(2.0)) and var.get(u't').callprop(u'isSpreadElement', var.get(u'bareSuperNode').get(u'arguments').get(u'1'))) and var.get(u't').callprop(u'isIdentifier', var.get(u'bareSuperNode').get(u'arguments').get(u'1').get(u'argument'), PyJs_Object_895_)):
                    var.get(u'bareSuperNode').get(u'arguments').put(u'1', var.get(u'bareSuperNode').get(u'arguments').get(u'1').get(u'argument'))
                    var.get(u'bareSuperNode').put(u'callee', var.get(u't').callprop(u'memberExpression', var.get(u'superRef'), var.get(u't').callprop(u'identifier', Js(u'apply'))))
                else:
                    var.get(u'bareSuperNode').put(u'callee', var.get(u't').callprop(u'memberExpression', var.get(u'superRef'), var.get(u't').callprop(u'identifier', Js(u'call'))))
            else:
                def PyJs_LONG_896_(var=var):
                    return var.get(u't').callprop(u'logicalExpression', Js(u'||'), var.get(u't').callprop(u'memberExpression', var.get(u"this").get(u'classRef'), var.get(u't').callprop(u'identifier', Js(u'__proto__'))), var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'Object')), var.get(u't').callprop(u'identifier', Js(u'getPrototypeOf'))), Js([var.get(u"this").get(u'classRef')])))
                var.put(u'bareSuperNode', PyJsComma(Js(0.0),var.get(u'_babelHelperOptimiseCallExpression2').get(u'default'))(PyJs_LONG_896_(), var.get(u't').callprop(u'thisExpression'), var.get(u'bareSuperNode').get(u'arguments')))
            var.put(u'call', var.get(u't').callprop(u'callExpression', var.get(u"this").get(u'file').callprop(u'addHelper', Js(u'possibleConstructorReturn')), Js([var.get(u't').callprop(u'thisExpression'), var.get(u'bareSuperNode')])))
            @Js
            def PyJs_anonymous_897_(fn, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'fn':fn}, var)
                var.registers([u'fn'])
                return var.get(u'fn')(var.get(u'thisRef'))
            PyJs_anonymous_897_._set_name(u'anonymous')
            var.put(u'bareSuperAfter', var.get(u"this").get(u'bareSuperAfter').callprop(u'map', PyJs_anonymous_897_))
            if ((var.get(u'bareSuper').get(u'parentPath').callprop(u'isExpressionStatement') and PyJsStrictEq(var.get(u'bareSuper').get(u'parentPath').get(u'container'),var.get(u'body').get(u'node').get(u'body'))) and PyJsStrictEq((var.get(u'body').get(u'node').get(u'body').get(u'length')-Js(1.0)),var.get(u'bareSuper').get(u'parentPath').get(u'key'))):
                if (var.get(u"this").get(u'superThises').get(u'length') or var.get(u'bareSuperAfter').get(u'length')):
                    PyJs_Object_898_ = Js({u'id':var.get(u'thisRef')})
                    var.get(u'bareSuper').get(u'scope').callprop(u'push', PyJs_Object_898_)
                    var.put(u'call', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'thisRef'), var.get(u'call')))
                if var.get(u'bareSuperAfter').get(u'length'):
                    var.put(u'call', var.get(u't').callprop(u'toSequenceExpression', Js([var.get(u'call')]).callprop(u'concat', var.get(u'bareSuperAfter'), Js([var.get(u'thisRef')]))))
                var.get(u'bareSuper').get(u'parentPath').callprop(u'replaceWith', var.get(u't').callprop(u'returnStatement', var.get(u'call')))
            else:
                var.get(u'bareSuper').callprop(u'replaceWithMultiple', Js([var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'thisRef'), var.get(u'call'))]))]).callprop(u'concat', var.get(u'bareSuperAfter'), Js([var.get(u't').callprop(u'expressionStatement', var.get(u'thisRef'))])))
        PyJs_wrapSuperCall_894_._set_name(u'wrapSuperCall')
        var.get(u'ClassTransformer').get(u'prototype').put(u'wrapSuperCall', PyJs_wrapSuperCall_894_)
        @Js
        def PyJs_verifyConstructor_899_(this, arguments, var=var):
            var = Scope({u'this':this, u'verifyConstructor':PyJs_verifyConstructor_899_, u'arguments':arguments}, var)
            var.registers([u'_isArray5', u'_isArray4', u'wrapReturn', u'_isArray3', u'bareSuper', u'superRef', u'_i5', u'_i4', u'_i3', u'returnPath', u'ref', u'body', u'bodyPaths', u'thisPath', u'guaranteedSuperBeforeFinish', u'thisRef', u'path', u'_ref5', u'_ref4', u'_ref3', u'_iterator5', u'_iterator4', u'_this2', u'_iterator3'])
            var.put(u'_this2', var.get(u"this"))
            if var.get(u"this").get(u'isDerived').neg():
                return var.get('undefined')
            var.put(u'path', var.get(u"this").get(u'userConstructorPath'))
            var.put(u'body', var.get(u'path').callprop(u'get', Js(u'body')))
            var.get(u'path').callprop(u'traverse', var.get(u'findThisesVisitor'), var.get(u"this"))
            var.put(u'guaranteedSuperBeforeFinish', var.get(u"this").get(u'bareSupers').get(u'length').neg().neg())
            var.put(u'superRef', (var.get(u"this").get(u'superName') or var.get(u't').callprop(u'identifier', Js(u'Function'))))
            var.put(u'thisRef', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'this')))
            #for JS loop
            var.put(u'_iterator3', var.get(u"this").get(u'bareSupers'))
            var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
            var.put(u'_i3', Js(0.0))
            var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
            while 1:
                pass
                if var.get(u'_isArray3'):
                    if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                        break
                    var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                    if var.get(u'_i3').get(u'done'):
                        break
                    var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                var.put(u'bareSuper', var.get(u'_ref3'))
                var.get(u"this").callprop(u'wrapSuperCall', var.get(u'bareSuper'), var.get(u'superRef'), var.get(u'thisRef'), var.get(u'body'))
                if var.get(u'guaranteedSuperBeforeFinish'):
                    @Js
                    def PyJs_anonymous_900_(parentPath, this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments, u'parentPath':parentPath}, var)
                        var.registers([u'parentPath'])
                        if PyJsStrictEq(var.get(u'parentPath'),var.get(u'path')):
                            return var.get(u'true')
                        if (var.get(u'parentPath').callprop(u'isLoop') or var.get(u'parentPath').callprop(u'isConditional')):
                            var.put(u'guaranteedSuperBeforeFinish', Js(False))
                            return var.get(u'true')
                    PyJs_anonymous_900_._set_name(u'anonymous')
                    var.get(u'bareSuper').callprop(u'find', PyJs_anonymous_900_)
            
            #for JS loop
            var.put(u'_iterator4', var.get(u"this").get(u'superThises'))
            var.put(u'_isArray4', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator4')))
            var.put(u'_i4', Js(0.0))
            var.put(u'_iterator4', (var.get(u'_iterator4') if var.get(u'_isArray4') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator4'))))
            while 1:
                pass
                if var.get(u'_isArray4'):
                    if (var.get(u'_i4')>=var.get(u'_iterator4').get(u'length')):
                        break
                    var.put(u'_ref4', var.get(u'_iterator4').get((var.put(u'_i4',Js(var.get(u'_i4').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i4', var.get(u'_iterator4').callprop(u'next'))
                    if var.get(u'_i4').get(u'done'):
                        break
                    var.put(u'_ref4', var.get(u'_i4').get(u'value'))
                var.put(u'thisPath', var.get(u'_ref4'))
                var.get(u'thisPath').callprop(u'replaceWith', var.get(u'thisRef'))
            
            @Js
            def PyJs_wrapReturn_901_(returnArg, this, arguments, var=var):
                var = Scope({u'this':this, u'returnArg':returnArg, u'wrapReturn':PyJs_wrapReturn_901_, u'arguments':arguments}, var)
                var.registers([u'returnArg'])
                return var.get(u't').callprop(u'callExpression', var.get(u'_this2').get(u'file').callprop(u'addHelper', Js(u'possibleConstructorReturn')), Js([var.get(u'thisRef')]).callprop(u'concat', (var.get(u'returnArg') or Js([]))))
            PyJs_wrapReturn_901_._set_name(u'wrapReturn')
            var.put(u'wrapReturn', PyJs_wrapReturn_901_)
            var.put(u'bodyPaths', var.get(u'body').callprop(u'get', Js(u'body')))
            if (var.get(u'bodyPaths').get(u'length') and var.get(u'bodyPaths').callprop(u'pop').callprop(u'isReturnStatement').neg()):
                var.get(u'body').callprop(u'pushContainer', Js(u'body'), var.get(u't').callprop(u'returnStatement', (var.get(u'thisRef') if var.get(u'guaranteedSuperBeforeFinish') else var.get(u'wrapReturn')())))
            #for JS loop
            var.put(u'_iterator5', var.get(u"this").get(u'superReturns'))
            var.put(u'_isArray5', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator5')))
            var.put(u'_i5', Js(0.0))
            var.put(u'_iterator5', (var.get(u'_iterator5') if var.get(u'_isArray5') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator5'))))
            while 1:
                pass
                if var.get(u'_isArray5'):
                    if (var.get(u'_i5')>=var.get(u'_iterator5').get(u'length')):
                        break
                    var.put(u'_ref5', var.get(u'_iterator5').get((var.put(u'_i5',Js(var.get(u'_i5').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i5', var.get(u'_iterator5').callprop(u'next'))
                    if var.get(u'_i5').get(u'done'):
                        break
                    var.put(u'_ref5', var.get(u'_i5').get(u'value'))
                var.put(u'returnPath', var.get(u'_ref5'))
                if var.get(u'returnPath').get(u'node').get(u'argument'):
                    var.put(u'ref', var.get(u'returnPath').get(u'scope').callprop(u'generateDeclaredUidIdentifier', Js(u'ret')))
                    var.get(u'returnPath').callprop(u'get', Js(u'argument')).callprop(u'replaceWithMultiple', Js([var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'ref'), var.get(u'returnPath').get(u'node').get(u'argument')), var.get(u'wrapReturn')(var.get(u'ref'))]))
                else:
                    var.get(u'returnPath').callprop(u'get', Js(u'argument')).callprop(u'replaceWith', var.get(u'wrapReturn')())
            
        PyJs_verifyConstructor_899_._set_name(u'verifyConstructor')
        var.get(u'ClassTransformer').get(u'prototype').put(u'verifyConstructor', PyJs_verifyConstructor_899_)
        @Js
        def PyJs_pushMethod_902_(node, path, this, arguments, var=var):
            var = Scope({u'node':node, u'path':path, u'this':this, u'arguments':arguments, u'pushMethod':PyJs_pushMethod_902_}, var)
            var.registers([u'node', u'scope', u'path'])
            var.put(u'scope', (var.get(u'path').get(u'scope') if var.get(u'path') else var.get(u"this").get(u'scope')))
            if PyJsStrictEq(var.get(u'node').get(u'kind'),Js(u'method')):
                if var.get(u"this").callprop(u'_processMethod', var.get(u'node'), var.get(u'scope')):
                    return var.get('undefined')
            var.get(u"this").callprop(u'pushToMap', var.get(u'node'), Js(False), var.get(u"null"), var.get(u'scope'))
        PyJs_pushMethod_902_._set_name(u'pushMethod')
        var.get(u'ClassTransformer').get(u'prototype').put(u'pushMethod', PyJs_pushMethod_902_)
        @Js
        def PyJs__processMethod_903_(this, arguments, var=var):
            var = Scope({u'this':this, u'_processMethod':PyJs__processMethod_903_, u'arguments':arguments}, var)
            var.registers([])
            return Js(False)
        PyJs__processMethod_903_._set_name(u'_processMethod')
        var.get(u'ClassTransformer').get(u'prototype').put(u'_processMethod', PyJs__processMethod_903_)
        @Js
        def PyJs_pushConstructor_904_(replaceSupers, method, path, this, arguments, var=var):
            var = Scope({u'this':this, u'replaceSupers':replaceSupers, u'arguments':arguments, u'path':path, u'method':method, u'pushConstructor':PyJs_pushConstructor_904_}, var)
            var.registers([u'path', u'replaceSupers', u'construct', u'method'])
            var.get(u"this").put(u'bareSupers', var.get(u'replaceSupers').get(u'bareSupers'))
            var.get(u"this").put(u'superReturns', var.get(u'replaceSupers').get(u'returns'))
            if var.get(u'path').get(u'scope').callprop(u'hasOwnBinding', var.get(u"this").get(u'classRef').get(u'name')):
                var.get(u'path').get(u'scope').callprop(u'rename', var.get(u"this").get(u'classRef').get(u'name'))
            var.put(u'construct', var.get(u"this").get(u'constructor'))
            var.get(u"this").put(u'userConstructorPath', var.get(u'path'))
            var.get(u"this").put(u'userConstructor', var.get(u'method'))
            var.get(u"this").put(u'hasConstructor', var.get(u'true'))
            var.get(u't').callprop(u'inheritsComments', var.get(u'construct'), var.get(u'method'))
            var.get(u'construct').put(u'_ignoreUserWhitespace', var.get(u'true'))
            var.get(u'construct').put(u'params', var.get(u'method').get(u'params'))
            var.get(u't').callprop(u'inherits', var.get(u'construct').get(u'body'), var.get(u'method').get(u'body'))
            var.get(u'construct').get(u'body').put(u'directives', var.get(u'method').get(u'body').get(u'directives'))
            var.get(u"this").callprop(u'_pushConstructor')
        PyJs_pushConstructor_904_._set_name(u'pushConstructor')
        var.get(u'ClassTransformer').get(u'prototype').put(u'pushConstructor', PyJs_pushConstructor_904_)
        @Js
        def PyJs__pushConstructor_905_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'_pushConstructor':PyJs__pushConstructor_905_}, var)
            var.registers([])
            if var.get(u"this").get(u'pushedConstructor'):
                return var.get('undefined')
            var.get(u"this").put(u'pushedConstructor', var.get(u'true'))
            if (var.get(u"this").get(u'hasInstanceDescriptors') or var.get(u"this").get(u'hasStaticDescriptors')):
                var.get(u"this").callprop(u'pushDescriptors')
            var.get(u"this").get(u'body').callprop(u'push', var.get(u"this").get(u'constructor'))
            var.get(u"this").callprop(u'pushInherits')
        PyJs__pushConstructor_905_._set_name(u'_pushConstructor')
        var.get(u'ClassTransformer').get(u'prototype').put(u'_pushConstructor', PyJs__pushConstructor_905_)
        @Js
        def PyJs_pushInherits_906_(this, arguments, var=var):
            var = Scope({u'this':this, u'pushInherits':PyJs_pushInherits_906_, u'arguments':arguments}, var)
            var.registers([])
            if (var.get(u"this").get(u'isDerived').neg() or var.get(u"this").get(u'pushedInherits')):
                return var.get('undefined')
            var.get(u"this").put(u'pushedInherits', var.get(u'true'))
            var.get(u"this").get(u'body').callprop(u'unshift', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'callExpression', var.get(u"this").get(u'file').callprop(u'addHelper', Js(u'inherits')), Js([var.get(u"this").get(u'classRef'), var.get(u"this").get(u'superName')]))))
        PyJs_pushInherits_906_._set_name(u'pushInherits')
        var.get(u'ClassTransformer').get(u'prototype').put(u'pushInherits', PyJs_pushInherits_906_)
        return var.get(u'ClassTransformer')
    PyJs_anonymous_879_._set_name(u'anonymous')
    var.put(u'ClassTransformer', PyJs_anonymous_879_())
    var.get(u'exports').put(u'default', var.get(u'ClassTransformer'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_865_._set_name(u'anonymous')
PyJs_Object_907_ = Js({u'babel-helper-define-map':Js(48.0),u'babel-helper-optimise-call-expression':Js(52.0),u'babel-helper-replace-supers':Js(54.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-template':Js(221.0),u'babel-traverse':Js(225.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_908_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_918_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_918_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    @Js
    def PyJs_anonymous_909_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'_ref', u'loose', u'pushAssign', u'getValue', u'pushMutatorDefine', u't', u'template', u'buildMutatorMapAssign', u'spec'])
        @Js
        def PyJsHoisted_spec_(info, this, arguments, var=var):
            var = Scope({u'info':info, u'this':this, u'arguments':arguments}, var)
            var.registers([u'body', u'info', u'_isArray2', u'_ref4', u'_i2', u'prop', u'state', u'computedProps', u'objId', u'key', u'_iterator2'])
            var.put(u'objId', var.get(u'info').get(u'objId'))
            var.put(u'body', var.get(u'info').get(u'body'))
            var.put(u'computedProps', var.get(u'info').get(u'computedProps'))
            var.put(u'state', var.get(u'info').get(u'state'))
            #for JS loop
            var.put(u'_iterator2', var.get(u'computedProps'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref4', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref4', var.get(u'_i2').get(u'value'))
                var.put(u'prop', var.get(u'_ref4'))
                var.put(u'key', var.get(u't').callprop(u'toComputedKey', var.get(u'prop')))
                if (PyJsStrictEq(var.get(u'prop').get(u'kind'),Js(u'get')) or PyJsStrictEq(var.get(u'prop').get(u'kind'),Js(u'set'))):
                    var.get(u'pushMutatorDefine')(var.get(u'info'), var.get(u'prop'))
                else:
                    PyJs_Object_911_ = Js({u'value':Js(u'__proto__')})
                    if var.get(u't').callprop(u'isStringLiteral', var.get(u'key'), PyJs_Object_911_):
                        var.get(u'pushAssign')(var.get(u'objId'), var.get(u'prop'), var.get(u'body'))
                    else:
                        if PyJsStrictEq(var.get(u'computedProps').get(u'length'),Js(1.0)):
                            return var.get(u't').callprop(u'callExpression', var.get(u'state').callprop(u'addHelper', Js(u'defineProperty')), Js([var.get(u'info').get(u'initPropExpression'), var.get(u'key'), var.get(u'getValue')(var.get(u'prop'))]))
                        else:
                            var.get(u'body').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'callExpression', var.get(u'state').callprop(u'addHelper', Js(u'defineProperty')), Js([var.get(u'objId'), var.get(u'key'), var.get(u'getValue')(var.get(u'prop'))]))))
            
        PyJsHoisted_spec_.func_name = u'spec'
        var.put(u'spec', PyJsHoisted_spec_)
        @Js
        def PyJsHoisted_pushMutatorDefine_(_ref2, prop, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'_ref2':_ref2, u'prop':prop}, var)
            var.registers([u'body', u'maybeMemoise', u'_ref2', u'prop', u'objId', u'key', u'scope', u'getMutatorId'])
            var.put(u'objId', var.get(u'_ref2').get(u'objId'))
            var.put(u'body', var.get(u'_ref2').get(u'body'))
            var.put(u'getMutatorId', var.get(u'_ref2').get(u'getMutatorId'))
            var.put(u'scope', var.get(u'_ref2').get(u'scope'))
            var.put(u'key', (var.get(u't').callprop(u'stringLiteral', var.get(u'prop').get(u'key').get(u'name')) if (var.get(u'prop').get(u'computed').neg() and var.get(u't').callprop(u'isIdentifier', var.get(u'prop').get(u'key'))) else var.get(u'prop').get(u'key')))
            var.put(u'maybeMemoise', var.get(u'scope').callprop(u'maybeGenerateMemoised', var.get(u'key')))
            if var.get(u'maybeMemoise'):
                var.get(u'body').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'maybeMemoise'), var.get(u'key'))))
                var.put(u'key', var.get(u'maybeMemoise'))
            PyJs_Object_910_ = Js({u'MUTATOR_MAP_REF':var.get(u'getMutatorId')(),u'KEY':var.get(u'key'),u'VALUE':var.get(u'getValue')(var.get(u'prop')),u'KIND':var.get(u't').callprop(u'identifier', var.get(u'prop').get(u'kind'))})
            var.get(u'body').get(u'push').callprop(u'apply', var.get(u'body'), var.get(u'buildMutatorMapAssign')(PyJs_Object_910_))
        PyJsHoisted_pushMutatorDefine_.func_name = u'pushMutatorDefine'
        var.put(u'pushMutatorDefine', PyJsHoisted_pushMutatorDefine_)
        @Js
        def PyJsHoisted_loose_(info, this, arguments, var=var):
            var = Scope({u'info':info, u'this':this, u'arguments':arguments}, var)
            var.registers([u'info', u'_isArray', u'_iterator', u'_ref3', u'prop', u'_i'])
            #for JS loop
            var.put(u'_iterator', var.get(u'info').get(u'computedProps'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref3', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref3', var.get(u'_i').get(u'value'))
                var.put(u'prop', var.get(u'_ref3'))
                if (PyJsStrictEq(var.get(u'prop').get(u'kind'),Js(u'get')) or PyJsStrictEq(var.get(u'prop').get(u'kind'),Js(u'set'))):
                    var.get(u'pushMutatorDefine')(var.get(u'info'), var.get(u'prop'))
                else:
                    var.get(u'pushAssign')(var.get(u'info').get(u'objId'), var.get(u'prop'), var.get(u'info').get(u'body'))
            
        PyJsHoisted_loose_.func_name = u'loose'
        var.put(u'loose', PyJsHoisted_loose_)
        @Js
        def PyJsHoisted_pushAssign_(objId, prop, body, this, arguments, var=var):
            var = Scope({u'body':body, u'this':this, u'objId':objId, u'arguments':arguments, u'prop':prop}, var)
            var.registers([u'body', u'objId', u'prop'])
            if (PyJsStrictEq(var.get(u'prop').get(u'kind'),Js(u'get')) and PyJsStrictEq(var.get(u'prop').get(u'kind'),Js(u'set'))):
                var.get(u'pushMutatorDefine')(var.get(u'objId'), var.get(u'prop'), var.get(u'body'))
            else:
                var.get(u'body').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u't').callprop(u'memberExpression', var.get(u'objId'), var.get(u'prop').get(u'key'), (var.get(u'prop').get(u'computed') or var.get(u't').callprop(u'isLiteral', var.get(u'prop').get(u'key')))), var.get(u'getValue')(var.get(u'prop')))))
        PyJsHoisted_pushAssign_.func_name = u'pushAssign'
        var.put(u'pushAssign', PyJsHoisted_pushAssign_)
        @Js
        def PyJsHoisted_getValue_(prop, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'prop':prop}, var)
            var.registers([u'prop'])
            if var.get(u't').callprop(u'isObjectProperty', var.get(u'prop')):
                return var.get(u'prop').get(u'value')
            else:
                if var.get(u't').callprop(u'isObjectMethod', var.get(u'prop')):
                    return var.get(u't').callprop(u'functionExpression', var.get(u"null"), var.get(u'prop').get(u'params'), var.get(u'prop').get(u'body'), var.get(u'prop').get(u'generator'), var.get(u'prop').get(u'async'))
        PyJsHoisted_getValue_.func_name = u'getValue'
        var.put(u'getValue', PyJsHoisted_getValue_)
        var.put(u't', var.get(u'_ref').get(u'types'))
        var.put(u'template', var.get(u'_ref').get(u'template'))
        var.put(u'buildMutatorMapAssign', var.get(u'template')(Js(u'\n    MUTATOR_MAP_REF[KEY] = MUTATOR_MAP_REF[KEY] || {};\n    MUTATOR_MAP_REF[KEY].KIND = VALUE;\n  ')))
        pass
        pass
        pass
        pass
        pass
        @Js
        def PyJs_exit_915_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'exit':PyJs_exit_915_, u'arguments':arguments}, var)
            var.registers([u'body', u'_isArray4', u'_isArray3', u'initProps', u'single', u'computedProps', u'_i4', u'_i3', u'hasComputed', u'prop', u'state', u'scope', u'getMutatorId', u'node', u'parent', u'initPropExpression', u'mutatorRef', u'foundComputed', u'objId', u'path', u'_prop', u'_ref6', u'_ref5', u'callback', u'_iterator4', u'_iterator3'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'parent', var.get(u'path').get(u'parent'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.put(u'hasComputed', Js(False))
            #for JS loop
            var.put(u'_iterator3', var.get(u'node').get(u'properties'))
            var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
            var.put(u'_i3', Js(0.0))
            var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
            while 1:
                pass
                if var.get(u'_isArray3'):
                    if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                        break
                    var.put(u'_ref5', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                    if var.get(u'_i3').get(u'done'):
                        break
                    var.put(u'_ref5', var.get(u'_i3').get(u'value'))
                var.put(u'prop', var.get(u'_ref5'))
                var.put(u'hasComputed', PyJsStrictEq(var.get(u'prop').get(u'computed'),var.get(u'true')))
                if var.get(u'hasComputed'):
                    break
            
            if var.get(u'hasComputed').neg():
                return var.get('undefined')
            var.put(u'initProps', Js([]))
            var.put(u'computedProps', Js([]))
            var.put(u'foundComputed', Js(False))
            #for JS loop
            var.put(u'_iterator4', var.get(u'node').get(u'properties'))
            var.put(u'_isArray4', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator4')))
            var.put(u'_i4', Js(0.0))
            var.put(u'_iterator4', (var.get(u'_iterator4') if var.get(u'_isArray4') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator4'))))
            while 1:
                pass
                if var.get(u'_isArray4'):
                    if (var.get(u'_i4')>=var.get(u'_iterator4').get(u'length')):
                        break
                    var.put(u'_ref6', var.get(u'_iterator4').get((var.put(u'_i4',Js(var.get(u'_i4').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i4', var.get(u'_iterator4').callprop(u'next'))
                    if var.get(u'_i4').get(u'done'):
                        break
                    var.put(u'_ref6', var.get(u'_i4').get(u'value'))
                var.put(u'_prop', var.get(u'_ref6'))
                if var.get(u'_prop').get(u'computed'):
                    var.put(u'foundComputed', var.get(u'true'))
                if var.get(u'foundComputed'):
                    var.get(u'computedProps').callprop(u'push', var.get(u'_prop'))
                else:
                    var.get(u'initProps').callprop(u'push', var.get(u'_prop'))
            
            var.put(u'objId', var.get(u'scope').callprop(u'generateUidIdentifierBasedOnNode', var.get(u'parent')))
            var.put(u'initPropExpression', var.get(u't').callprop(u'objectExpression', var.get(u'initProps')))
            var.put(u'body', Js([]))
            var.get(u'body').callprop(u'push', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'objId'), var.get(u'initPropExpression'))])))
            var.put(u'callback', var.get(u'spec'))
            if var.get(u'state').get(u'opts').get(u'loose'):
                var.put(u'callback', var.get(u'loose'))
            var.put(u'mutatorRef', PyJsComma(Js(0.0), Js(None)))
            @Js
            def PyJs_getMutatorId_916_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'getMutatorId':PyJs_getMutatorId_916_}, var)
                var.registers([])
                if var.get(u'mutatorRef').neg():
                    var.put(u'mutatorRef', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'mutatorMap')))
                    var.get(u'body').callprop(u'push', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'mutatorRef'), var.get(u't').callprop(u'objectExpression', Js([])))])))
                return var.get(u'mutatorRef')
            PyJs_getMutatorId_916_._set_name(u'getMutatorId')
            var.put(u'getMutatorId', PyJs_getMutatorId_916_)
            PyJs_Object_917_ = Js({u'scope':var.get(u'scope'),u'objId':var.get(u'objId'),u'body':var.get(u'body'),u'computedProps':var.get(u'computedProps'),u'initPropExpression':var.get(u'initPropExpression'),u'getMutatorId':var.get(u'getMutatorId'),u'state':var.get(u'state')})
            var.put(u'single', var.get(u'callback')(PyJs_Object_917_))
            if var.get(u'mutatorRef'):
                var.get(u'body').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'callExpression', var.get(u'state').callprop(u'addHelper', Js(u'defineEnumerableProperties')), Js([var.get(u'objId'), var.get(u'mutatorRef')]))))
            if var.get(u'single'):
                var.get(u'path').callprop(u'replaceWith', var.get(u'single'))
            else:
                var.get(u'body').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u'objId')))
                var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'body'))
        PyJs_exit_915_._set_name(u'exit')
        PyJs_Object_914_ = Js({u'exit':PyJs_exit_915_})
        PyJs_Object_913_ = Js({u'ObjectExpression':PyJs_Object_914_})
        PyJs_Object_912_ = Js({u'visitor':PyJs_Object_913_})
        return PyJs_Object_912_
    PyJs_anonymous_909_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_909_)
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_908_._set_name(u'anonymous')
PyJs_Object_919_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0)})
@Js
def PyJs_anonymous_920_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_classCallCheck2', u'require', u'module', u'_interopRequireDefault', u'_classCallCheck3', u'_getIterator3', u'_getIterator2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_950_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_950_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    @Js
    def PyJs_anonymous_921_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'DestructuringTransformer', u'hasRest', u'variableDeclarationHasPattern', u't', u'_ref', u'arrayUnpackVisitor'])
        @Js
        def PyJsHoisted_hasRest_(pattern, this, arguments, var=var):
            var = Scope({u'this':this, u'pattern':pattern, u'arguments':arguments}, var)
            var.registers([u'_isArray2', u'pattern', u'_ref3', u'_i2', u'elem', u'_iterator2'])
            #for JS loop
            var.put(u'_iterator2', var.get(u'pattern').get(u'elements'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref3', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref3', var.get(u'_i2').get(u'value'))
                var.put(u'elem', var.get(u'_ref3'))
                if var.get(u't').callprop(u'isRestElement', var.get(u'elem')):
                    return var.get(u'true')
            
            return Js(False)
        PyJsHoisted_hasRest_.func_name = u'hasRest'
        var.put(u'hasRest', PyJsHoisted_hasRest_)
        @Js
        def PyJsHoisted_variableDeclarationHasPattern_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node', u'_isArray', u'_iterator', u'_ref2', u'declar', u'_i'])
            #for JS loop
            var.put(u'_iterator', var.get(u'node').get(u'declarations'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i').get(u'value'))
                var.put(u'declar', var.get(u'_ref2'))
                if var.get(u't').callprop(u'isPattern', var.get(u'declar').get(u'id')):
                    return var.get(u'true')
            
            return Js(False)
        PyJsHoisted_variableDeclarationHasPattern_.func_name = u'variableDeclarationHasPattern'
        var.put(u'variableDeclarationHasPattern', PyJsHoisted_variableDeclarationHasPattern_)
        var.put(u't', var.get(u'_ref').get(u'types'))
        pass
        pass
        @Js
        def PyJs_ReferencedIdentifier_923_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_923_, u'arguments':arguments}, var)
            var.registers([u'path', u'state'])
            if var.get(u'state').get(u'bindings').get(var.get(u'path').get(u'node').get(u'name')):
                var.get(u'state').put(u'deopt', var.get(u'true'))
                var.get(u'path').callprop(u'stop')
        PyJs_ReferencedIdentifier_923_._set_name(u'ReferencedIdentifier')
        PyJs_Object_922_ = Js({u'ReferencedIdentifier':PyJs_ReferencedIdentifier_923_})
        var.put(u'arrayUnpackVisitor', PyJs_Object_922_)
        @Js
        def PyJs_anonymous_924_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'DestructuringTransformer'])
            @Js
            def PyJsHoisted_DestructuringTransformer_(opts, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'opts':opts}, var)
                var.registers([u'opts'])
                PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'DestructuringTransformer'))
                var.get(u"this").put(u'blockHoist', var.get(u'opts').get(u'blockHoist'))
                var.get(u"this").put(u'operator', var.get(u'opts').get(u'operator'))
                PyJs_Object_925_ = Js({})
                var.get(u"this").put(u'arrays', PyJs_Object_925_)
                var.get(u"this").put(u'nodes', (var.get(u'opts').get(u'nodes') or Js([])))
                var.get(u"this").put(u'scope', var.get(u'opts').get(u'scope'))
                var.get(u"this").put(u'file', var.get(u'opts').get(u'file'))
                var.get(u"this").put(u'kind', var.get(u'opts').get(u'kind'))
            PyJsHoisted_DestructuringTransformer_.func_name = u'DestructuringTransformer'
            var.put(u'DestructuringTransformer', PyJsHoisted_DestructuringTransformer_)
            pass
            @Js
            def PyJs_buildVariableAssignment_926_(id, init, this, arguments, var=var):
                var = Scope({u'this':this, u'init':init, u'buildVariableAssignment':PyJs_buildVariableAssignment_926_, u'id':id, u'arguments':arguments}, var)
                var.registers([u'node', u'init', u'id', u'op'])
                var.put(u'op', var.get(u"this").get(u'operator'))
                if var.get(u't').callprop(u'isMemberExpression', var.get(u'id')):
                    var.put(u'op', Js(u'='))
                var.put(u'node', PyJsComma(Js(0.0), Js(None)))
                if var.get(u'op'):
                    var.put(u'node', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', var.get(u'op'), var.get(u'id'), var.get(u'init'))))
                else:
                    var.put(u'node', var.get(u't').callprop(u'variableDeclaration', var.get(u"this").get(u'kind'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'id'), var.get(u'init'))])))
                var.get(u'node').put(u'_blockHoist', var.get(u"this").get(u'blockHoist'))
                return var.get(u'node')
            PyJs_buildVariableAssignment_926_._set_name(u'buildVariableAssignment')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'buildVariableAssignment', PyJs_buildVariableAssignment_926_)
            @Js
            def PyJs_buildVariableDeclaration_927_(id, init, this, arguments, var=var):
                var = Scope({u'this':this, u'init':init, u'buildVariableDeclaration':PyJs_buildVariableDeclaration_927_, u'id':id, u'arguments':arguments}, var)
                var.registers([u'init', u'declar', u'id'])
                var.put(u'declar', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'id'), var.get(u'init'))])))
                var.get(u'declar').put(u'_blockHoist', var.get(u"this").get(u'blockHoist'))
                return var.get(u'declar')
            PyJs_buildVariableDeclaration_927_._set_name(u'buildVariableDeclaration')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'buildVariableDeclaration', PyJs_buildVariableDeclaration_927_)
            @Js
            def PyJs_push_928_(id, init, this, arguments, var=var):
                var = Scope({u'this':this, u'push':PyJs_push_928_, u'init':init, u'id':id, u'arguments':arguments}, var)
                var.registers([u'init', u'id'])
                if var.get(u't').callprop(u'isObjectPattern', var.get(u'id')):
                    var.get(u"this").callprop(u'pushObjectPattern', var.get(u'id'), var.get(u'init'))
                else:
                    if var.get(u't').callprop(u'isArrayPattern', var.get(u'id')):
                        var.get(u"this").callprop(u'pushArrayPattern', var.get(u'id'), var.get(u'init'))
                    else:
                        if var.get(u't').callprop(u'isAssignmentPattern', var.get(u'id')):
                            var.get(u"this").callprop(u'pushAssignmentPattern', var.get(u'id'), var.get(u'init'))
                        else:
                            var.get(u"this").get(u'nodes').callprop(u'push', var.get(u"this").callprop(u'buildVariableAssignment', var.get(u'id'), var.get(u'init')))
            PyJs_push_928_._set_name(u'push')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'push', PyJs_push_928_)
            @Js
            def PyJs_toArray_929_(node, count, this, arguments, var=var):
                var = Scope({u'node':node, u'count':count, u'this':this, u'arguments':arguments, u'toArray':PyJs_toArray_929_}, var)
                var.registers([u'node', u'count'])
                if (var.get(u"this").get(u'file').get(u'opts').get(u'loose') or (var.get(u't').callprop(u'isIdentifier', var.get(u'node')) and var.get(u"this").get(u'arrays').get(var.get(u'node').get(u'name')))):
                    return var.get(u'node')
                else:
                    return var.get(u"this").get(u'scope').callprop(u'toArray', var.get(u'node'), var.get(u'count'))
            PyJs_toArray_929_._set_name(u'toArray')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'toArray', PyJs_toArray_929_)
            @Js
            def PyJs_pushAssignmentPattern_930_(pattern, valueRef, this, arguments, var=var):
                var = Scope({u'this':this, u'pattern':pattern, u'valueRef':valueRef, u'arguments':arguments, u'pushAssignmentPattern':PyJs_pushAssignmentPattern_930_}, var)
                var.registers([u'pattern', u'tempValueDefault', u'declar', u'tempValueRef', u'tempConditional', u'valueRef', u'left'])
                var.put(u'tempValueRef', var.get(u"this").get(u'scope').callprop(u'generateUidIdentifierBasedOnNode', var.get(u'valueRef')))
                var.put(u'declar', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'tempValueRef'), var.get(u'valueRef'))])))
                var.get(u'declar').put(u'_blockHoist', var.get(u"this").get(u'blockHoist'))
                var.get(u"this").get(u'nodes').callprop(u'push', var.get(u'declar'))
                var.put(u'tempConditional', var.get(u't').callprop(u'conditionalExpression', var.get(u't').callprop(u'binaryExpression', Js(u'==='), var.get(u'tempValueRef'), var.get(u't').callprop(u'identifier', Js(u'undefined'))), var.get(u'pattern').get(u'right'), var.get(u'tempValueRef')))
                var.put(u'left', var.get(u'pattern').get(u'left'))
                if var.get(u't').callprop(u'isPattern', var.get(u'left')):
                    var.put(u'tempValueDefault', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'tempValueRef'), var.get(u'tempConditional'))))
                    var.get(u'tempValueDefault').put(u'_blockHoist', var.get(u"this").get(u'blockHoist'))
                    var.get(u"this").get(u'nodes').callprop(u'push', var.get(u'tempValueDefault'))
                    var.get(u"this").callprop(u'push', var.get(u'left'), var.get(u'tempValueRef'))
                else:
                    var.get(u"this").get(u'nodes').callprop(u'push', var.get(u"this").callprop(u'buildVariableAssignment', var.get(u'left'), var.get(u'tempConditional')))
            PyJs_pushAssignmentPattern_930_._set_name(u'pushAssignmentPattern')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'pushAssignmentPattern', PyJs_pushAssignmentPattern_930_)
            @Js
            def PyJs_pushObjectRest_931_(pattern, objRef, spreadProp, spreadPropIndex, this, arguments, var=var):
                var = Scope({u'objRef':objRef, u'arguments':arguments, u'pushObjectRest':PyJs_pushObjectRest_931_, u'this':this, u'pattern':pattern, u'spreadProp':spreadProp, u'spreadPropIndex':spreadPropIndex}, var)
                var.registers([u'keys', u'pattern', u'spreadProp', u'value', u'prop', u'objRef', u'i', u'key', u'spreadPropIndex'])
                var.put(u'keys', Js([]))
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'pattern').get(u'properties').get(u'length')):
                    try:
                        var.put(u'prop', var.get(u'pattern').get(u'properties').get(var.get(u'i')))
                        if (var.get(u'i')>=var.get(u'spreadPropIndex')):
                            break
                        if var.get(u't').callprop(u'isRestProperty', var.get(u'prop')):
                            continue
                        var.put(u'key', var.get(u'prop').get(u'key'))
                        if (var.get(u't').callprop(u'isIdentifier', var.get(u'key')) and var.get(u'prop').get(u'computed').neg()):
                            var.put(u'key', var.get(u't').callprop(u'stringLiteral', var.get(u'prop').get(u'key').get(u'name')))
                        var.get(u'keys').callprop(u'push', var.get(u'key'))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                var.put(u'keys', var.get(u't').callprop(u'arrayExpression', var.get(u'keys')))
                var.put(u'value', var.get(u't').callprop(u'callExpression', var.get(u"this").get(u'file').callprop(u'addHelper', Js(u'objectWithoutProperties')), Js([var.get(u'objRef'), var.get(u'keys')])))
                var.get(u"this").get(u'nodes').callprop(u'push', var.get(u"this").callprop(u'buildVariableAssignment', var.get(u'spreadProp').get(u'argument'), var.get(u'value')))
            PyJs_pushObjectRest_931_._set_name(u'pushObjectRest')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'pushObjectRest', PyJs_pushObjectRest_931_)
            @Js
            def PyJs_pushObjectProperty_932_(prop, propRef, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'pushObjectProperty':PyJs_pushObjectProperty_932_, u'propRef':propRef, u'prop':prop}, var)
                var.registers([u'objRef', u'pattern', u'propRef', u'prop'])
                if var.get(u't').callprop(u'isLiteral', var.get(u'prop').get(u'key')):
                    var.get(u'prop').put(u'computed', var.get(u'true'))
                var.put(u'pattern', var.get(u'prop').get(u'value'))
                var.put(u'objRef', var.get(u't').callprop(u'memberExpression', var.get(u'propRef'), var.get(u'prop').get(u'key'), var.get(u'prop').get(u'computed')))
                if var.get(u't').callprop(u'isPattern', var.get(u'pattern')):
                    var.get(u"this").callprop(u'push', var.get(u'pattern'), var.get(u'objRef'))
                else:
                    var.get(u"this").get(u'nodes').callprop(u'push', var.get(u"this").callprop(u'buildVariableAssignment', var.get(u'pattern'), var.get(u'objRef')))
            PyJs_pushObjectProperty_932_._set_name(u'pushObjectProperty')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'pushObjectProperty', PyJs_pushObjectProperty_932_)
            @Js
            def PyJs_pushObjectPattern_933_(pattern, objRef, this, arguments, var=var):
                var = Scope({u'objRef':objRef, u'pattern':pattern, u'pushObjectPattern':PyJs_pushObjectPattern_933_, u'this':this, u'arguments':arguments}, var)
                var.registers([u'i', u'pattern', u'objRef', u'temp', u'prop'])
                if var.get(u'pattern').get(u'properties').get(u'length').neg():
                    var.get(u"this").get(u'nodes').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'callExpression', var.get(u"this").get(u'file').callprop(u'addHelper', Js(u'objectDestructuringEmpty')), Js([var.get(u'objRef')]))))
                if ((var.get(u'pattern').get(u'properties').get(u'length')>Js(1.0)) and var.get(u"this").get(u'scope').callprop(u'isStatic', var.get(u'objRef')).neg()):
                    var.put(u'temp', var.get(u"this").get(u'scope').callprop(u'generateUidIdentifierBasedOnNode', var.get(u'objRef')))
                    var.get(u"this").get(u'nodes').callprop(u'push', var.get(u"this").callprop(u'buildVariableDeclaration', var.get(u'temp'), var.get(u'objRef')))
                    var.put(u'objRef', var.get(u'temp'))
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'pattern').get(u'properties').get(u'length')):
                    try:
                        var.put(u'prop', var.get(u'pattern').get(u'properties').get(var.get(u'i')))
                        if var.get(u't').callprop(u'isRestProperty', var.get(u'prop')):
                            var.get(u"this").callprop(u'pushObjectRest', var.get(u'pattern'), var.get(u'objRef'), var.get(u'prop'), var.get(u'i'))
                        else:
                            var.get(u"this").callprop(u'pushObjectProperty', var.get(u'prop'), var.get(u'objRef'))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            PyJs_pushObjectPattern_933_._set_name(u'pushObjectPattern')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'pushObjectPattern', PyJs_pushObjectPattern_933_)
            @Js
            def PyJs_canUnpackArrayPattern_934_(pattern, arr, this, arguments, var=var):
                var = Scope({u'this':this, u'pattern':pattern, u'arr':arr, u'canUnpackArrayPattern':PyJs_canUnpackArrayPattern_934_, u'arguments':arguments}, var)
                var.registers([u'_i4', u'arr', u'_isArray4', u'_isArray3', u'pattern', u'_ref5', u'_ref4', u'_i3', u'elem', u'state', u'_elem', u'_iterator4', u'bindings', u'_iterator3'])
                if var.get(u't').callprop(u'isArrayExpression', var.get(u'arr')).neg():
                    return Js(False)
                if (var.get(u'pattern').get(u'elements').get(u'length')>var.get(u'arr').get(u'elements').get(u'length')):
                    return var.get('undefined')
                if ((var.get(u'pattern').get(u'elements').get(u'length')<var.get(u'arr').get(u'elements').get(u'length')) and var.get(u'hasRest')(var.get(u'pattern')).neg()):
                    return Js(False)
                #for JS loop
                var.put(u'_iterator3', var.get(u'pattern').get(u'elements'))
                var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
                var.put(u'_i3', Js(0.0))
                var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
                while 1:
                    pass
                    if var.get(u'_isArray3'):
                        if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                            break
                        var.put(u'_ref4', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                        if var.get(u'_i3').get(u'done'):
                            break
                        var.put(u'_ref4', var.get(u'_i3').get(u'value'))
                    var.put(u'elem', var.get(u'_ref4'))
                    if var.get(u'elem').neg():
                        return Js(False)
                    if var.get(u't').callprop(u'isMemberExpression', var.get(u'elem')):
                        return Js(False)
                
                #for JS loop
                var.put(u'_iterator4', var.get(u'arr').get(u'elements'))
                var.put(u'_isArray4', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator4')))
                var.put(u'_i4', Js(0.0))
                var.put(u'_iterator4', (var.get(u'_iterator4') if var.get(u'_isArray4') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator4'))))
                while 1:
                    pass
                    if var.get(u'_isArray4'):
                        if (var.get(u'_i4')>=var.get(u'_iterator4').get(u'length')):
                            break
                        var.put(u'_ref5', var.get(u'_iterator4').get((var.put(u'_i4',Js(var.get(u'_i4').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i4', var.get(u'_iterator4').callprop(u'next'))
                        if var.get(u'_i4').get(u'done'):
                            break
                        var.put(u'_ref5', var.get(u'_i4').get(u'value'))
                    var.put(u'_elem', var.get(u'_ref5'))
                    if var.get(u't').callprop(u'isSpreadElement', var.get(u'_elem')):
                        return Js(False)
                    if var.get(u't').callprop(u'isCallExpression', var.get(u'_elem')):
                        return Js(False)
                    if var.get(u't').callprop(u'isMemberExpression', var.get(u'_elem')):
                        return Js(False)
                
                var.put(u'bindings', var.get(u't').callprop(u'getBindingIdentifiers', var.get(u'pattern')))
                PyJs_Object_935_ = Js({u'deopt':Js(False),u'bindings':var.get(u'bindings')})
                var.put(u'state', PyJs_Object_935_)
                var.get(u"this").get(u'scope').callprop(u'traverse', var.get(u'arr'), var.get(u'arrayUnpackVisitor'), var.get(u'state'))
                return var.get(u'state').get(u'deopt').neg()
            PyJs_canUnpackArrayPattern_934_._set_name(u'canUnpackArrayPattern')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'canUnpackArrayPattern', PyJs_canUnpackArrayPattern_934_)
            @Js
            def PyJs_pushUnpackedArrayPattern_936_(pattern, arr, this, arguments, var=var):
                var = Scope({u'this':this, u'pattern':pattern, u'arr':arr, u'arguments':arguments, u'pushUnpackedArrayPattern':PyJs_pushUnpackedArrayPattern_936_}, var)
                var.registers([u'i', u'pattern', u'arr', u'elem'])
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'pattern').get(u'elements').get(u'length')):
                    try:
                        var.put(u'elem', var.get(u'pattern').get(u'elements').get(var.get(u'i')))
                        if var.get(u't').callprop(u'isRestElement', var.get(u'elem')):
                            var.get(u"this").callprop(u'push', var.get(u'elem').get(u'argument'), var.get(u't').callprop(u'arrayExpression', var.get(u'arr').get(u'elements').callprop(u'slice', var.get(u'i'))))
                        else:
                            var.get(u"this").callprop(u'push', var.get(u'elem'), var.get(u'arr').get(u'elements').get(var.get(u'i')))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            PyJs_pushUnpackedArrayPattern_936_._set_name(u'pushUnpackedArrayPattern')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'pushUnpackedArrayPattern', PyJs_pushUnpackedArrayPattern_936_)
            @Js
            def PyJs_pushArrayPattern_937_(pattern, arrayRef, this, arguments, var=var):
                var = Scope({u'this':this, u'pattern':pattern, u'arguments':arguments, u'arrayRef':arrayRef, u'pushArrayPattern':PyJs_pushArrayPattern_937_}, var)
                var.registers([u'count', u'toArray', u'i', u'pattern', u'elem', u'arrayRef', u'elemRef'])
                if var.get(u'pattern').get(u'elements').neg():
                    return var.get('undefined')
                if var.get(u"this").callprop(u'canUnpackArrayPattern', var.get(u'pattern'), var.get(u'arrayRef')):
                    return var.get(u"this").callprop(u'pushUnpackedArrayPattern', var.get(u'pattern'), var.get(u'arrayRef'))
                var.put(u'count', (var.get(u'hasRest')(var.get(u'pattern')).neg() and var.get(u'pattern').get(u'elements').get(u'length')))
                var.put(u'toArray', var.get(u"this").callprop(u'toArray', var.get(u'arrayRef'), var.get(u'count')))
                if var.get(u't').callprop(u'isIdentifier', var.get(u'toArray')):
                    var.put(u'arrayRef', var.get(u'toArray'))
                else:
                    var.put(u'arrayRef', var.get(u"this").get(u'scope').callprop(u'generateUidIdentifierBasedOnNode', var.get(u'arrayRef')))
                    var.get(u"this").get(u'arrays').put(var.get(u'arrayRef').get(u'name'), var.get(u'true'))
                    var.get(u"this").get(u'nodes').callprop(u'push', var.get(u"this").callprop(u'buildVariableDeclaration', var.get(u'arrayRef'), var.get(u'toArray')))
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'pattern').get(u'elements').get(u'length')):
                    try:
                        var.put(u'elem', var.get(u'pattern').get(u'elements').get(var.get(u'i')))
                        if var.get(u'elem').neg():
                            continue
                        var.put(u'elemRef', PyJsComma(Js(0.0), Js(None)))
                        if var.get(u't').callprop(u'isRestElement', var.get(u'elem')):
                            var.put(u'elemRef', var.get(u"this").callprop(u'toArray', var.get(u'arrayRef')))
                            if (var.get(u'i')>Js(0.0)):
                                var.put(u'elemRef', var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u'elemRef'), var.get(u't').callprop(u'identifier', Js(u'slice'))), Js([var.get(u't').callprop(u'numericLiteral', var.get(u'i'))])))
                            var.put(u'elem', var.get(u'elem').get(u'argument'))
                        else:
                            var.put(u'elemRef', var.get(u't').callprop(u'memberExpression', var.get(u'arrayRef'), var.get(u't').callprop(u'numericLiteral', var.get(u'i')), var.get(u'true')))
                        var.get(u"this").callprop(u'push', var.get(u'elem'), var.get(u'elemRef'))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            PyJs_pushArrayPattern_937_._set_name(u'pushArrayPattern')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'pushArrayPattern', PyJs_pushArrayPattern_937_)
            @Js
            def PyJs_init_938_(pattern, ref, this, arguments, var=var):
                var = Scope({u'this':this, u'pattern':pattern, u'init':PyJs_init_938_, u'ref':ref, u'arguments':arguments}, var)
                var.registers([u'pattern', u'memo', u'ref'])
                if (var.get(u't').callprop(u'isArrayExpression', var.get(u'ref')).neg() and var.get(u't').callprop(u'isMemberExpression', var.get(u'ref')).neg()):
                    var.put(u'memo', var.get(u"this").get(u'scope').callprop(u'maybeGenerateMemoised', var.get(u'ref'), var.get(u'true')))
                    if var.get(u'memo'):
                        var.get(u"this").get(u'nodes').callprop(u'push', var.get(u"this").callprop(u'buildVariableDeclaration', var.get(u'memo'), var.get(u'ref')))
                        var.put(u'ref', var.get(u'memo'))
                var.get(u"this").callprop(u'push', var.get(u'pattern'), var.get(u'ref'))
                return var.get(u"this").get(u'nodes')
            PyJs_init_938_._set_name(u'init')
            var.get(u'DestructuringTransformer').get(u'prototype').put(u'init', PyJs_init_938_)
            return var.get(u'DestructuringTransformer')
        PyJs_anonymous_924_._set_name(u'anonymous')
        var.put(u'DestructuringTransformer', PyJs_anonymous_924_())
        @Js
        def PyJs_ExportNamedDeclaration_941_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'ExportNamedDeclaration':PyJs_ExportNamedDeclaration_941_}, var)
            var.registers([u'id', u'specifiers', u'path', u'name', u'declaration'])
            var.put(u'declaration', var.get(u'path').callprop(u'get', Js(u'declaration')))
            if var.get(u'declaration').callprop(u'isVariableDeclaration').neg():
                return var.get('undefined')
            if var.get(u'variableDeclarationHasPattern')(var.get(u'declaration').get(u'node')).neg():
                return var.get('undefined')
            var.put(u'specifiers', Js([]))
            for PyJsTemp in var.get(u'path').callprop(u'getOuterBindingIdentifiers', var.get(u'path')):
                var.put(u'name', PyJsTemp)
                var.put(u'id', var.get(u't').callprop(u'identifier', var.get(u'name')))
                var.get(u'specifiers').callprop(u'push', var.get(u't').callprop(u'exportSpecifier', var.get(u'id'), var.get(u'id')))
            var.get(u'path').callprop(u'replaceWith', var.get(u'declaration').get(u'node'))
            var.get(u'path').callprop(u'insertAfter', var.get(u't').callprop(u'exportNamedDeclaration', var.get(u"null"), var.get(u'specifiers')))
        PyJs_ExportNamedDeclaration_941_._set_name(u'ExportNamedDeclaration')
        @Js
        def PyJs_ForXStatement_942_(path, file, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'file':file, u'ForXStatement':PyJs_ForXStatement_942_}, var)
            var.registers([u'node', u'destructuring', u'file', u'temp', u'pattern', u'key', u'path', u'scope', u'nodes', u'block', u'left'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.put(u'left', var.get(u'node').get(u'left'))
            if var.get(u't').callprop(u'isPattern', var.get(u'left')):
                var.put(u'temp', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'ref')))
                var.get(u'node').put(u'left', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'temp'))])))
                var.get(u'path').callprop(u'ensureBlock')
                var.get(u'node').get(u'body').get(u'body').callprop(u'unshift', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'left'), var.get(u'temp'))])))
                return var.get('undefined')
            if var.get(u't').callprop(u'isVariableDeclaration', var.get(u'left')).neg():
                return var.get('undefined')
            var.put(u'pattern', var.get(u'left').get(u'declarations').get(u'0').get(u'id'))
            if var.get(u't').callprop(u'isPattern', var.get(u'pattern')).neg():
                return var.get('undefined')
            var.put(u'key', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'ref')))
            var.get(u'node').put(u'left', var.get(u't').callprop(u'variableDeclaration', var.get(u'left').get(u'kind'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'key'), var.get(u"null"))])))
            var.put(u'nodes', Js([]))
            PyJs_Object_943_ = Js({u'kind':var.get(u'left').get(u'kind'),u'file':var.get(u'file'),u'scope':var.get(u'scope'),u'nodes':var.get(u'nodes')})
            var.put(u'destructuring', var.get(u'DestructuringTransformer').create(PyJs_Object_943_))
            var.get(u'destructuring').callprop(u'init', var.get(u'pattern'), var.get(u'key'))
            var.get(u'path').callprop(u'ensureBlock')
            var.put(u'block', var.get(u'node').get(u'body'))
            var.get(u'block').put(u'body', var.get(u'nodes').callprop(u'concat', var.get(u'block').get(u'body')))
        PyJs_ForXStatement_942_._set_name(u'ForXStatement')
        @Js
        def PyJs_CatchClause_944_(_ref6, file, this, arguments, var=var):
            var = Scope({u'this':this, u'_ref6':_ref6, u'arguments':arguments, u'file':file, u'CatchClause':PyJs_CatchClause_944_}, var)
            var.registers([u'node', u'destructuring', u'pattern', u'file', u'_ref6', u'scope', u'nodes', u'ref'])
            var.put(u'node', var.get(u'_ref6').get(u'node'))
            var.put(u'scope', var.get(u'_ref6').get(u'scope'))
            var.put(u'pattern', var.get(u'node').get(u'param'))
            if var.get(u't').callprop(u'isPattern', var.get(u'pattern')).neg():
                return var.get('undefined')
            var.put(u'ref', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'ref')))
            var.get(u'node').put(u'param', var.get(u'ref'))
            var.put(u'nodes', Js([]))
            PyJs_Object_945_ = Js({u'kind':Js(u'let'),u'file':var.get(u'file'),u'scope':var.get(u'scope'),u'nodes':var.get(u'nodes')})
            var.put(u'destructuring', var.get(u'DestructuringTransformer').create(PyJs_Object_945_))
            var.get(u'destructuring').callprop(u'init', var.get(u'pattern'), var.get(u'ref'))
            var.get(u'node').get(u'body').put(u'body', var.get(u'nodes').callprop(u'concat', var.get(u'node').get(u'body').get(u'body')))
        PyJs_CatchClause_944_._set_name(u'CatchClause')
        @Js
        def PyJs_AssignmentExpression_946_(path, file, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'file':file, u'AssignmentExpression':PyJs_AssignmentExpression_946_}, var)
            var.registers([u'node', u'destructuring', u'file', u'path', u'scope', u'nodes', u'ref'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            if var.get(u't').callprop(u'isPattern', var.get(u'node').get(u'left')).neg():
                return var.get('undefined')
            var.put(u'nodes', Js([]))
            PyJs_Object_947_ = Js({u'operator':var.get(u'node').get(u'operator'),u'file':var.get(u'file'),u'scope':var.get(u'scope'),u'nodes':var.get(u'nodes')})
            var.put(u'destructuring', var.get(u'DestructuringTransformer').create(PyJs_Object_947_))
            var.put(u'ref', PyJsComma(Js(0.0), Js(None)))
            if (var.get(u'path').callprop(u'isCompletionRecord') or var.get(u'path').get(u'parentPath').callprop(u'isExpressionStatement').neg()):
                var.put(u'ref', var.get(u'scope').callprop(u'generateUidIdentifierBasedOnNode', var.get(u'node').get(u'right'), Js(u'ref')))
                var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'ref'), var.get(u'node').get(u'right'))])))
                if var.get(u't').callprop(u'isArrayExpression', var.get(u'node').get(u'right')):
                    var.get(u'destructuring').get(u'arrays').put(var.get(u'ref').get(u'name'), var.get(u'true'))
            var.get(u'destructuring').callprop(u'init', var.get(u'node').get(u'left'), (var.get(u'ref') or var.get(u'node').get(u'right')))
            if var.get(u'ref'):
                var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u'ref')))
            var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'nodes'))
        PyJs_AssignmentExpression_946_._set_name(u'AssignmentExpression')
        @Js
        def PyJs_VariableDeclaration_948_(path, file, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'file':file, u'VariableDeclaration':PyJs_VariableDeclaration_948_}, var)
            var.registers([u'node', u'_isArray5', u'patternId', u'_ref7', u'parent', u'i', u'pattern', u'_i5', u'tail', u'_iterator5', u'_node', u'declar', u'nodesOut', u'file', u'path', u'destructuring', u'scope', u'nodes', u'_tail$declarations'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.put(u'parent', var.get(u'path').get(u'parent'))
            if var.get(u't').callprop(u'isForXStatement', var.get(u'parent')):
                return var.get('undefined')
            if (var.get(u'parent').neg() or var.get(u'path').get(u'container').neg()):
                return var.get('undefined')
            if var.get(u'variableDeclarationHasPattern')(var.get(u'node')).neg():
                return var.get('undefined')
            var.put(u'nodes', Js([]))
            var.put(u'declar', PyJsComma(Js(0.0), Js(None)))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'node').get(u'declarations').get(u'length')):
                try:
                    var.put(u'declar', var.get(u'node').get(u'declarations').get(var.get(u'i')))
                    var.put(u'patternId', var.get(u'declar').get(u'init'))
                    var.put(u'pattern', var.get(u'declar').get(u'id'))
                    PyJs_Object_949_ = Js({u'blockHoist':var.get(u'node').get(u'_blockHoist'),u'nodes':var.get(u'nodes'),u'scope':var.get(u'scope'),u'kind':var.get(u'node').get(u'kind'),u'file':var.get(u'file')})
                    var.put(u'destructuring', var.get(u'DestructuringTransformer').create(PyJs_Object_949_))
                    if var.get(u't').callprop(u'isPattern', var.get(u'pattern')):
                        var.get(u'destructuring').callprop(u'init', var.get(u'pattern'), var.get(u'patternId'))
                        if PyJsStrictNeq((+var.get(u'i')),(var.get(u'node').get(u'declarations').get(u'length')-Js(1.0))):
                            var.get(u't').callprop(u'inherits', var.get(u'nodes').get((var.get(u'nodes').get(u'length')-Js(1.0))), var.get(u'declar'))
                    else:
                        var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'inherits', var.get(u'destructuring').callprop(u'buildVariableAssignment', var.get(u'declar').get(u'id'), var.get(u'declar').get(u'init')), var.get(u'declar')))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            var.put(u'nodesOut', Js([]))
            #for JS loop
            var.put(u'_iterator5', var.get(u'nodes'))
            var.put(u'_isArray5', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator5')))
            var.put(u'_i5', Js(0.0))
            var.put(u'_iterator5', (var.get(u'_iterator5') if var.get(u'_isArray5') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator5'))))
            while 1:
                pass
                if var.get(u'_isArray5'):
                    if (var.get(u'_i5')>=var.get(u'_iterator5').get(u'length')):
                        break
                    var.put(u'_ref7', var.get(u'_iterator5').get((var.put(u'_i5',Js(var.get(u'_i5').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i5', var.get(u'_iterator5').callprop(u'next'))
                    if var.get(u'_i5').get(u'done'):
                        break
                    var.put(u'_ref7', var.get(u'_i5').get(u'value'))
                var.put(u'_node', var.get(u'_ref7'))
                var.put(u'tail', var.get(u'nodesOut').get((var.get(u'nodesOut').get(u'length')-Js(1.0))))
                if (((var.get(u'tail') and var.get(u't').callprop(u'isVariableDeclaration', var.get(u'tail'))) and var.get(u't').callprop(u'isVariableDeclaration', var.get(u'_node'))) and PyJsStrictEq(var.get(u'tail').get(u'kind'),var.get(u'_node').get(u'kind'))):
                    pass
                    var.put(u'_tail$declarations', var.get(u'tail').get(u'declarations')).get(u'push').callprop(u'apply', var.get(u'_tail$declarations'), var.get(u'_node').get(u'declarations'))
                else:
                    var.get(u'nodesOut').callprop(u'push', var.get(u'_node'))
            
            if PyJsStrictEq(var.get(u'nodesOut').get(u'length'),Js(1.0)):
                var.get(u'path').callprop(u'replaceWith', var.get(u'nodesOut').get(u'0'))
            else:
                var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'nodesOut'))
        PyJs_VariableDeclaration_948_._set_name(u'VariableDeclaration')
        PyJs_Object_940_ = Js({u'ExportNamedDeclaration':PyJs_ExportNamedDeclaration_941_,u'ForXStatement':PyJs_ForXStatement_942_,u'CatchClause':PyJs_CatchClause_944_,u'AssignmentExpression':PyJs_AssignmentExpression_946_,u'VariableDeclaration':PyJs_VariableDeclaration_948_})
        PyJs_Object_939_ = Js({u'visitor':PyJs_Object_940_})
        return PyJs_Object_939_
    PyJs_anonymous_921_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_921_)
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_920_._set_name(u'anonymous')
PyJs_Object_951_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/helpers/classCallCheck':Js(110.0)})
@Js
def PyJs_anonymous_952_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_create', u'exports', u'_interopRequireWildcard', u'getName', u'_babelTypes', u'module', u'_create2', u't', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'require'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_959_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_959_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_getName_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        if var.get(u't').callprop(u'isIdentifier', var.get(u'key')):
            return var.get(u'key').get(u'name')
        return var.get(u'key').get(u'value').callprop(u'toString')
    PyJsHoisted_getName_.func_name = u'getName'
    var.put(u'getName', PyJsHoisted_getName_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_958_ = Js({})
            var.put(u'newObj', PyJs_Object_958_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_create', var.get(u'require')(Js(u'babel-runtime/core-js/object/create')))
    var.put(u'_create2', var.get(u'_interopRequireDefault')(var.get(u'_create')))
    @Js
    def PyJs_anonymous_953_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_ObjectExpression_956_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'ObjectExpression':PyJs_ObjectExpression_956_, u'arguments':arguments}, var)
            var.registers([u'node', u'alreadySeenGetters', u'_isArray', u'plainProps', u'name', u'alreadySeenSetters', u'alreadySeenData', u'prop', u'_i', u'path', u'isDuplicate', u'_iterator', u'_ref'])
            var.put(u'node', var.get(u'path').get(u'node'))
            @Js
            def PyJs_anonymous_957_(prop, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'prop':prop}, var)
                var.registers([u'prop'])
                return (var.get(u't').callprop(u'isSpreadProperty', var.get(u'prop')).neg() and var.get(u'prop').get(u'computed').neg())
            PyJs_anonymous_957_._set_name(u'anonymous')
            var.put(u'plainProps', var.get(u'node').get(u'properties').callprop(u'filter', PyJs_anonymous_957_))
            var.put(u'alreadySeenData', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.put(u'alreadySeenGetters', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.put(u'alreadySeenSetters', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            #for JS loop
            var.put(u'_iterator', var.get(u'plainProps'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'prop', var.get(u'_ref'))
                var.put(u'name', var.get(u'getName')(var.get(u'prop').get(u'key')))
                var.put(u'isDuplicate', Js(False))
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'prop').get(u'kind'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'get')):
                        SWITCHED = True
                        if (var.get(u'alreadySeenData').get(var.get(u'name')) or var.get(u'alreadySeenGetters').get(var.get(u'name'))):
                            var.put(u'isDuplicate', var.get(u'true'))
                        var.get(u'alreadySeenGetters').put(var.get(u'name'), var.get(u'true'))
                        break
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'set')):
                        SWITCHED = True
                        if (var.get(u'alreadySeenData').get(var.get(u'name')) or var.get(u'alreadySeenSetters').get(var.get(u'name'))):
                            var.put(u'isDuplicate', var.get(u'true'))
                        var.get(u'alreadySeenSetters').put(var.get(u'name'), var.get(u'true'))
                        break
                    if True:
                        SWITCHED = True
                        if ((var.get(u'alreadySeenData').get(var.get(u'name')) or var.get(u'alreadySeenGetters').get(var.get(u'name'))) or var.get(u'alreadySeenSetters').get(var.get(u'name'))):
                            var.put(u'isDuplicate', var.get(u'true'))
                        var.get(u'alreadySeenData').put(var.get(u'name'), var.get(u'true'))
                    SWITCHED = True
                    break
                if var.get(u'isDuplicate'):
                    var.get(u'prop').put(u'computed', var.get(u'true'))
                    var.get(u'prop').put(u'key', var.get(u't').callprop(u'stringLiteral', var.get(u'name')))
            
        PyJs_ObjectExpression_956_._set_name(u'ObjectExpression')
        PyJs_Object_955_ = Js({u'ObjectExpression':PyJs_ObjectExpression_956_})
        PyJs_Object_954_ = Js({u'visitor':PyJs_Object_955_})
        return PyJs_Object_954_
    PyJs_anonymous_953_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_953_)
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_952_._set_name(u'anonymous')
PyJs_Object_960_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/object/create':Js(101.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_961_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_962_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'loose', u'messages', u'_ForOfStatementArray', u'buildForOfArray', u'buildForOfLoose', u't', u'template', u'_ref', u'buildForOf', u'spec'])
        @Js
        def PyJsHoisted_loose_(path, file, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'file':file}, var)
            var.registers([u'node', u'iteratorKey', u'isArrayKey', u'declar', u'file', u'path', u'scope', u'id', u'loop', u'left'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.put(u'left', var.get(u'node').get(u'left'))
            var.put(u'declar', PyJsComma(Js(0.0), Js(None)))
            var.put(u'id', PyJsComma(Js(0.0), Js(None)))
            if ((var.get(u't').callprop(u'isIdentifier', var.get(u'left')) or var.get(u't').callprop(u'isPattern', var.get(u'left'))) or var.get(u't').callprop(u'isMemberExpression', var.get(u'left'))):
                var.put(u'id', var.get(u'left'))
            else:
                if var.get(u't').callprop(u'isVariableDeclaration', var.get(u'left')):
                    var.put(u'id', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'ref')))
                    var.put(u'declar', var.get(u't').callprop(u'variableDeclaration', var.get(u'left').get(u'kind'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'left').get(u'declarations').get(u'0').get(u'id'), var.get(u'id'))])))
                else:
                    PyJsTempException = JsToPyException(var.get(u'file').callprop(u'buildCodeFrameError', var.get(u'left'), var.get(u'messages').callprop(u'get', Js(u'unknownForHead'), var.get(u'left').get(u'type'))))
                    raise PyJsTempException
            var.put(u'iteratorKey', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'iterator')))
            var.put(u'isArrayKey', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'isArray')))
            PyJs_Object_969_ = Js({u'LOOP_OBJECT':var.get(u'iteratorKey'),u'IS_ARRAY':var.get(u'isArrayKey'),u'OBJECT':var.get(u'node').get(u'right'),u'INDEX':var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'i')),u'ID':var.get(u'id')})
            var.put(u'loop', var.get(u'buildForOfLoose')(PyJs_Object_969_))
            if var.get(u'declar').neg():
                var.get(u'loop').get(u'body').get(u'body').callprop(u'shift')
            PyJs_Object_970_ = Js({u'declar':var.get(u'declar'),u'node':var.get(u'loop'),u'loop':var.get(u'loop')})
            return PyJs_Object_970_
        PyJsHoisted_loose_.func_name = u'loose'
        var.put(u'loose', PyJsHoisted_loose_)
        @Js
        def PyJsHoisted__ForOfStatementArray_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
            var.registers([u'node', u'iterationValue', u'right', u'uid', u'iterationKey', u'path', u'scope', u'nodes', u'loop', u'left'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.put(u'nodes', Js([]))
            var.put(u'right', var.get(u'node').get(u'right'))
            if (var.get(u't').callprop(u'isIdentifier', var.get(u'right')).neg() or var.get(u'scope').callprop(u'hasBinding', var.get(u'right').get(u'name')).neg()):
                var.put(u'uid', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'arr')))
                var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'uid'), var.get(u'right'))])))
                var.put(u'right', var.get(u'uid'))
            var.put(u'iterationKey', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'i')))
            PyJs_Object_965_ = Js({u'BODY':var.get(u'node').get(u'body'),u'KEY':var.get(u'iterationKey'),u'ARR':var.get(u'right')})
            var.put(u'loop', var.get(u'buildForOfArray')(PyJs_Object_965_))
            var.get(u't').callprop(u'inherits', var.get(u'loop'), var.get(u'node'))
            var.get(u't').callprop(u'ensureBlock', var.get(u'loop'))
            var.put(u'iterationValue', var.get(u't').callprop(u'memberExpression', var.get(u'right'), var.get(u'iterationKey'), var.get(u'true')))
            var.put(u'left', var.get(u'node').get(u'left'))
            if var.get(u't').callprop(u'isVariableDeclaration', var.get(u'left')):
                var.get(u'left').get(u'declarations').get(u'0').put(u'init', var.get(u'iterationValue'))
                var.get(u'loop').get(u'body').get(u'body').callprop(u'unshift', var.get(u'left'))
            else:
                var.get(u'loop').get(u'body').get(u'body').callprop(u'unshift', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'left'), var.get(u'iterationValue'))))
            if var.get(u'path').get(u'parentPath').callprop(u'isLabeledStatement'):
                var.put(u'loop', var.get(u't').callprop(u'labeledStatement', var.get(u'path').get(u'parentPath').get(u'node').get(u'label'), var.get(u'loop')))
            var.get(u'nodes').callprop(u'push', var.get(u'loop'))
            return var.get(u'nodes')
        PyJsHoisted__ForOfStatementArray_.func_name = u'_ForOfStatementArray'
        var.put(u'_ForOfStatementArray', PyJsHoisted__ForOfStatementArray_)
        @Js
        def PyJsHoisted_spec_(path, file, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'file':file}, var)
            var.registers([u'node', u'stepValue', u'isLabeledParent', u'stepKey', u'file', u'parent', u'tryBody', u'declar', u'template', u'path', u'scope', u'iteratorKey', u'loop', u'left'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.put(u'parent', var.get(u'path').get(u'parent'))
            var.put(u'left', var.get(u'node').get(u'left'))
            var.put(u'declar', PyJsComma(Js(0.0), Js(None)))
            var.put(u'stepKey', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'step')))
            var.put(u'stepValue', var.get(u't').callprop(u'memberExpression', var.get(u'stepKey'), var.get(u't').callprop(u'identifier', Js(u'value'))))
            if ((var.get(u't').callprop(u'isIdentifier', var.get(u'left')) or var.get(u't').callprop(u'isPattern', var.get(u'left'))) or var.get(u't').callprop(u'isMemberExpression', var.get(u'left'))):
                var.put(u'declar', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'left'), var.get(u'stepValue'))))
            else:
                if var.get(u't').callprop(u'isVariableDeclaration', var.get(u'left')):
                    var.put(u'declar', var.get(u't').callprop(u'variableDeclaration', var.get(u'left').get(u'kind'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'left').get(u'declarations').get(u'0').get(u'id'), var.get(u'stepValue'))])))
                else:
                    PyJsTempException = JsToPyException(var.get(u'file').callprop(u'buildCodeFrameError', var.get(u'left'), var.get(u'messages').callprop(u'get', Js(u'unknownForHead'), var.get(u'left').get(u'type'))))
                    raise PyJsTempException
            var.put(u'iteratorKey', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'iterator')))
            PyJs_Object_971_ = Js({u'ITERATOR_HAD_ERROR_KEY':var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'didIteratorError')),u'ITERATOR_COMPLETION':var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'iteratorNormalCompletion')),u'ITERATOR_ERROR_KEY':var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'iteratorError')),u'ITERATOR_KEY':var.get(u'iteratorKey'),u'STEP_KEY':var.get(u'stepKey'),u'OBJECT':var.get(u'node').get(u'right'),u'BODY':var.get(u"null")})
            var.put(u'template', var.get(u'buildForOf')(PyJs_Object_971_))
            var.put(u'isLabeledParent', var.get(u't').callprop(u'isLabeledStatement', var.get(u'parent')))
            var.put(u'tryBody', var.get(u'template').get(u'3').get(u'block').get(u'body'))
            var.put(u'loop', var.get(u'tryBody').get(u'0'))
            if var.get(u'isLabeledParent'):
                var.get(u'tryBody').put(u'0', var.get(u't').callprop(u'labeledStatement', var.get(u'parent').get(u'label'), var.get(u'loop')))
            PyJs_Object_972_ = Js({u'replaceParent':var.get(u'isLabeledParent'),u'declar':var.get(u'declar'),u'loop':var.get(u'loop'),u'node':var.get(u'template')})
            return PyJs_Object_972_
        PyJsHoisted_spec_.func_name = u'spec'
        var.put(u'spec', PyJsHoisted_spec_)
        var.put(u'messages', var.get(u'_ref').get(u'messages'))
        var.put(u'template', var.get(u'_ref').get(u'template'))
        var.put(u't', var.get(u'_ref').get(u'types'))
        var.put(u'buildForOfArray', var.get(u'template')(Js(u'\n    for (var KEY = 0; KEY < ARR.length; KEY++) BODY;\n  ')))
        def PyJs_LONG_963_(var=var):
            return var.get(u'template')(Js(u'\n    for (var LOOP_OBJECT = OBJECT,\n             IS_ARRAY = Array.isArray(LOOP_OBJECT),\n             INDEX = 0,\n             LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) {\n      var ID;\n      if (IS_ARRAY) {\n        if (INDEX >= LOOP_OBJECT.length) break;\n        ID = LOOP_OBJECT[INDEX++];\n      } else {\n        INDEX = LOOP_OBJECT.next();\n        if (INDEX.done) break;\n        ID = INDEX.value;\n      }\n    }\n  '))
        var.put(u'buildForOfLoose', PyJs_LONG_963_())
        def PyJs_LONG_964_(var=var):
            return var.get(u'template')(Js(u'\n    var ITERATOR_COMPLETION = true;\n    var ITERATOR_HAD_ERROR_KEY = false;\n    var ITERATOR_ERROR_KEY = undefined;\n    try {\n      for (var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY; !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done); ITERATOR_COMPLETION = true) {\n      }\n    } catch (err) {\n      ITERATOR_HAD_ERROR_KEY = true;\n      ITERATOR_ERROR_KEY = err;\n    } finally {\n      try {\n        if (!ITERATOR_COMPLETION && ITERATOR_KEY.return) {\n          ITERATOR_KEY.return();\n        }\n      } finally {\n        if (ITERATOR_HAD_ERROR_KEY) {\n          throw ITERATOR_ERROR_KEY;\n        }\n      }\n    }\n  '))
        var.put(u'buildForOf', PyJs_LONG_964_())
        pass
        @Js
        def PyJs_ForOfStatement_968_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'ForOfStatement':PyJs_ForOfStatement_968_}, var)
            var.registers([u'node', u'callback', u'state', u'declar', u'build', u'loop', u'path', u'block'])
            if var.get(u'path').callprop(u'get', Js(u'right')).callprop(u'isArrayExpression'):
                if var.get(u'path').get(u'parentPath').callprop(u'isLabeledStatement'):
                    return var.get(u'path').get(u'parentPath').callprop(u'replaceWithMultiple', var.get(u'_ForOfStatementArray')(var.get(u'path')))
                else:
                    return var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'_ForOfStatementArray')(var.get(u'path')))
            var.put(u'callback', var.get(u'spec'))
            if var.get(u'state').get(u'opts').get(u'loose'):
                var.put(u'callback', var.get(u'loose'))
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'build', var.get(u'callback')(var.get(u'path'), var.get(u'state')))
            var.put(u'declar', var.get(u'build').get(u'declar'))
            var.put(u'loop', var.get(u'build').get(u'loop'))
            var.put(u'block', var.get(u'loop').get(u'body'))
            var.get(u'path').callprop(u'ensureBlock')
            if var.get(u'declar'):
                var.get(u'block').get(u'body').callprop(u'push', var.get(u'declar'))
            var.get(u'block').put(u'body', var.get(u'block').get(u'body').callprop(u'concat', var.get(u'node').get(u'body').get(u'body')))
            var.get(u't').callprop(u'inherits', var.get(u'loop'), var.get(u'node'))
            var.get(u't').callprop(u'inherits', var.get(u'loop').get(u'body'), var.get(u'node').get(u'body'))
            if var.get(u'build').get(u'replaceParent'):
                var.get(u'path').get(u'parentPath').callprop(u'replaceWithMultiple', var.get(u'build').get(u'node'))
                var.get(u'path').callprop(u'remove')
            else:
                var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'build').get(u'node'))
        PyJs_ForOfStatement_968_._set_name(u'ForOfStatement')
        PyJs_Object_967_ = Js({u'ForOfStatement':PyJs_ForOfStatement_968_})
        PyJs_Object_966_ = Js({u'visitor':PyJs_Object_967_})
        return PyJs_Object_966_
        pass
        pass
    PyJs_anonymous_962_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_962_)
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_961_._set_name(u'anonymous')
PyJs_Object_973_ = Js({})
@Js
def PyJs_anonymous_974_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'_babelHelperFunctionName', u'module', u'_babelHelperFunctionName2', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_981_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_981_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_975_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_exit_979_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'exit':PyJs_exit_979_, u'arguments':arguments}, var)
            var.registers([u'path', u'replacement'])
            if (PyJsStrictNeq(var.get(u'path').get(u'key'),Js(u'value')) and var.get(u'path').get(u'parentPath').callprop(u'isObjectProperty').neg()):
                var.put(u'replacement', PyJsComma(Js(0.0),var.get(u'_babelHelperFunctionName2').get(u'default'))(var.get(u'path')))
                if var.get(u'replacement'):
                    var.get(u'path').callprop(u'replaceWith', var.get(u'replacement'))
        PyJs_exit_979_._set_name(u'exit')
        PyJs_Object_978_ = Js({u'exit':PyJs_exit_979_})
        @Js
        def PyJs_ObjectProperty_980_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'ObjectProperty':PyJs_ObjectProperty_980_, u'arguments':arguments}, var)
            var.registers([u'newNode', u'value', u'path'])
            var.put(u'value', var.get(u'path').callprop(u'get', Js(u'value')))
            if var.get(u'value').callprop(u'isFunction'):
                var.put(u'newNode', PyJsComma(Js(0.0),var.get(u'_babelHelperFunctionName2').get(u'default'))(var.get(u'value')))
                if var.get(u'newNode'):
                    var.get(u'value').callprop(u'replaceWith', var.get(u'newNode'))
        PyJs_ObjectProperty_980_._set_name(u'ObjectProperty')
        PyJs_Object_977_ = Js({u'ArrowFunctionExpression|FunctionExpression':PyJs_Object_978_,u'ObjectProperty':PyJs_ObjectProperty_980_})
        PyJs_Object_976_ = Js({u'visitor':PyJs_Object_977_})
        return PyJs_Object_976_
    PyJs_anonymous_975_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_975_)
    var.put(u'_babelHelperFunctionName', var.get(u'require')(Js(u'babel-helper-function-name')))
    var.put(u'_babelHelperFunctionName2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperFunctionName')))
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_974_._set_name(u'anonymous')
PyJs_Object_982_ = Js({u'babel-helper-function-name':Js(49.0)})
@Js
def PyJs_anonymous_983_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_984_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_NumericLiteral_987_(_ref, this, arguments, var=var):
            var = Scope({u'this':this, u'NumericLiteral':PyJs_NumericLiteral_987_, u'_ref':_ref, u'arguments':arguments}, var)
            var.registers([u'node', u'_ref'])
            var.put(u'node', var.get(u'_ref').get(u'node'))
            if (var.get(u'node').get(u'extra') and JsRegExp(u'/^0[ob]/i').callprop(u'test', var.get(u'node').get(u'extra').get(u'raw'))):
                var.get(u'node').put(u'extra', var.get(u'undefined'))
        PyJs_NumericLiteral_987_._set_name(u'NumericLiteral')
        @Js
        def PyJs_StringLiteral_988_(_ref2, this, arguments, var=var):
            var = Scope({u'this':this, u'StringLiteral':PyJs_StringLiteral_988_, u'_ref2':_ref2, u'arguments':arguments}, var)
            var.registers([u'node', u'_ref2'])
            var.put(u'node', var.get(u'_ref2').get(u'node'))
            if (var.get(u'node').get(u'extra') and JsRegExp(u'/\\\\[u]/gi').callprop(u'test', var.get(u'node').get(u'extra').get(u'raw'))):
                var.get(u'node').put(u'extra', var.get(u'undefined'))
        PyJs_StringLiteral_988_._set_name(u'StringLiteral')
        PyJs_Object_986_ = Js({u'NumericLiteral':PyJs_NumericLiteral_987_,u'StringLiteral':PyJs_StringLiteral_988_})
        PyJs_Object_985_ = Js({u'visitor':PyJs_Object_986_})
        return PyJs_Object_985_
    PyJs_anonymous_984_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_984_)
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_983_._set_name(u'anonymous')
PyJs_Object_989_ = Js({})
@Js
def PyJs_anonymous_990_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_create', u'buildDefine', u'exports', u'require', u'_babelTemplate', u'module', u'_create2', u'_babelTemplate2', u'buildFactory', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1007_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1007_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_create', var.get(u'require')(Js(u'babel-runtime/core-js/object/create')))
    var.put(u'_create2', var.get(u'_interopRequireDefault')(var.get(u'_create')))
    @Js
    def PyJs_anonymous_991_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'isValidRequireCall', u'amdVisitor', u'_ref', u't'])
        @Js
        def PyJsHoisted_isValidRequireCall_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
            var.registers([u'path', u'args', u'arg'])
            if var.get(u'path').callprop(u'isCallExpression').neg():
                return Js(False)
            PyJs_Object_992_ = Js({u'name':Js(u'require')})
            if var.get(u'path').callprop(u'get', Js(u'callee')).callprop(u'isIdentifier', PyJs_Object_992_).neg():
                return Js(False)
            if var.get(u'path').get(u'scope').callprop(u'getBinding', Js(u'require')):
                return Js(False)
            var.put(u'args', var.get(u'path').callprop(u'get', Js(u'arguments')))
            if PyJsStrictNeq(var.get(u'args').get(u'length'),Js(1.0)):
                return Js(False)
            var.put(u'arg', var.get(u'args').get(u'0'))
            if var.get(u'arg').callprop(u'isStringLiteral').neg():
                return Js(False)
            return var.get(u'true')
        PyJsHoisted_isValidRequireCall_.func_name = u'isValidRequireCall'
        var.put(u'isValidRequireCall', PyJsHoisted_isValidRequireCall_)
        var.put(u't', var.get(u'_ref').get(u'types'))
        pass
        @Js
        def PyJs_ReferencedIdentifier_994_(_ref2, this, arguments, var=var):
            var = Scope({u'this':this, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_994_, u'_ref2':_ref2, u'arguments':arguments}, var)
            var.registers([u'node', u'scope', u'_ref2'])
            var.put(u'node', var.get(u'_ref2').get(u'node'))
            var.put(u'scope', var.get(u'_ref2').get(u'scope'))
            if (PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'exports')) and var.get(u'scope').callprop(u'getBinding', Js(u'exports')).neg()):
                var.get(u"this").put(u'hasExports', var.get(u'true'))
            if (PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'module')) and var.get(u'scope').callprop(u'getBinding', Js(u'module')).neg()):
                var.get(u"this").put(u'hasModule', var.get(u'true'))
        PyJs_ReferencedIdentifier_994_._set_name(u'ReferencedIdentifier')
        @Js
        def PyJs_CallExpression_995_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'CallExpression':PyJs_CallExpression_995_}, var)
            var.registers([u'path'])
            if var.get(u'isValidRequireCall')(var.get(u'path')).neg():
                return var.get('undefined')
            var.get(u"this").get(u'bareSources').callprop(u'push', var.get(u'path').get(u'node').get(u'arguments').get(u'0'))
            var.get(u'path').callprop(u'remove')
        PyJs_CallExpression_995_._set_name(u'CallExpression')
        @Js
        def PyJs_VariableDeclarator_996_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'VariableDeclarator':PyJs_VariableDeclarator_996_}, var)
            var.registers([u'source', u'init', u'id', u'path'])
            var.put(u'id', var.get(u'path').callprop(u'get', Js(u'id')))
            if var.get(u'id').callprop(u'isIdentifier').neg():
                return var.get('undefined')
            var.put(u'init', var.get(u'path').callprop(u'get', Js(u'init')))
            if var.get(u'isValidRequireCall')(var.get(u'init')).neg():
                return var.get('undefined')
            var.put(u'source', var.get(u'init').get(u'node').get(u'arguments').get(u'0'))
            var.get(u"this").get(u'sourceNames').put(var.get(u'source').get(u'value'), var.get(u'true'))
            var.get(u"this").get(u'sources').callprop(u'push', Js([var.get(u'id').get(u'node'), var.get(u'source')]))
            var.get(u'path').callprop(u'remove')
        PyJs_VariableDeclarator_996_._set_name(u'VariableDeclarator')
        PyJs_Object_993_ = Js({u'ReferencedIdentifier':PyJs_ReferencedIdentifier_994_,u'CallExpression':PyJs_CallExpression_995_,u'VariableDeclarator':PyJs_VariableDeclarator_996_})
        var.put(u'amdVisitor', PyJs_Object_993_)
        @Js
        def PyJs_pre_998_(this, arguments, var=var):
            var = Scope({u'this':this, u'pre':PyJs_pre_998_, u'arguments':arguments}, var)
            var.registers([])
            var.get(u"this").put(u'sources', Js([]))
            var.get(u"this").put(u'sourceNames', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.get(u"this").put(u'bareSources', Js([]))
            var.get(u"this").put(u'hasExports', Js(False))
            var.get(u"this").put(u'hasModule', Js(False))
        PyJs_pre_998_._set_name(u'pre')
        @Js
        def PyJs_exit_1001_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'exit':PyJs_exit_1001_, u'arguments':arguments}, var)
            var.registers([u'node', u'moduleName', u'_this', u'factory', u'sources', u'params', u'path'])
            var.put(u'_this', var.get(u"this"))
            if var.get(u"this").get(u'ran'):
                return var.get('undefined')
            var.get(u"this").put(u'ran', var.get(u'true'))
            var.get(u'path').callprop(u'traverse', var.get(u'amdVisitor'), var.get(u"this"))
            @Js
            def PyJs_anonymous_1002_(source, this, arguments, var=var):
                var = Scope({u'this':this, u'source':source, u'arguments':arguments}, var)
                var.registers([u'source'])
                return var.get(u'source').get(u'0')
            PyJs_anonymous_1002_._set_name(u'anonymous')
            var.put(u'params', var.get(u"this").get(u'sources').callprop(u'map', PyJs_anonymous_1002_))
            @Js
            def PyJs_anonymous_1003_(source, this, arguments, var=var):
                var = Scope({u'this':this, u'source':source, u'arguments':arguments}, var)
                var.registers([u'source'])
                return var.get(u'source').get(u'1')
            PyJs_anonymous_1003_._set_name(u'anonymous')
            var.put(u'sources', var.get(u"this").get(u'sources').callprop(u'map', PyJs_anonymous_1003_))
            @Js
            def PyJs_anonymous_1004_(str, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
                var.registers([u'str'])
                return var.get(u'_this').get(u'sourceNames').get(var.get(u'str').get(u'value')).neg()
            PyJs_anonymous_1004_._set_name(u'anonymous')
            var.put(u'sources', var.get(u'sources').callprop(u'concat', var.get(u"this").get(u'bareSources').callprop(u'filter', PyJs_anonymous_1004_)))
            var.put(u'moduleName', var.get(u"this").callprop(u'getModuleName'))
            if var.get(u'moduleName'):
                var.put(u'moduleName', var.get(u't').callprop(u'stringLiteral', var.get(u'moduleName')))
            if var.get(u"this").get(u'hasExports'):
                var.get(u'sources').callprop(u'unshift', var.get(u't').callprop(u'stringLiteral', Js(u'exports')))
                var.get(u'params').callprop(u'unshift', var.get(u't').callprop(u'identifier', Js(u'exports')))
            if var.get(u"this").get(u'hasModule'):
                var.get(u'sources').callprop(u'unshift', var.get(u't').callprop(u'stringLiteral', Js(u'module')))
                var.get(u'params').callprop(u'unshift', var.get(u't').callprop(u'identifier', Js(u'module')))
            var.put(u'node', var.get(u'path').get(u'node'))
            PyJs_Object_1005_ = Js({u'PARAMS':var.get(u'params'),u'BODY':var.get(u'node').get(u'body')})
            var.put(u'factory', var.get(u'buildFactory')(PyJs_Object_1005_))
            var.get(u'factory').get(u'expression').get(u'body').put(u'directives', var.get(u'node').get(u'directives'))
            var.get(u'node').put(u'directives', Js([]))
            PyJs_Object_1006_ = Js({u'MODULE_NAME':var.get(u'moduleName'),u'SOURCES':var.get(u'sources'),u'FACTORY':var.get(u'factory')})
            var.get(u'node').put(u'body', Js([var.get(u'buildDefine')(PyJs_Object_1006_)]))
        PyJs_exit_1001_._set_name(u'exit')
        PyJs_Object_1000_ = Js({u'exit':PyJs_exit_1001_})
        PyJs_Object_999_ = Js({u'Program':PyJs_Object_1000_})
        PyJs_Object_997_ = Js({u'inherits':var.get(u'require')(Js(u'babel-plugin-transform-es2015-modules-commonjs')),u'pre':PyJs_pre_998_,u'visitor':PyJs_Object_999_})
        return PyJs_Object_997_
    PyJs_anonymous_991_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_991_)
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    var.put(u'_babelTemplate2', var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')))
    pass
    var.put(u'buildDefine', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  define(MODULE_NAME, [SOURCES], FACTORY);\n')))
    var.put(u'buildFactory', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (PARAMS) {\n    BODY;\n  })\n')))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_990_._set_name(u'anonymous')
PyJs_Object_1008_ = Js({u'babel-plugin-transform-es2015-modules-commonjs':Js(73.0),u'babel-runtime/core-js/object/create':Js(101.0),u'babel-template':Js(221.0)})
@Js
def PyJs_anonymous_1009_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_symbol2', u'_babelTemplate', u'module', u'buildLooseExportsModuleDeclaration', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'buildExportAll', u'_create2', u'_keys', u'buildExportsAssignment', u'THIS_BREAK_KEYS', u'_create', u'exports', u'_interopRequireWildcard', u'_babelTypes', u'buildRequire', u'buildExportsModuleDeclaration', u'_symbol', u'_path2', u'buildExportsFrom', u'_keys2', u'_babelTemplate2', u't', u'require'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1028_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1028_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1027_ = Js({})
            var.put(u'newObj', PyJs_Object_1027_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_keys', var.get(u'require')(Js(u'babel-runtime/core-js/object/keys')))
    var.put(u'_keys2', var.get(u'_interopRequireDefault')(var.get(u'_keys')))
    var.put(u'_create', var.get(u'require')(Js(u'babel-runtime/core-js/object/create')))
    var.put(u'_create2', var.get(u'_interopRequireDefault')(var.get(u'_create')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_symbol', var.get(u'require')(Js(u'babel-runtime/core-js/symbol')))
    var.put(u'_symbol2', var.get(u'_interopRequireDefault')(var.get(u'_symbol')))
    @Js
    def PyJs_anonymous_1010_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'reassignmentVisitor', u'REASSIGN_REMAP_SKIP'])
        var.put(u'REASSIGN_REMAP_SKIP', PyJsComma(Js(0.0),var.get(u'_symbol2').get(u'default'))())
        @Js
        def PyJs_ReferencedIdentifier_1012_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_1012_, u'arguments':arguments}, var)
            var.registers([u'property', u'remap', u'object', u'name', u'path'])
            var.put(u'name', var.get(u'path').get(u'node').get(u'name'))
            var.put(u'remap', var.get(u"this").get(u'remaps').get(var.get(u'name')))
            if var.get(u'remap').neg():
                return var.get('undefined')
            if PyJsStrictNeq(var.get(u"this").get(u'scope').callprop(u'getBinding', var.get(u'name')),var.get(u'path').get(u'scope').callprop(u'getBinding', var.get(u'name'))):
                return var.get('undefined')
            PyJs_Object_1013_ = Js({u'callee':var.get(u'path').get(u'node')})
            if var.get(u'path').get(u'parentPath').callprop(u'isCallExpression', PyJs_Object_1013_):
                var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'sequenceExpression', Js([var.get(u't').callprop(u'numericLiteral', Js(0.0)), var.get(u'remap')])))
            else:
                if (var.get(u'path').callprop(u'isJSXIdentifier') and var.get(u't').callprop(u'isMemberExpression', var.get(u'remap'))):
                    var.put(u'object', var.get(u'remap').get(u'object'))
                    var.put(u'property', var.get(u'remap').get(u'property'))
                    var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'JSXMemberExpression', var.get(u't').callprop(u'JSXIdentifier', var.get(u'object').get(u'name')), var.get(u't').callprop(u'JSXIdentifier', var.get(u'property').get(u'name'))))
                else:
                    var.get(u'path').callprop(u'replaceWith', var.get(u'remap'))
            var.get(u"this").callprop(u'requeueInParent', var.get(u'path'))
        PyJs_ReferencedIdentifier_1012_._set_name(u'ReferencedIdentifier')
        @Js
        def PyJs_AssignmentExpression_1014_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'AssignmentExpression':PyJs_AssignmentExpression_1014_}, var)
            var.registers([u'node', u'_isArray', u'_iterator', u'name', u'exports', u'reid', u'_i', u'path', u'_ref', u'left'])
            var.put(u'node', var.get(u'path').get(u'node'))
            if var.get(u'node').get(var.get(u'REASSIGN_REMAP_SKIP')):
                return var.get('undefined')
            var.put(u'left', var.get(u'path').callprop(u'get', Js(u'left')))
            if var.get(u'left').callprop(u'isIdentifier').neg():
                return var.get('undefined')
            var.put(u'name', var.get(u'left').get(u'node').get(u'name'))
            var.put(u'exports', var.get(u"this").get(u'exports').get(var.get(u'name')))
            if var.get(u'exports').neg():
                return var.get('undefined')
            if PyJsStrictNeq(var.get(u"this").get(u'scope').callprop(u'getBinding', var.get(u'name')),var.get(u'path').get(u'scope').callprop(u'getBinding', var.get(u'name'))):
                return var.get('undefined')
            var.get(u'node').put(var.get(u'REASSIGN_REMAP_SKIP'), var.get(u'true'))
            #for JS loop
            var.put(u'_iterator', var.get(u'exports'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'reid', var.get(u'_ref'))
                var.put(u'node', var.get(u'buildExportsAssignment')(var.get(u'reid'), var.get(u'node')).get(u'expression'))
            
            var.get(u'path').callprop(u'replaceWith', var.get(u'node'))
            var.get(u"this").callprop(u'requeueInParent', var.get(u'path'))
        PyJs_AssignmentExpression_1014_._set_name(u'AssignmentExpression')
        @Js
        def PyJs_UpdateExpression_1015_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'UpdateExpression':PyJs_UpdateExpression_1015_}, var)
            var.registers([u'node', u'exports', u'name', u'arg', u'operator', u'path', u'nodes'])
            var.put(u'arg', var.get(u'path').callprop(u'get', Js(u'argument')))
            if var.get(u'arg').callprop(u'isIdentifier').neg():
                return var.get('undefined')
            var.put(u'name', var.get(u'arg').get(u'node').get(u'name'))
            var.put(u'exports', var.get(u"this").get(u'exports').get(var.get(u'name')))
            if var.get(u'exports').neg():
                return var.get('undefined')
            if PyJsStrictNeq(var.get(u"this").get(u'scope').callprop(u'getBinding', var.get(u'name')),var.get(u'path').get(u'scope').callprop(u'getBinding', var.get(u'name'))):
                return var.get('undefined')
            var.put(u'node', var.get(u't').callprop(u'assignmentExpression', (var.get(u'path').get(u'node').get(u'operator').get(u'0')+Js(u'=')), var.get(u'arg').get(u'node'), var.get(u't').callprop(u'numericLiteral', Js(1.0))))
            if ((var.get(u'path').get(u'parentPath').callprop(u'isExpressionStatement') and var.get(u'path').callprop(u'isCompletionRecord').neg()) or var.get(u'path').get(u'node').get(u'prefix')):
                var.get(u'path').callprop(u'replaceWith', var.get(u'node'))
                var.get(u"this").callprop(u'requeueInParent', var.get(u'path'))
                return var.get('undefined')
            var.put(u'nodes', Js([]))
            var.get(u'nodes').callprop(u'push', var.get(u'node'))
            var.put(u'operator', PyJsComma(Js(0.0), Js(None)))
            if PyJsStrictEq(var.get(u'path').get(u'node').get(u'operator'),Js(u'--')):
                var.put(u'operator', Js(u'+'))
            else:
                var.put(u'operator', Js(u'-'))
            var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'binaryExpression', var.get(u'operator'), var.get(u'arg').get(u'node'), var.get(u't').callprop(u'numericLiteral', Js(1.0))))
            var.get(u'path').callprop(u'replaceWithMultiple', var.get(u't').callprop(u'sequenceExpression', var.get(u'nodes')))
        PyJs_UpdateExpression_1015_._set_name(u'UpdateExpression')
        PyJs_Object_1011_ = Js({u'ReferencedIdentifier':PyJs_ReferencedIdentifier_1012_,u'AssignmentExpression':PyJs_AssignmentExpression_1014_,u'UpdateExpression':PyJs_UpdateExpression_1015_})
        var.put(u'reassignmentVisitor', PyJs_Object_1011_)
        @Js
        def PyJs_ThisExpression_1018_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'ThisExpression':PyJs_ThisExpression_1018_, u'arguments':arguments}, var)
            var.registers([u'path', u'state'])
            if var.get(u"this").get(u'ranCommonJS'):
                return var.get('undefined')
            @Js
            def PyJs_anonymous_1019_(path, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                var.registers([u'path'])
                return (var.get(u'path').callprop(u'is', Js(u'shadow')).neg() and (var.get(u'THIS_BREAK_KEYS').callprop(u'indexOf', var.get(u'path').get(u'type'))>=Js(0.0)))
            PyJs_anonymous_1019_._set_name(u'anonymous')
            if (PyJsStrictNeq(var.get(u'state').get(u'opts').get(u'allowTopLevelThis'),var.get(u'true')) and var.get(u'path').callprop(u'findParent', PyJs_anonymous_1019_).neg()):
                var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'identifier', Js(u'undefined')))
        PyJs_ThisExpression_1018_._set_name(u'ThisExpression')
        @Js
        def PyJs_exit_1021_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'exit':PyJs_exit_1021_, u'arguments':arguments}, var)
            var.registers([u'decl', u'addRequire', u'_isArray5', u'_isArray4', u'_isArray3', u'_isArray2', u'_isArray6', u'imports', u'_specifiers', u'ids', u'_specifier4', u'_isArray7', u'hoistedExportsNode', u'_declaration', u'_specifier2', u'_specifier3', u'specifier', u'importsEntry', u'_specifier', u'_importsEntry$specifi', u'uid', u'_iterator6', u'i', u'_source', u'_i7', u'_i6', u'_i5', u'_i4', u'hasImports', u'_i2', u'id', u'strict', u'init', u'exportNode', u'scope', u'nodes', u'defNode', u'ref', u'addTo', u'body', u'exports', u'node', u'_i3', u'requireNode', u'nonHoistedExportNames', u'_varDecl', u'varDecl', u'declarators', u'topNodes', u'buildTemplate', u'key', u'declaration', u'_id4', u'path', u'name', u'_id2', u'_id3', u'remaps', u'specifiers', u'_id', u'_imports$source', u'hasExports', u'_defNode', u'_ref6', u'_ref5', u'_ref4', u'_ref3', u'_ref2', u'maxBlockHoist', u'_ref7', u'declar', u'source', u'wildcard', u'target', u'_iterator5', u'_iterator4', u'_iterator7', u'_iterator2', u'requires', u'_iterator3', u'_path'])
            @Js
            def PyJsHoisted_addRequire_(source, blockHoist, this, arguments, var=var):
                var = Scope({u'this':this, u'source':source, u'blockHoist':blockHoist, u'arguments':arguments}, var)
                var.registers([u'cached', u'varDecl', u'blockHoist', u'ref', u'source'])
                var.put(u'cached', var.get(u'requires').get(var.get(u'source')))
                if var.get(u'cached'):
                    return var.get(u'cached')
                var.put(u'ref', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', PyJsComma(Js(0.0),var.get(u'_path2').get(u'basename'))(var.get(u'source'), PyJsComma(Js(0.0),var.get(u'_path2').get(u'extname'))(var.get(u'source')))))
                var.put(u'varDecl', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'ref'), var.get(u'buildRequire')(var.get(u't').callprop(u'stringLiteral', var.get(u'source'))).get(u'expression'))])))
                if var.get(u'imports').get(var.get(u'source')):
                    var.get(u'varDecl').put(u'loc', var.get(u'imports').get(var.get(u'source')).get(u'loc'))
                if (PyJsStrictEq(var.get(u'blockHoist',throw=False).typeof(),Js(u'number')) and (var.get(u'blockHoist')>Js(0.0))):
                    var.get(u'varDecl').put(u'_blockHoist', var.get(u'blockHoist'))
                var.get(u'topNodes').callprop(u'push', var.get(u'varDecl'))
                return var.get(u'requires').put(var.get(u'source'), var.get(u'ref'))
            PyJsHoisted_addRequire_.func_name = u'addRequire'
            var.put(u'addRequire', PyJsHoisted_addRequire_)
            @Js
            def PyJsHoisted_addTo_(obj, key, arr, this, arguments, var=var):
                var = Scope({u'this':this, u'arr':arr, u'obj':obj, u'arguments':arguments, u'key':key}, var)
                var.registers([u'arr', u'obj', u'key', u'existing'])
                var.put(u'existing', (var.get(u'obj').get(var.get(u'key')) or Js([])))
                var.get(u'obj').put(var.get(u'key'), var.get(u'existing').callprop(u'concat', var.get(u'arr')))
            PyJsHoisted_addTo_.func_name = u'addTo'
            var.put(u'addTo', PyJsHoisted_addTo_)
            var.get(u"this").put(u'ranCommonJS', var.get(u'true'))
            var.put(u'strict', var.get(u"this").get(u'opts').get(u'strict').neg().neg())
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.get(u'scope').callprop(u'rename', Js(u'module'))
            var.get(u'scope').callprop(u'rename', Js(u'exports'))
            var.get(u'scope').callprop(u'rename', Js(u'require'))
            var.put(u'hasExports', Js(False))
            var.put(u'hasImports', Js(False))
            var.put(u'body', var.get(u'path').callprop(u'get', Js(u'body')))
            var.put(u'imports', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.put(u'exports', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.put(u'nonHoistedExportNames', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.put(u'topNodes', Js([]))
            var.put(u'remaps', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.put(u'requires', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            pass
            pass
            #for JS loop
            var.put(u'_iterator2', var.get(u'body'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                var.put(u'_path', var.get(u'_ref2'))
                if var.get(u'_path').callprop(u'isExportDeclaration'):
                    var.put(u'hasExports', var.get(u'true'))
                    var.put(u'specifiers', Js([]).callprop(u'concat', var.get(u'_path').callprop(u'get', Js(u'declaration')), var.get(u'_path').callprop(u'get', Js(u'specifiers'))))
                    #for JS loop
                    var.put(u'_iterator4', var.get(u'specifiers'))
                    var.put(u'_isArray4', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator4')))
                    var.put(u'_i4', Js(0.0))
                    var.put(u'_iterator4', (var.get(u'_iterator4') if var.get(u'_isArray4') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator4'))))
                    while 1:
                        pass
                        if var.get(u'_isArray4'):
                            if (var.get(u'_i4')>=var.get(u'_iterator4').get(u'length')):
                                break
                            var.put(u'_ref4', var.get(u'_iterator4').get((var.put(u'_i4',Js(var.get(u'_i4').to_number())+Js(1))-Js(1))))
                        else:
                            var.put(u'_i4', var.get(u'_iterator4').callprop(u'next'))
                            if var.get(u'_i4').get(u'done'):
                                break
                            var.put(u'_ref4', var.get(u'_i4').get(u'value'))
                        var.put(u'_specifier2', var.get(u'_ref4'))
                        var.put(u'ids', var.get(u'_specifier2').callprop(u'getBindingIdentifiers'))
                        if var.get(u'ids').get(u'__esModule'):
                            PyJsTempException = JsToPyException(var.get(u'_specifier2').callprop(u'buildCodeFrameError', Js(u'Illegal export "__esModule"')))
                            raise PyJsTempException
                    
                if var.get(u'_path').callprop(u'isImportDeclaration'):
                    pass
                    var.put(u'hasImports', var.get(u'true'))
                    var.put(u'key', var.get(u'_path').get(u'node').get(u'source').get(u'value'))
                    PyJs_Object_1022_ = Js({u'specifiers':Js([]),u'maxBlockHoist':Js(0.0),u'loc':var.get(u'_path').get(u'node').get(u'loc')})
                    var.put(u'importsEntry', (var.get(u'imports').get(var.get(u'key')) or PyJs_Object_1022_))
                    var.put(u'_importsEntry$specifi', var.get(u'importsEntry').get(u'specifiers')).get(u'push').callprop(u'apply', var.get(u'_importsEntry$specifi'), var.get(u'_path').get(u'node').get(u'specifiers'))
                    if PyJsStrictEq(var.get(u'_path').get(u'node').get(u'_blockHoist').typeof(),Js(u'number')):
                        var.get(u'importsEntry').put(u'maxBlockHoist', var.get(u'Math').callprop(u'max', var.get(u'_path').get(u'node').get(u'_blockHoist'), var.get(u'importsEntry').get(u'maxBlockHoist')))
                    var.get(u'imports').put(var.get(u'key'), var.get(u'importsEntry'))
                    var.get(u'_path').callprop(u'remove')
                else:
                    if var.get(u'_path').callprop(u'isExportDefaultDeclaration'):
                        var.put(u'declaration', var.get(u'_path').callprop(u'get', Js(u'declaration')))
                        if var.get(u'declaration').callprop(u'isFunctionDeclaration'):
                            var.put(u'id', var.get(u'declaration').get(u'node').get(u'id'))
                            var.put(u'defNode', var.get(u't').callprop(u'identifier', Js(u'default')))
                            if var.get(u'id'):
                                var.get(u'addTo')(var.get(u'exports'), var.get(u'id').get(u'name'), var.get(u'defNode'))
                                var.get(u'topNodes').callprop(u'push', var.get(u'buildExportsAssignment')(var.get(u'defNode'), var.get(u'id')))
                                var.get(u'_path').callprop(u'replaceWith', var.get(u'declaration').get(u'node'))
                            else:
                                var.get(u'topNodes').callprop(u'push', var.get(u'buildExportsAssignment')(var.get(u'defNode'), var.get(u't').callprop(u'toExpression', var.get(u'declaration').get(u'node'))))
                                var.get(u'_path').callprop(u'remove')
                        else:
                            if var.get(u'declaration').callprop(u'isClassDeclaration'):
                                var.put(u'_id', var.get(u'declaration').get(u'node').get(u'id'))
                                var.put(u'_defNode', var.get(u't').callprop(u'identifier', Js(u'default')))
                                if var.get(u'_id'):
                                    var.get(u'addTo')(var.get(u'exports'), var.get(u'_id').get(u'name'), var.get(u'_defNode'))
                                    var.get(u'_path').callprop(u'replaceWithMultiple', Js([var.get(u'declaration').get(u'node'), var.get(u'buildExportsAssignment')(var.get(u'_defNode'), var.get(u'_id'))]))
                                else:
                                    var.get(u'_path').callprop(u'replaceWith', var.get(u'buildExportsAssignment')(var.get(u'_defNode'), var.get(u't').callprop(u'toExpression', var.get(u'declaration').get(u'node'))))
                                    var.get(u'_path').get(u'parentPath').callprop(u'requeue', var.get(u'_path').callprop(u'get', Js(u'expression.left')))
                            else:
                                var.get(u'_path').callprop(u'replaceWith', var.get(u'buildExportsAssignment')(var.get(u't').callprop(u'identifier', Js(u'default')), var.get(u'declaration').get(u'node')))
                                var.get(u'_path').get(u'parentPath').callprop(u'requeue', var.get(u'_path').callprop(u'get', Js(u'expression.left')))
                    else:
                        if var.get(u'_path').callprop(u'isExportNamedDeclaration'):
                            var.put(u'_declaration', var.get(u'_path').callprop(u'get', Js(u'declaration')))
                            if var.get(u'_declaration').get(u'node'):
                                if var.get(u'_declaration').callprop(u'isFunctionDeclaration'):
                                    var.put(u'_id2', var.get(u'_declaration').get(u'node').get(u'id'))
                                    var.get(u'addTo')(var.get(u'exports'), var.get(u'_id2').get(u'name'), var.get(u'_id2'))
                                    var.get(u'topNodes').callprop(u'push', var.get(u'buildExportsAssignment')(var.get(u'_id2'), var.get(u'_id2')))
                                    var.get(u'_path').callprop(u'replaceWith', var.get(u'_declaration').get(u'node'))
                                else:
                                    if var.get(u'_declaration').callprop(u'isClassDeclaration'):
                                        var.put(u'_id3', var.get(u'_declaration').get(u'node').get(u'id'))
                                        var.get(u'addTo')(var.get(u'exports'), var.get(u'_id3').get(u'name'), var.get(u'_id3'))
                                        var.get(u'_path').callprop(u'replaceWithMultiple', Js([var.get(u'_declaration').get(u'node'), var.get(u'buildExportsAssignment')(var.get(u'_id3'), var.get(u'_id3'))]))
                                        var.get(u'nonHoistedExportNames').put(var.get(u'_id3').get(u'name'), var.get(u'true'))
                                    else:
                                        if var.get(u'_declaration').callprop(u'isVariableDeclaration'):
                                            var.put(u'declarators', var.get(u'_declaration').callprop(u'get', Js(u'declarations')))
                                            #for JS loop
                                            var.put(u'_iterator5', var.get(u'declarators'))
                                            var.put(u'_isArray5', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator5')))
                                            var.put(u'_i5', Js(0.0))
                                            var.put(u'_iterator5', (var.get(u'_iterator5') if var.get(u'_isArray5') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator5'))))
                                            while 1:
                                                pass
                                                if var.get(u'_isArray5'):
                                                    if (var.get(u'_i5')>=var.get(u'_iterator5').get(u'length')):
                                                        break
                                                    var.put(u'_ref5', var.get(u'_iterator5').get((var.put(u'_i5',Js(var.get(u'_i5').to_number())+Js(1))-Js(1))))
                                                else:
                                                    var.put(u'_i5', var.get(u'_iterator5').callprop(u'next'))
                                                    if var.get(u'_i5').get(u'done'):
                                                        break
                                                    var.put(u'_ref5', var.get(u'_i5').get(u'value'))
                                                var.put(u'decl', var.get(u'_ref5'))
                                                var.put(u'_id4', var.get(u'decl').callprop(u'get', Js(u'id')))
                                                var.put(u'init', var.get(u'decl').callprop(u'get', Js(u'init')))
                                                if var.get(u'init').get(u'node').neg():
                                                    var.get(u'init').callprop(u'replaceWith', var.get(u't').callprop(u'identifier', Js(u'undefined')))
                                                if var.get(u'_id4').callprop(u'isIdentifier'):
                                                    var.get(u'addTo')(var.get(u'exports'), var.get(u'_id4').get(u'node').get(u'name'), var.get(u'_id4').get(u'node'))
                                                    var.get(u'init').callprop(u'replaceWith', var.get(u'buildExportsAssignment')(var.get(u'_id4').get(u'node'), var.get(u'init').get(u'node')).get(u'expression'))
                                                    var.get(u'nonHoistedExportNames').put(var.get(u'_id4').get(u'node').get(u'name'), var.get(u'true'))
                                                else:
                                                    pass
                                            
                                            var.get(u'_path').callprop(u'replaceWith', var.get(u'_declaration').get(u'node'))
                                continue
                            var.put(u'_specifiers', var.get(u'_path').callprop(u'get', Js(u'specifiers')))
                            var.put(u'nodes', Js([]))
                            var.put(u'_source', var.get(u'_path').get(u'node').get(u'source'))
                            if var.get(u'_source'):
                                var.put(u'ref', var.get(u'addRequire')(var.get(u'_source').get(u'value'), var.get(u'_path').get(u'node').get(u'_blockHoist')))
                                #for JS loop
                                var.put(u'_iterator6', var.get(u'_specifiers'))
                                var.put(u'_isArray6', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator6')))
                                var.put(u'_i6', Js(0.0))
                                var.put(u'_iterator6', (var.get(u'_iterator6') if var.get(u'_isArray6') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator6'))))
                                while 1:
                                    pass
                                    if var.get(u'_isArray6'):
                                        if (var.get(u'_i6')>=var.get(u'_iterator6').get(u'length')):
                                            break
                                        var.put(u'_ref6', var.get(u'_iterator6').get((var.put(u'_i6',Js(var.get(u'_i6').to_number())+Js(1))-Js(1))))
                                    else:
                                        var.put(u'_i6', var.get(u'_iterator6').callprop(u'next'))
                                        if var.get(u'_i6').get(u'done'):
                                            break
                                        var.put(u'_ref6', var.get(u'_i6').get(u'value'))
                                    var.put(u'_specifier3', var.get(u'_ref6'))
                                    if var.get(u'_specifier3').callprop(u'isExportNamespaceSpecifier'):
                                        pass
                                    else:
                                        if var.get(u'_specifier3').callprop(u'isExportDefaultSpecifier'):
                                            pass
                                        else:
                                            if var.get(u'_specifier3').callprop(u'isExportSpecifier'):
                                                if PyJsStrictEq(var.get(u'_specifier3').get(u'node').get(u'local').get(u'name'),Js(u'default')):
                                                    def PyJs_LONG_1023_(var=var):
                                                        return var.get(u'topNodes').callprop(u'push', var.get(u'buildExportsFrom')(var.get(u't').callprop(u'stringLiteral', var.get(u'_specifier3').get(u'node').get(u'exported').get(u'name')), var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'callExpression', var.get(u"this").callprop(u'addHelper', Js(u'interopRequireDefault')), Js([var.get(u'ref')])), var.get(u'_specifier3').get(u'node').get(u'local'))))
                                                    PyJs_LONG_1023_()
                                                else:
                                                    var.get(u'topNodes').callprop(u'push', var.get(u'buildExportsFrom')(var.get(u't').callprop(u'stringLiteral', var.get(u'_specifier3').get(u'node').get(u'exported').get(u'name')), var.get(u't').callprop(u'memberExpression', var.get(u'ref'), var.get(u'_specifier3').get(u'node').get(u'local'))))
                                                var.get(u'nonHoistedExportNames').put(var.get(u'_specifier3').get(u'node').get(u'exported').get(u'name'), var.get(u'true'))
                                
                            else:
                                #for JS loop
                                var.put(u'_iterator7', var.get(u'_specifiers'))
                                var.put(u'_isArray7', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator7')))
                                var.put(u'_i7', Js(0.0))
                                var.put(u'_iterator7', (var.get(u'_iterator7') if var.get(u'_isArray7') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator7'))))
                                while 1:
                                    pass
                                    if var.get(u'_isArray7'):
                                        if (var.get(u'_i7')>=var.get(u'_iterator7').get(u'length')):
                                            break
                                        var.put(u'_ref7', var.get(u'_iterator7').get((var.put(u'_i7',Js(var.get(u'_i7').to_number())+Js(1))-Js(1))))
                                    else:
                                        var.put(u'_i7', var.get(u'_iterator7').callprop(u'next'))
                                        if var.get(u'_i7').get(u'done'):
                                            break
                                        var.put(u'_ref7', var.get(u'_i7').get(u'value'))
                                    var.put(u'_specifier4', var.get(u'_ref7'))
                                    if var.get(u'_specifier4').callprop(u'isExportSpecifier'):
                                        var.get(u'addTo')(var.get(u'exports'), var.get(u'_specifier4').get(u'node').get(u'local').get(u'name'), var.get(u'_specifier4').get(u'node').get(u'exported'))
                                        var.get(u'nonHoistedExportNames').put(var.get(u'_specifier4').get(u'node').get(u'exported').get(u'name'), var.get(u'true'))
                                        var.get(u'nodes').callprop(u'push', var.get(u'buildExportsAssignment')(var.get(u'_specifier4').get(u'node').get(u'exported'), var.get(u'_specifier4').get(u'node').get(u'local')))
                                
                            var.get(u'_path').callprop(u'replaceWithMultiple', var.get(u'nodes'))
                        else:
                            if var.get(u'_path').callprop(u'isExportAllDeclaration'):
                                PyJs_Object_1024_ = Js({u'OBJECT':var.get(u'addRequire')(var.get(u'_path').get(u'node').get(u'source').get(u'value'), var.get(u'_path').get(u'node').get(u'_blockHoist'))})
                                var.put(u'exportNode', var.get(u'buildExportAll')(PyJs_Object_1024_))
                                var.get(u'exportNode').put(u'loc', var.get(u'_path').get(u'node').get(u'loc'))
                                var.get(u'topNodes').callprop(u'push', var.get(u'exportNode'))
                                var.get(u'_path').callprop(u'remove')
            
            for PyJsTemp in var.get(u'imports'):
                var.put(u'source', PyJsTemp)
                var.put(u'_imports$source', var.get(u'imports').get(var.get(u'source')))
                var.put(u'specifiers', var.get(u'_imports$source').get(u'specifiers'))
                var.put(u'maxBlockHoist', var.get(u'_imports$source').get(u'maxBlockHoist'))
                if var.get(u'specifiers').get(u'length'):
                    var.put(u'uid', var.get(u'addRequire')(var.get(u'source'), var.get(u'maxBlockHoist')))
                    var.put(u'wildcard', PyJsComma(Js(0.0), Js(None)))
                    #for JS loop
                    var.put(u'i', Js(0.0))
                    while (var.get(u'i')<var.get(u'specifiers').get(u'length')):
                        try:
                            var.put(u'specifier', var.get(u'specifiers').get(var.get(u'i')))
                            if var.get(u't').callprop(u'isImportNamespaceSpecifier', var.get(u'specifier')):
                                if var.get(u'strict'):
                                    var.get(u'remaps').put(var.get(u'specifier').get(u'local').get(u'name'), var.get(u'uid'))
                                else:
                                    var.put(u'varDecl', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'specifier').get(u'local'), var.get(u't').callprop(u'callExpression', var.get(u"this").callprop(u'addHelper', Js(u'interopRequireWildcard')), Js([var.get(u'uid')])))])))
                                    if (var.get(u'maxBlockHoist')>Js(0.0)):
                                        var.get(u'varDecl').put(u'_blockHoist', var.get(u'maxBlockHoist'))
                                    var.get(u'topNodes').callprop(u'push', var.get(u'varDecl'))
                                var.put(u'wildcard', var.get(u'specifier').get(u'local'))
                            else:
                                if var.get(u't').callprop(u'isImportDefaultSpecifier', var.get(u'specifier')):
                                    var.get(u'specifiers').put(var.get(u'i'), var.get(u't').callprop(u'importSpecifier', var.get(u'specifier').get(u'local'), var.get(u't').callprop(u'identifier', Js(u'default'))))
                        finally:
                                (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                    #for JS loop
                    var.put(u'_iterator3', var.get(u'specifiers'))
                    var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
                    var.put(u'_i3', Js(0.0))
                    var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
                    while 1:
                        pass
                        if var.get(u'_isArray3'):
                            if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                                break
                            var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                        else:
                            var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                            if var.get(u'_i3').get(u'done'):
                                break
                            var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                        var.put(u'_specifier', var.get(u'_ref3'))
                        if var.get(u't').callprop(u'isImportSpecifier', var.get(u'_specifier')):
                            var.put(u'target', var.get(u'uid'))
                            if PyJsStrictEq(var.get(u'_specifier').get(u'imported').get(u'name'),Js(u'default')):
                                if var.get(u'wildcard'):
                                    var.put(u'target', var.get(u'wildcard'))
                                else:
                                    var.put(u'target', var.put(u'wildcard', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', var.get(u'uid').get(u'name'))))
                                    var.put(u'_varDecl', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'target'), var.get(u't').callprop(u'callExpression', var.get(u"this").callprop(u'addHelper', Js(u'interopRequireDefault')), Js([var.get(u'uid')])))])))
                                    if (var.get(u'maxBlockHoist')>Js(0.0)):
                                        var.get(u'_varDecl').put(u'_blockHoist', var.get(u'maxBlockHoist'))
                                    var.get(u'topNodes').callprop(u'push', var.get(u'_varDecl'))
                            var.get(u'remaps').put(var.get(u'_specifier').get(u'local').get(u'name'), var.get(u't').callprop(u'memberExpression', var.get(u'target'), var.get(u't').callprop(u'cloneWithoutLoc', var.get(u'_specifier').get(u'imported'))))
                    
                else:
                    var.put(u'requireNode', var.get(u'buildRequire')(var.get(u't').callprop(u'stringLiteral', var.get(u'source'))))
                    var.get(u'requireNode').put(u'loc', var.get(u'imports').get(var.get(u'source')).get(u'loc'))
                    var.get(u'topNodes').callprop(u'push', var.get(u'requireNode'))
            if (var.get(u'hasImports') and PyJsComma(Js(0.0),var.get(u'_keys2').get(u'default'))(var.get(u'nonHoistedExportNames')).get(u'length')):
                var.put(u'hoistedExportsNode', var.get(u't').callprop(u'identifier', Js(u'undefined')))
                for PyJsTemp in var.get(u'nonHoistedExportNames'):
                    var.put(u'name', PyJsTemp)
                    var.put(u'hoistedExportsNode', var.get(u'buildExportsAssignment')(var.get(u't').callprop(u'identifier', var.get(u'name')), var.get(u'hoistedExportsNode')).get(u'expression'))
                var.put(u'node', var.get(u't').callprop(u'expressionStatement', var.get(u'hoistedExportsNode')))
                var.get(u'node').put(u'_blockHoist', Js(3.0))
                var.get(u'topNodes').callprop(u'unshift', var.get(u'node'))
            if (var.get(u'hasExports') and var.get(u'strict').neg()):
                var.put(u'buildTemplate', var.get(u'buildExportsModuleDeclaration'))
                if var.get(u"this").get(u'opts').get(u'loose'):
                    var.put(u'buildTemplate', var.get(u'buildLooseExportsModuleDeclaration'))
                var.put(u'declar', var.get(u'buildTemplate')())
                var.get(u'declar').put(u'_blockHoist', Js(3.0))
                var.get(u'topNodes').callprop(u'unshift', var.get(u'declar'))
            var.get(u'path').callprop(u'unshiftContainer', Js(u'body'), var.get(u'topNodes'))
            @Js
            def PyJs_requeueInParent_1026_(newPath, this, arguments, var=var):
                var = Scope({u'newPath':newPath, u'this':this, u'arguments':arguments, u'requeueInParent':PyJs_requeueInParent_1026_}, var)
                var.registers([u'newPath'])
                return var.get(u'path').callprop(u'requeue', var.get(u'newPath'))
            PyJs_requeueInParent_1026_._set_name(u'requeueInParent')
            PyJs_Object_1025_ = Js({u'remaps':var.get(u'remaps'),u'scope':var.get(u'scope'),u'exports':var.get(u'exports'),u'requeueInParent':PyJs_requeueInParent_1026_})
            var.get(u'path').callprop(u'traverse', var.get(u'reassignmentVisitor'), PyJs_Object_1025_)
        PyJs_exit_1021_._set_name(u'exit')
        PyJs_Object_1020_ = Js({u'exit':PyJs_exit_1021_})
        PyJs_Object_1017_ = Js({u'ThisExpression':PyJs_ThisExpression_1018_,u'Program':PyJs_Object_1020_})
        PyJs_Object_1016_ = Js({u'inherits':var.get(u'require')(Js(u'babel-plugin-transform-strict-mode')),u'visitor':PyJs_Object_1017_})
        return PyJs_Object_1016_
    PyJs_anonymous_1010_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1010_)
    var.put(u'_path2', var.get(u'require')(Js(u'path')))
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    var.put(u'_babelTemplate2', var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.put(u'buildRequire', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  require($0);\n')))
    var.put(u'buildExportsModuleDeclaration', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  Object.defineProperty(exports, "__esModule", {\n    value: true\n  });\n')))
    var.put(u'buildExportsFrom', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  Object.defineProperty(exports, $0, {\n    enumerable: true,\n    get: function () {\n      return $1;\n    }\n  });\n')))
    var.put(u'buildLooseExportsModuleDeclaration', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  exports.__esModule = true;\n')))
    var.put(u'buildExportsAssignment', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  exports.$0 = $1;\n')))
    var.put(u'buildExportAll', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  Object.keys(OBJECT).forEach(function (key) {\n    if (key === "default" || key === "__esModule") return;\n    Object.defineProperty(exports, key, {\n      enumerable: true,\n      get: function () {\n        return OBJECT[key];\n      }\n    });\n  });\n')))
    var.put(u'THIS_BREAK_KEYS', Js([Js(u'FunctionExpression'), Js(u'FunctionDeclaration'), Js(u'ClassProperty'), Js(u'ClassMethod'), Js(u'ObjectMethod')]))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1009_._set_name(u'anonymous')
PyJs_Object_1029_ = Js({u'babel-plugin-transform-strict-mode':Js(94.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/object/create':Js(101.0),u'babel-runtime/core-js/object/keys':Js(103.0),u'babel-runtime/core-js/symbol':Js(105.0),u'babel-template':Js(221.0),u'babel-types':Js(258.0),u'path':Js(530.0)})
@Js
def PyJs_anonymous_1030_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_create', u'exports', u'_symbol2', u'_babelHelperHoistVariables', u'buildExportAll', u'require', u'_babelTemplate', u'module', u'_create2', u'buildTemplate', u'_symbol', u'_babelHelperHoistVariables2', u'_interopRequireDefault', u'_babelTemplate2', u'_getIterator2', u'_getIterator3'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1047_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1047_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_create', var.get(u'require')(Js(u'babel-runtime/core-js/object/create')))
    var.put(u'_create2', var.get(u'_interopRequireDefault')(var.get(u'_create')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_symbol', var.get(u'require')(Js(u'babel-runtime/core-js/symbol')))
    var.put(u'_symbol2', var.get(u'_interopRequireDefault')(var.get(u'_symbol')))
    @Js
    def PyJs_anonymous_1031_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'reassignmentVisitor', u'IGNORE_REASSIGNMENT_SYMBOL', u'_ref', u't'])
        var.put(u't', var.get(u'_ref').get(u'types'))
        var.put(u'IGNORE_REASSIGNMENT_SYMBOL', PyJsComma(Js(0.0),var.get(u'_symbol2').get(u'default'))())
        @Js
        def PyJs_AssignmentExpressionUpdateExpression_1033_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'AssignmentExpressionUpdateExpression':PyJs_AssignmentExpressionUpdateExpression_1033_}, var)
            var.registers([u'node', u'_isArray', u'_iterator', u'name', u'exportedNames', u'_ref2', u'exportedName', u'_i', u'arg', u'isPostUpdateExpression', u'path'])
            if var.get(u'path').get(u'node').get(var.get(u'IGNORE_REASSIGNMENT_SYMBOL')):
                return var.get('undefined')
            var.get(u'path').get(u'node').put(var.get(u'IGNORE_REASSIGNMENT_SYMBOL'), var.get(u'true'))
            var.put(u'arg', var.get(u'path').callprop(u'get', (Js(u'left') if var.get(u'path').callprop(u'isAssignmentExpression') else Js(u'argument'))))
            if var.get(u'arg').callprop(u'isIdentifier').neg():
                return var.get('undefined')
            var.put(u'name', var.get(u'arg').get(u'node').get(u'name'))
            if PyJsStrictNeq(var.get(u"this").get(u'scope').callprop(u'getBinding', var.get(u'name')),var.get(u'path').get(u'scope').callprop(u'getBinding', var.get(u'name'))):
                return var.get('undefined')
            var.put(u'exportedNames', var.get(u"this").get(u'exports').get(var.get(u'name')))
            if var.get(u'exportedNames').neg():
                return var.get('undefined')
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'isPostUpdateExpression', (var.get(u'path').callprop(u'isUpdateExpression') and var.get(u'node').get(u'prefix').neg()))
            if var.get(u'isPostUpdateExpression'):
                if PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'++')):
                    var.put(u'node', var.get(u't').callprop(u'binaryExpression', Js(u'+'), var.get(u'node').get(u'argument'), var.get(u't').callprop(u'numericLiteral', Js(1.0))))
                else:
                    if PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'--')):
                        var.put(u'node', var.get(u't').callprop(u'binaryExpression', Js(u'-'), var.get(u'node').get(u'argument'), var.get(u't').callprop(u'numericLiteral', Js(1.0))))
                    else:
                        var.put(u'isPostUpdateExpression', Js(False))
            #for JS loop
            var.put(u'_iterator', var.get(u'exportedNames'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i').get(u'value'))
                var.put(u'exportedName', var.get(u'_ref2'))
                var.put(u'node', var.get(u"this").callprop(u'buildCall', var.get(u'exportedName'), var.get(u'node')).get(u'expression'))
            
            if var.get(u'isPostUpdateExpression'):
                var.put(u'node', var.get(u't').callprop(u'sequenceExpression', Js([var.get(u'node'), var.get(u'path').get(u'node')])))
            var.get(u'path').callprop(u'replaceWith', var.get(u'node'))
        PyJs_AssignmentExpressionUpdateExpression_1033_._set_name(u'AssignmentExpressionUpdateExpression')
        PyJs_Object_1032_ = Js({u'AssignmentExpression|UpdateExpression':PyJs_AssignmentExpressionUpdateExpression_1033_})
        var.put(u'reassignmentVisitor', PyJs_Object_1032_)
        @Js
        def PyJs_ReferencedIdentifier_1036_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_1036_, u'arguments':arguments}, var)
            var.registers([u'path', u'state'])
            if ((var.get(u'path').get(u'node').get(u'name')==Js(u'__moduleName')) and var.get(u'path').get(u'scope').callprop(u'hasBinding', Js(u'__moduleName')).neg()):
                var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'memberExpression', var.get(u'state').get(u'contextIdent'), var.get(u't').callprop(u'identifier', Js(u'id'))))
        PyJs_ReferencedIdentifier_1036_._set_name(u'ReferencedIdentifier')
        @Js
        def PyJs_enter_1038_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'enter':PyJs_enter_1038_}, var)
            var.registers([u'path', u'state'])
            var.get(u'state').put(u'contextIdent', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'context')))
        PyJs_enter_1038_._set_name(u'enter')
        @Js
        def PyJs_exit_1039_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'exit':PyJs_exit_1039_, u'arguments':arguments}, var)
            var.registers([u'_isArray7', u'specifier', u'_isArray5', u'_isArray4', u'_isArray3', u'contextIdent', u'_isArray6', u'_i3', u'_name2', u'canHoist', u'_nodes', u'sources', u'variableIds', u'path', u'id', u'_isArray2', u'setterBody', u'_source', u'_i7', u'_i6', u'_i5', u'addExportName', u'removedPaths', u'_i2', u'_specifier', u'source', u'_node', u'_declar', u'nodes', u'_ref3', u'body', u'node', u'state', u'bindingIdentifiers', u'pushModule', u'setters', u'_path3', u'exportIdent', u'_specifiers', u'exportObjRef', u'_bindingIdentifiers', u'_path2', u'beforeBody', u'target', u'specifiers', u'moduleName', u'_iterator6', u'name', u'_ref8', u'_ref7', u'_ref6', u'_ref5', u'_ref4', u'modules', u'exportNames', u'_name', u'buildExportCall', u'_i4', u'declar', u'_nodes2', u'_iterator5', u'_iterator4', u'_iterator7', u'_iterator2', u'_iterator3', u'_path'])
            @Js
            def PyJsHoisted_buildExportCall_(name, val, this, arguments, var=var):
                var = Scope({u'this':this, u'name':name, u'val':val, u'arguments':arguments}, var)
                var.registers([u'name', u'val'])
                return var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'callExpression', var.get(u'exportIdent'), Js([var.get(u't').callprop(u'stringLiteral', var.get(u'name')), var.get(u'val')])))
            PyJsHoisted_buildExportCall_.func_name = u'buildExportCall'
            var.put(u'buildExportCall', PyJsHoisted_buildExportCall_)
            @Js
            def PyJsHoisted_addExportName_(key, val, this, arguments, var=var):
                var = Scope({u'this':this, u'val':val, u'key':key, u'arguments':arguments}, var)
                var.registers([u'val', u'key'])
                var.get(u'exportNames').put(var.get(u'key'), (var.get(u'exportNames').get(var.get(u'key')) or Js([])))
                var.get(u'exportNames').get(var.get(u'key')).callprop(u'push', var.get(u'val'))
            PyJsHoisted_addExportName_.func_name = u'addExportName'
            var.put(u'addExportName', PyJsHoisted_addExportName_)
            @Js
            def PyJsHoisted_pushModule_(source, key, specifiers, this, arguments, var=var):
                var = Scope({u'this':this, u'source':source, u'arguments':arguments, u'key':key, u'specifiers':specifiers}, var)
                var.registers([u'source', u'key', u'_modules', u'specifiers'])
                PyJs_Object_1040_ = Js({u'imports':Js([]),u'exports':Js([])})
                var.put(u'_modules', var.get(u'modules').put(var.get(u'source'), (var.get(u'modules').get(var.get(u'source')) or PyJs_Object_1040_)))
                var.get(u'_modules').put(var.get(u'key'), var.get(u'_modules').get(var.get(u'key')).callprop(u'concat', var.get(u'specifiers')))
            PyJsHoisted_pushModule_.func_name = u'pushModule'
            var.put(u'pushModule', PyJsHoisted_pushModule_)
            var.put(u'exportIdent', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'export')))
            var.put(u'contextIdent', var.get(u'state').get(u'contextIdent'))
            var.put(u'exportNames', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.put(u'modules', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.put(u'beforeBody', Js([]))
            var.put(u'setters', Js([]))
            var.put(u'sources', Js([]))
            var.put(u'variableIds', Js([]))
            var.put(u'removedPaths', Js([]))
            pass
            pass
            pass
            var.put(u'body', var.get(u'path').callprop(u'get', Js(u'body')))
            var.put(u'canHoist', var.get(u'true'))
            #for JS loop
            var.put(u'_iterator2', var.get(u'body'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref3', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref3', var.get(u'_i2').get(u'value'))
                var.put(u'_path', var.get(u'_ref3'))
                if var.get(u'_path').callprop(u'isExportDeclaration'):
                    var.put(u'_path', var.get(u'_path').callprop(u'get', Js(u'declaration')))
                if (var.get(u'_path').callprop(u'isVariableDeclaration') and PyJsStrictNeq(var.get(u'_path').get(u'node').get(u'kind'),Js(u'var'))):
                    var.put(u'canHoist', Js(False))
                    break
            
            #for JS loop
            var.put(u'_iterator3', var.get(u'body'))
            var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
            var.put(u'_i3', Js(0.0))
            var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
            while 1:
                pass
                if var.get(u'_isArray3'):
                    if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                        break
                    var.put(u'_ref4', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                    if var.get(u'_i3').get(u'done'):
                        break
                    var.put(u'_ref4', var.get(u'_i3').get(u'value'))
                var.put(u'_path2', var.get(u'_ref4'))
                if (var.get(u'canHoist') and var.get(u'_path2').callprop(u'isFunctionDeclaration')):
                    var.get(u'beforeBody').callprop(u'push', var.get(u'_path2').get(u'node'))
                    var.get(u'removedPaths').callprop(u'push', var.get(u'_path2'))
                else:
                    if var.get(u'_path2').callprop(u'isImportDeclaration'):
                        var.put(u'_source', var.get(u'_path2').get(u'node').get(u'source').get(u'value'))
                        var.get(u'pushModule')(var.get(u'_source'), Js(u'imports'), var.get(u'_path2').get(u'node').get(u'specifiers'))
                        for PyJsTemp in var.get(u'_path2').callprop(u'getBindingIdentifiers'):
                            var.put(u'name', PyJsTemp)
                            var.get(u'_path2').get(u'scope').callprop(u'removeBinding', var.get(u'name'))
                            var.get(u'variableIds').callprop(u'push', var.get(u't').callprop(u'identifier', var.get(u'name')))
                        var.get(u'_path2').callprop(u'remove')
                    else:
                        if var.get(u'_path2').callprop(u'isExportAllDeclaration'):
                            var.get(u'pushModule')(var.get(u'_path2').get(u'node').get(u'source').get(u'value'), Js(u'exports'), var.get(u'_path2').get(u'node'))
                            var.get(u'_path2').callprop(u'remove')
                        else:
                            if var.get(u'_path2').callprop(u'isExportDefaultDeclaration'):
                                var.put(u'declar', var.get(u'_path2').callprop(u'get', Js(u'declaration')))
                                if (var.get(u'declar').callprop(u'isClassDeclaration') or var.get(u'declar').callprop(u'isFunctionDeclaration')):
                                    var.put(u'id', var.get(u'declar').get(u'node').get(u'id'))
                                    var.put(u'nodes', Js([]))
                                    if var.get(u'id'):
                                        var.get(u'nodes').callprop(u'push', var.get(u'declar').get(u'node'))
                                        var.get(u'nodes').callprop(u'push', var.get(u'buildExportCall')(Js(u'default'), var.get(u'id')))
                                        var.get(u'addExportName')(var.get(u'id').get(u'name'), Js(u'default'))
                                    else:
                                        var.get(u'nodes').callprop(u'push', var.get(u'buildExportCall')(Js(u'default'), var.get(u't').callprop(u'toExpression', var.get(u'declar').get(u'node'))))
                                    if (var.get(u'canHoist').neg() or var.get(u'declar').callprop(u'isClassDeclaration')):
                                        var.get(u'_path2').callprop(u'replaceWithMultiple', var.get(u'nodes'))
                                    else:
                                        var.put(u'beforeBody', var.get(u'beforeBody').callprop(u'concat', var.get(u'nodes')))
                                        var.get(u'removedPaths').callprop(u'push', var.get(u'_path2'))
                                else:
                                    var.get(u'_path2').callprop(u'replaceWith', var.get(u'buildExportCall')(Js(u'default'), var.get(u'declar').get(u'node')))
                            else:
                                if var.get(u'_path2').callprop(u'isExportNamedDeclaration'):
                                    var.put(u'_declar', var.get(u'_path2').callprop(u'get', Js(u'declaration')))
                                    if var.get(u'_declar').get(u'node'):
                                        var.get(u'_path2').callprop(u'replaceWith', var.get(u'_declar'))
                                        var.put(u'_nodes', Js([]))
                                        var.put(u'bindingIdentifiers', PyJsComma(Js(0.0), Js(None)))
                                        if var.get(u'_path2').callprop(u'isFunction'):
                                            var.put(u'_node', var.get(u'_declar').get(u'node'))
                                            var.put(u'_name', var.get(u'_node').get(u'id').get(u'name'))
                                            if var.get(u'canHoist'):
                                                var.get(u'addExportName')(var.get(u'_name'), var.get(u'_name'))
                                                var.get(u'beforeBody').callprop(u'push', var.get(u'_node'))
                                                var.get(u'beforeBody').callprop(u'push', var.get(u'buildExportCall')(var.get(u'_name'), var.get(u'_node').get(u'id')))
                                                var.get(u'removedPaths').callprop(u'push', var.get(u'_path2'))
                                            else:
                                                pass
                                                PyJs_Object_1041_ = Js({})
                                                var.put(u'bindingIdentifiers', PyJsComma(PyJsComma(var.put(u'_bindingIdentifiers', PyJs_Object_1041_),var.get(u'_bindingIdentifiers').put(var.get(u'_name'), var.get(u'_node').get(u'id'))),var.get(u'_bindingIdentifiers')))
                                        else:
                                            var.put(u'bindingIdentifiers', var.get(u'_declar').callprop(u'getBindingIdentifiers'))
                                        for PyJsTemp in var.get(u'bindingIdentifiers'):
                                            var.put(u'_name2', PyJsTemp)
                                            var.get(u'addExportName')(var.get(u'_name2'), var.get(u'_name2'))
                                            var.get(u'_nodes').callprop(u'push', var.get(u'buildExportCall')(var.get(u'_name2'), var.get(u't').callprop(u'identifier', var.get(u'_name2'))))
                                        var.get(u'_path2').callprop(u'insertAfter', var.get(u'_nodes'))
                                    else:
                                        var.put(u'_specifiers', var.get(u'_path2').get(u'node').get(u'specifiers'))
                                        if (var.get(u'_specifiers') and var.get(u'_specifiers').get(u'length')):
                                            if var.get(u'_path2').get(u'node').get(u'source'):
                                                var.get(u'pushModule')(var.get(u'_path2').get(u'node').get(u'source').get(u'value'), Js(u'exports'), var.get(u'_specifiers'))
                                                var.get(u'_path2').callprop(u'remove')
                                            else:
                                                var.put(u'_nodes2', Js([]))
                                                #for JS loop
                                                var.put(u'_iterator7', var.get(u'_specifiers'))
                                                var.put(u'_isArray7', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator7')))
                                                var.put(u'_i7', Js(0.0))
                                                var.put(u'_iterator7', (var.get(u'_iterator7') if var.get(u'_isArray7') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator7'))))
                                                while 1:
                                                    pass
                                                    if var.get(u'_isArray7'):
                                                        if (var.get(u'_i7')>=var.get(u'_iterator7').get(u'length')):
                                                            break
                                                        var.put(u'_ref8', var.get(u'_iterator7').get((var.put(u'_i7',Js(var.get(u'_i7').to_number())+Js(1))-Js(1))))
                                                    else:
                                                        var.put(u'_i7', var.get(u'_iterator7').callprop(u'next'))
                                                        if var.get(u'_i7').get(u'done'):
                                                            break
                                                        var.put(u'_ref8', var.get(u'_i7').get(u'value'))
                                                    var.put(u'_specifier', var.get(u'_ref8'))
                                                    var.get(u'_nodes2').callprop(u'push', var.get(u'buildExportCall')(var.get(u'_specifier').get(u'exported').get(u'name'), var.get(u'_specifier').get(u'local')))
                                                    var.get(u'addExportName')(var.get(u'_specifier').get(u'local').get(u'name'), var.get(u'_specifier').get(u'exported').get(u'name'))
                                                
                                                var.get(u'_path2').callprop(u'replaceWithMultiple', var.get(u'_nodes2'))
            
            for PyJsTemp in var.get(u'modules'):
                var.put(u'source', PyJsTemp)
                var.put(u'specifiers', var.get(u'modules').get(var.get(u'source')))
                var.put(u'setterBody', Js([]))
                var.put(u'target', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', var.get(u'source')))
                #for JS loop
                var.put(u'_iterator4', var.get(u'specifiers').get(u'imports'))
                var.put(u'_isArray4', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator4')))
                var.put(u'_i4', Js(0.0))
                var.put(u'_iterator4', (var.get(u'_iterator4') if var.get(u'_isArray4') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator4'))))
                while 1:
                    pass
                    if var.get(u'_isArray4'):
                        if (var.get(u'_i4')>=var.get(u'_iterator4').get(u'length')):
                            break
                        var.put(u'_ref5', var.get(u'_iterator4').get((var.put(u'_i4',Js(var.get(u'_i4').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i4', var.get(u'_iterator4').callprop(u'next'))
                        if var.get(u'_i4').get(u'done'):
                            break
                        var.put(u'_ref5', var.get(u'_i4').get(u'value'))
                    var.put(u'specifier', var.get(u'_ref5'))
                    if var.get(u't').callprop(u'isImportNamespaceSpecifier', var.get(u'specifier')):
                        var.get(u'setterBody').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'specifier').get(u'local'), var.get(u'target'))))
                    else:
                        if var.get(u't').callprop(u'isImportDefaultSpecifier', var.get(u'specifier')):
                            var.put(u'specifier', var.get(u't').callprop(u'importSpecifier', var.get(u'specifier').get(u'local'), var.get(u't').callprop(u'identifier', Js(u'default'))))
                    if var.get(u't').callprop(u'isImportSpecifier', var.get(u'specifier')):
                        var.get(u'setterBody').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'specifier').get(u'local'), var.get(u't').callprop(u'memberExpression', var.get(u'target'), var.get(u'specifier').get(u'imported')))))
                
                if var.get(u'specifiers').get(u'exports').get(u'length'):
                    var.put(u'exportObjRef', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'exportObj')))
                    var.get(u'setterBody').callprop(u'push', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'exportObjRef'), var.get(u't').callprop(u'objectExpression', Js([])))])))
                    #for JS loop
                    var.put(u'_iterator5', var.get(u'specifiers').get(u'exports'))
                    var.put(u'_isArray5', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator5')))
                    var.put(u'_i5', Js(0.0))
                    var.put(u'_iterator5', (var.get(u'_iterator5') if var.get(u'_isArray5') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator5'))))
                    while 1:
                        pass
                        if var.get(u'_isArray5'):
                            if (var.get(u'_i5')>=var.get(u'_iterator5').get(u'length')):
                                break
                            var.put(u'_ref6', var.get(u'_iterator5').get((var.put(u'_i5',Js(var.get(u'_i5').to_number())+Js(1))-Js(1))))
                        else:
                            var.put(u'_i5', var.get(u'_iterator5').callprop(u'next'))
                            if var.get(u'_i5').get(u'done'):
                                break
                            var.put(u'_ref6', var.get(u'_i5').get(u'value'))
                        var.put(u'node', var.get(u'_ref6'))
                        if var.get(u't').callprop(u'isExportAllDeclaration', var.get(u'node')):
                            PyJs_Object_1042_ = Js({u'KEY':var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'key')),u'EXPORT_OBJ':var.get(u'exportObjRef'),u'TARGET':var.get(u'target')})
                            var.get(u'setterBody').callprop(u'push', var.get(u'buildExportAll')(PyJs_Object_1042_))
                        else:
                            if var.get(u't').callprop(u'isExportSpecifier', var.get(u'node')):
                                var.get(u'setterBody').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u't').callprop(u'memberExpression', var.get(u'exportObjRef'), var.get(u'node').get(u'exported')), var.get(u't').callprop(u'memberExpression', var.get(u'target'), var.get(u'node').get(u'local')))))
                            else:
                                pass
                    
                    var.get(u'setterBody').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'callExpression', var.get(u'exportIdent'), Js([var.get(u'exportObjRef')]))))
                var.get(u'sources').callprop(u'push', var.get(u't').callprop(u'stringLiteral', var.get(u'source')))
                var.get(u'setters').callprop(u'push', var.get(u't').callprop(u'functionExpression', var.get(u"null"), Js([var.get(u'target')]), var.get(u't').callprop(u'blockStatement', var.get(u'setterBody'))))
            var.put(u'moduleName', var.get(u"this").callprop(u'getModuleName'))
            if var.get(u'moduleName'):
                var.put(u'moduleName', var.get(u't').callprop(u'stringLiteral', var.get(u'moduleName')))
            if var.get(u'canHoist'):
                @Js
                def PyJs_anonymous_1043_(id, this, arguments, var=var):
                    var = Scope({u'this':this, u'id':id, u'arguments':arguments}, var)
                    var.registers([u'id'])
                    return var.get(u'variableIds').callprop(u'push', var.get(u'id'))
                PyJs_anonymous_1043_._set_name(u'anonymous')
                PyJsComma(Js(0.0),var.get(u'_babelHelperHoistVariables2').get(u'default'))(var.get(u'path'), PyJs_anonymous_1043_)
            if var.get(u'variableIds').get(u'length'):
                @Js
                def PyJs_anonymous_1044_(id, this, arguments, var=var):
                    var = Scope({u'this':this, u'id':id, u'arguments':arguments}, var)
                    var.registers([u'id'])
                    return var.get(u't').callprop(u'variableDeclarator', var.get(u'id'))
                PyJs_anonymous_1044_._set_name(u'anonymous')
                var.get(u'beforeBody').callprop(u'unshift', var.get(u't').callprop(u'variableDeclaration', Js(u'var'), var.get(u'variableIds').callprop(u'map', PyJs_anonymous_1044_)))
            PyJs_Object_1045_ = Js({u'exports':var.get(u'exportNames'),u'buildCall':var.get(u'buildExportCall'),u'scope':var.get(u'path').get(u'scope')})
            var.get(u'path').callprop(u'traverse', var.get(u'reassignmentVisitor'), PyJs_Object_1045_)
            #for JS loop
            var.put(u'_iterator6', var.get(u'removedPaths'))
            var.put(u'_isArray6', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator6')))
            var.put(u'_i6', Js(0.0))
            var.put(u'_iterator6', (var.get(u'_iterator6') if var.get(u'_isArray6') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator6'))))
            while 1:
                pass
                if var.get(u'_isArray6'):
                    if (var.get(u'_i6')>=var.get(u'_iterator6').get(u'length')):
                        break
                    var.put(u'_ref7', var.get(u'_iterator6').get((var.put(u'_i6',Js(var.get(u'_i6').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i6', var.get(u'_iterator6').callprop(u'next'))
                    if var.get(u'_i6').get(u'done'):
                        break
                    var.put(u'_ref7', var.get(u'_i6').get(u'value'))
                var.put(u'_path3', var.get(u'_ref7'))
                var.get(u'_path3').callprop(u'remove')
            
            PyJs_Object_1046_ = Js({u'SYSTEM_REGISTER':var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', (var.get(u'state').get(u'opts').get(u'systemGlobal') or Js(u'System'))), var.get(u't').callprop(u'identifier', Js(u'register'))),u'BEFORE_BODY':var.get(u'beforeBody'),u'MODULE_NAME':var.get(u'moduleName'),u'SETTERS':var.get(u'setters'),u'SOURCES':var.get(u'sources'),u'BODY':var.get(u'path').get(u'node').get(u'body'),u'EXPORT_IDENTIFIER':var.get(u'exportIdent'),u'CONTEXT_IDENTIFIER':var.get(u'contextIdent')})
            var.get(u'path').get(u'node').put(u'body', Js([var.get(u'buildTemplate')(PyJs_Object_1046_)]))
        PyJs_exit_1039_._set_name(u'exit')
        PyJs_Object_1037_ = Js({u'enter':PyJs_enter_1038_,u'exit':PyJs_exit_1039_})
        PyJs_Object_1035_ = Js({u'ReferencedIdentifier':PyJs_ReferencedIdentifier_1036_,u'Program':PyJs_Object_1037_})
        PyJs_Object_1034_ = Js({u'visitor':PyJs_Object_1035_})
        return PyJs_Object_1034_
    PyJs_anonymous_1031_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1031_)
    var.put(u'_babelHelperHoistVariables', var.get(u'require')(Js(u'babel-helper-hoist-variables')))
    var.put(u'_babelHelperHoistVariables2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperHoistVariables')))
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    var.put(u'_babelTemplate2', var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')))
    pass
    var.put(u'buildTemplate', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  SYSTEM_REGISTER(MODULE_NAME, [SOURCES], function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) {\n    "use strict";\n    BEFORE_BODY;\n    return {\n      setters: [SETTERS],\n      execute: function () {\n        BODY;\n      }\n    };\n  });\n')))
    var.put(u'buildExportAll', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  for (var KEY in TARGET) {\n    if (KEY !== "default" && KEY !== "__esModule") EXPORT_OBJ[KEY] = TARGET[KEY];\n  }\n')))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1030_._set_name(u'anonymous')
PyJs_Object_1048_ = Js({u'babel-helper-hoist-variables':Js(51.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/object/create':Js(101.0),u'babel-runtime/core-js/symbol':Js(105.0),u'babel-template':Js(221.0)})
@Js
def PyJs_anonymous_1049_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'_babelTemplate', u'module', u'_babelTemplate2', u'buildWrapper', u'buildGlobalExport', u'_interopRequireDefault', u'buildPrerequisiteAssignment', u'_path'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1064_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1064_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_1050_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'_ref', u'isValidDefine', u't'])
        @Js
        def PyJsHoisted_isValidDefine_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
            var.registers([u'expr', u'args', u'path'])
            if var.get(u'path').callprop(u'isExpressionStatement').neg():
                return var.get('undefined')
            var.put(u'expr', var.get(u'path').callprop(u'get', Js(u'expression')))
            if var.get(u'expr').callprop(u'isCallExpression').neg():
                return Js(False)
            PyJs_Object_1051_ = Js({u'name':Js(u'define')})
            if var.get(u'expr').callprop(u'get', Js(u'callee')).callprop(u'isIdentifier', PyJs_Object_1051_).neg():
                return Js(False)
            var.put(u'args', var.get(u'expr').callprop(u'get', Js(u'arguments')))
            if (PyJsStrictEq(var.get(u'args').get(u'length'),Js(3.0)) and var.get(u'args').callprop(u'shift').callprop(u'isStringLiteral').neg()):
                return Js(False)
            if PyJsStrictNeq(var.get(u'args').get(u'length'),Js(2.0)):
                return Js(False)
            if var.get(u'args').callprop(u'shift').callprop(u'isArrayExpression').neg():
                return Js(False)
            if var.get(u'args').callprop(u'shift').callprop(u'isFunctionExpression').neg():
                return Js(False)
            return var.get(u'true')
        PyJsHoisted_isValidDefine_.func_name = u'isValidDefine'
        var.put(u'isValidDefine', PyJsHoisted_isValidDefine_)
        var.put(u't', var.get(u'_ref').get(u'types'))
        pass
        @Js
        def PyJs_exit_1055_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'exit':PyJs_exit_1055_, u'arguments':arguments}, var)
            var.registers([u'browserGlobals', u'moduleName', u'last', u'members', u'globalName', u'args', u'browserArgs', u'commonArgs', u'amdArgs', u'state', u'call', u'func', u'globalToAssign', u'moduleNameOrBasename', u'path', u'globalExport', u'prerequisiteAssignments'])
            var.put(u'last', var.get(u'path').callprop(u'get', Js(u'body')).callprop(u'pop'))
            if var.get(u'isValidDefine')(var.get(u'last')).neg():
                return var.get('undefined')
            var.put(u'call', var.get(u'last').get(u'node').get(u'expression'))
            var.put(u'args', var.get(u'call').get(u'arguments'))
            var.put(u'moduleName', (var.get(u'args').callprop(u'shift') if PyJsStrictEq(var.get(u'args').get(u'length'),Js(3.0)) else var.get(u"null")))
            var.put(u'amdArgs', var.get(u'call').get(u'arguments').get(u'0'))
            var.put(u'func', var.get(u'call').get(u'arguments').get(u'1'))
            PyJs_Object_1056_ = Js({})
            var.put(u'browserGlobals', (var.get(u'state').get(u'opts').get(u'globals') or PyJs_Object_1056_))
            @Js
            def PyJs_anonymous_1057_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'arg'])
                if (PyJsStrictEq(var.get(u'arg').get(u'value'),Js(u'module')) or PyJsStrictEq(var.get(u'arg').get(u'value'),Js(u'exports'))):
                    return var.get(u't').callprop(u'identifier', var.get(u'arg').get(u'value'))
                else:
                    return var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'identifier', Js(u'require')), Js([var.get(u'arg')]))
            PyJs_anonymous_1057_._set_name(u'anonymous')
            var.put(u'commonArgs', var.get(u'amdArgs').get(u'elements').callprop(u'map', PyJs_anonymous_1057_))
            @Js
            def PyJs_anonymous_1058_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'memberExpression', u'globalRef', u'arg', u'globalName', u'requireName'])
                if PyJsStrictEq(var.get(u'arg').get(u'value'),Js(u'module')):
                    return var.get(u't').callprop(u'identifier', Js(u'mod'))
                else:
                    if PyJsStrictEq(var.get(u'arg').get(u'value'),Js(u'exports')):
                        return var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'mod')), var.get(u't').callprop(u'identifier', Js(u'exports')))
                    else:
                        var.put(u'memberExpression', PyJsComma(Js(0.0), Js(None)))
                        if var.get(u'state').get(u'opts').get(u'exactGlobals'):
                            var.put(u'globalRef', var.get(u'browserGlobals').get(var.get(u'arg').get(u'value')))
                            if var.get(u'globalRef'):
                                @Js
                                def PyJs_anonymous_1059_(accum, curr, this, arguments, var=var):
                                    var = Scope({u'this':this, u'curr':curr, u'accum':accum, u'arguments':arguments}, var)
                                    var.registers([u'curr', u'accum'])
                                    return var.get(u't').callprop(u'memberExpression', var.get(u'accum'), var.get(u't').callprop(u'identifier', var.get(u'curr')))
                                PyJs_anonymous_1059_._set_name(u'anonymous')
                                var.put(u'memberExpression', var.get(u'globalRef').callprop(u'split', Js(u'.')).callprop(u'reduce', PyJs_anonymous_1059_, var.get(u't').callprop(u'identifier', Js(u'global'))))
                            else:
                                var.put(u'memberExpression', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'global')), var.get(u't').callprop(u'identifier', var.get(u't').callprop(u'toIdentifier', var.get(u'arg').get(u'value')))))
                        else:
                            var.put(u'requireName', PyJsComma(Js(0.0),var.get(u'_path').get(u'basename'))(var.get(u'arg').get(u'value'), PyJsComma(Js(0.0),var.get(u'_path').get(u'extname'))(var.get(u'arg').get(u'value'))))
                            var.put(u'globalName', (var.get(u'browserGlobals').get(var.get(u'requireName')) or var.get(u'requireName')))
                            var.put(u'memberExpression', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'global')), var.get(u't').callprop(u'identifier', var.get(u't').callprop(u'toIdentifier', var.get(u'globalName')))))
                        return var.get(u'memberExpression')
            PyJs_anonymous_1058_._set_name(u'anonymous')
            var.put(u'browserArgs', var.get(u'amdArgs').get(u'elements').callprop(u'map', PyJs_anonymous_1058_))
            var.put(u'moduleNameOrBasename', (var.get(u'moduleName').get(u'value') if var.get(u'moduleName') else var.get(u"this").get(u'file').get(u'opts').get(u'basename')))
            var.put(u'globalToAssign', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'global')), var.get(u't').callprop(u'identifier', var.get(u't').callprop(u'toIdentifier', var.get(u'moduleNameOrBasename')))))
            var.put(u'prerequisiteAssignments', var.get(u"null"))
            if var.get(u'state').get(u'opts').get(u'exactGlobals'):
                var.put(u'globalName', var.get(u'browserGlobals').get(var.get(u'moduleNameOrBasename')))
                if var.get(u'globalName'):
                    var.put(u'prerequisiteAssignments', Js([]))
                    var.put(u'members', var.get(u'globalName').callprop(u'split', Js(u'.')))
                    @Js
                    def PyJs_anonymous_1060_(accum, curr, this, arguments, var=var):
                        var = Scope({u'this':this, u'curr':curr, u'accum':accum, u'arguments':arguments}, var)
                        var.registers([u'curr', u'accum'])
                        PyJs_Object_1061_ = Js({u'GLOBAL_REFERENCE':var.get(u'accum')})
                        var.get(u'prerequisiteAssignments').callprop(u'push', var.get(u'buildPrerequisiteAssignment')(PyJs_Object_1061_))
                        return var.get(u't').callprop(u'memberExpression', var.get(u'accum'), var.get(u't').callprop(u'identifier', var.get(u'curr')))
                    PyJs_anonymous_1060_._set_name(u'anonymous')
                    var.put(u'globalToAssign', var.get(u'members').callprop(u'slice', Js(1.0)).callprop(u'reduce', PyJs_anonymous_1060_, var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'global')), var.get(u't').callprop(u'identifier', var.get(u'members').get(u'0')))))
            PyJs_Object_1062_ = Js({u'BROWSER_ARGUMENTS':var.get(u'browserArgs'),u'PREREQUISITE_ASSIGNMENTS':var.get(u'prerequisiteAssignments'),u'GLOBAL_TO_ASSIGN':var.get(u'globalToAssign')})
            var.put(u'globalExport', var.get(u'buildGlobalExport')(PyJs_Object_1062_))
            PyJs_Object_1063_ = Js({u'MODULE_NAME':var.get(u'moduleName'),u'AMD_ARGUMENTS':var.get(u'amdArgs'),u'COMMON_ARGUMENTS':var.get(u'commonArgs'),u'GLOBAL_EXPORT':var.get(u'globalExport'),u'FUNC':var.get(u'func')})
            var.get(u'last').callprop(u'replaceWith', var.get(u'buildWrapper')(PyJs_Object_1063_))
        PyJs_exit_1055_._set_name(u'exit')
        PyJs_Object_1054_ = Js({u'exit':PyJs_exit_1055_})
        PyJs_Object_1053_ = Js({u'Program':PyJs_Object_1054_})
        PyJs_Object_1052_ = Js({u'inherits':var.get(u'require')(Js(u'babel-plugin-transform-es2015-modules-amd')),u'visitor':PyJs_Object_1053_})
        return PyJs_Object_1052_
    PyJs_anonymous_1050_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1050_)
    var.put(u'_path', var.get(u'require')(Js(u'path')))
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    var.put(u'_babelTemplate2', var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')))
    pass
    var.put(u'buildPrerequisiteAssignment', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  GLOBAL_REFERENCE = GLOBAL_REFERENCE || {}\n')))
    var.put(u'buildGlobalExport', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  var mod = { exports: {} };\n  factory(BROWSER_ARGUMENTS);\n  PREREQUISITE_ASSIGNMENTS\n  GLOBAL_TO_ASSIGN = mod.exports;\n')))
    var.put(u'buildWrapper', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  (function (global, factory) {\n    if (typeof define === "function" && define.amd) {\n      define(MODULE_NAME, AMD_ARGUMENTS, factory);\n    } else if (typeof exports !== "undefined") {\n      factory(COMMON_ARGUMENTS);\n    } else {\n      GLOBAL_EXPORT\n    }\n  })(this, FUNC);\n')))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1049_._set_name(u'anonymous')
PyJs_Object_1065_ = Js({u'babel-plugin-transform-es2015-modules-amd':Js(72.0),u'babel-template':Js(221.0),u'path':Js(530.0)})
@Js
def PyJs_anonymous_1066_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_babelHelperReplaceSupers2', u'exports', u'_symbol2', u'require', u'module', u'_symbol', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'_babelHelperReplaceSupers'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1077_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1077_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_symbol', var.get(u'require')(Js(u'babel-runtime/core-js/symbol')))
    var.put(u'_symbol2', var.get(u'_interopRequireDefault')(var.get(u'_symbol')))
    @Js
    def PyJs_anonymous_1067_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'_ref', u'Property', u't', u'CONTAINS_SUPER'])
        @Js
        def PyJsHoisted_Property_(path, node, scope, getObjectRef, file, this, arguments, var=var):
            var = Scope({u'node':node, u'getObjectRef':getObjectRef, u'arguments':arguments, u'file':file, u'scope':scope, u'this':this, u'path':path}, var)
            var.registers([u'node', u'getObjectRef', u'replaceSupers', u'file', u'scope', u'path'])
            PyJs_Object_1068_ = Js({u'getObjectRef':var.get(u'getObjectRef'),u'methodNode':var.get(u'node'),u'methodPath':var.get(u'path'),u'isStatic':var.get(u'true'),u'scope':var.get(u'scope'),u'file':var.get(u'file')})
            var.put(u'replaceSupers', var.get(u'_babelHelperReplaceSupers2').get(u'default').create(PyJs_Object_1068_))
            var.get(u'replaceSupers').callprop(u'replace')
        PyJsHoisted_Property_.func_name = u'Property'
        var.put(u'Property', PyJsHoisted_Property_)
        var.put(u't', var.get(u'_ref').get(u'types'))
        pass
        var.put(u'CONTAINS_SUPER', PyJsComma(Js(0.0),var.get(u'_symbol2').get(u'default'))())
        @Js
        def PyJs_Super_1071_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'Super':PyJs_Super_1071_, u'arguments':arguments}, var)
            var.registers([u'path', u'parentObj'])
            @Js
            def PyJs_anonymous_1072_(path, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                var.registers([u'path'])
                return var.get(u'path').callprop(u'isObjectExpression')
            PyJs_anonymous_1072_._set_name(u'anonymous')
            var.put(u'parentObj', var.get(u'path').callprop(u'findParent', PyJs_anonymous_1072_))
            if var.get(u'parentObj'):
                var.get(u'parentObj').get(u'node').put(var.get(u'CONTAINS_SUPER'), var.get(u'true'))
        PyJs_Super_1071_._set_name(u'Super')
        @Js
        def PyJs_exit_1074_(path, file, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'exit':PyJs_exit_1074_, u'arguments':arguments, u'file':file}, var)
            var.registers([u'getObjectRef', u'objectRef', u'_isArray', u'_iterator', u'file', u'propPath', u'_ref2', u'propPaths', u'_i', u'path'])
            if var.get(u'path').get(u'node').get(var.get(u'CONTAINS_SUPER')).neg():
                return var.get('undefined')
            var.put(u'objectRef', PyJsComma(Js(0.0), Js(None)))
            @Js
            def PyJs_getObjectRef_1075_(this, arguments, var=var):
                var = Scope({u'this':this, u'getObjectRef':PyJs_getObjectRef_1075_, u'arguments':arguments}, var)
                var.registers([])
                return var.put(u'objectRef', (var.get(u'objectRef') or var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'obj'))))
            PyJs_getObjectRef_1075_._set_name(u'getObjectRef')
            var.put(u'getObjectRef', PyJs_getObjectRef_1075_)
            var.put(u'propPaths', var.get(u'path').callprop(u'get', Js(u'properties')))
            #for JS loop
            var.put(u'_iterator', var.get(u'propPaths'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i').get(u'value'))
                var.put(u'propPath', var.get(u'_ref2'))
                if var.get(u'propPath').callprop(u'isObjectProperty'):
                    var.put(u'propPath', var.get(u'propPath').callprop(u'get', Js(u'value')))
                var.get(u'Property')(var.get(u'propPath'), var.get(u'propPath').get(u'node'), var.get(u'path').get(u'scope'), var.get(u'getObjectRef'), var.get(u'file'))
            
            if var.get(u'objectRef'):
                PyJs_Object_1076_ = Js({u'id':var.get(u'objectRef')})
                var.get(u'path').get(u'scope').callprop(u'push', PyJs_Object_1076_)
                var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'objectRef'), var.get(u'path').get(u'node')))
        PyJs_exit_1074_._set_name(u'exit')
        PyJs_Object_1073_ = Js({u'exit':PyJs_exit_1074_})
        PyJs_Object_1070_ = Js({u'Super':PyJs_Super_1071_,u'ObjectExpression':PyJs_Object_1073_})
        PyJs_Object_1069_ = Js({u'visitor':PyJs_Object_1070_})
        return PyJs_Object_1069_
    PyJs_anonymous_1067_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1067_)
    var.put(u'_babelHelperReplaceSupers', var.get(u'require')(Js(u'babel-helper-replace-supers')))
    var.put(u'_babelHelperReplaceSupers2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperReplaceSupers')))
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1066_._set_name(u'anonymous')
PyJs_Object_1078_ = Js({u'babel-helper-replace-supers':Js(54.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/symbol':Js(105.0)})
@Js
def PyJs_anonymous_1079_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_babelHelperCallDelegate', u'module', u'require', u'_babelHelperCallDelegate2', u'exports', u'_interopRequireWildcard', u'visitor', u'_babelHelperGetFunctionArity', u'_babelTypes', u'_babelHelperGetFunctionArity2', u'iifeVisitor', u'_babelTemplate', u'isSafeBinding', u'_babelTemplate2', u't', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'buildCutOff', u'hasDefaults', u'buildDefaultParam'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1081_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1081_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_isSafeBinding_(scope, node, this, arguments, var=var):
        var = Scope({u'node':node, u'scope':scope, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'scope', u'kind', u'_scope$getOwnBinding'])
        if var.get(u'scope').callprop(u'hasOwnBinding', var.get(u'node').get(u'name')).neg():
            return var.get(u'true')
        var.put(u'_scope$getOwnBinding', var.get(u'scope').callprop(u'getOwnBinding', var.get(u'node').get(u'name')))
        var.put(u'kind', var.get(u'_scope$getOwnBinding').get(u'kind'))
        return (PyJsStrictEq(var.get(u'kind'),Js(u'param')) or PyJsStrictEq(var.get(u'kind'),Js(u'local')))
    PyJsHoisted_isSafeBinding_.func_name = u'isSafeBinding'
    var.put(u'isSafeBinding', PyJsHoisted_isSafeBinding_)
    @Js
    def PyJsHoisted_hasDefaults_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'_isArray', u'_iterator', u'param', u'_i', u'_ref'])
        #for JS loop
        var.put(u'_iterator', var.get(u'node').get(u'params'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'param', var.get(u'_ref'))
            if var.get(u't').callprop(u'isIdentifier', var.get(u'param')).neg():
                return var.get(u'true')
        
        return Js(False)
    PyJsHoisted_hasDefaults_.func_name = u'hasDefaults'
    var.put(u'hasDefaults', PyJsHoisted_hasDefaults_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1080_ = Js({})
            var.put(u'newObj', PyJs_Object_1080_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'visitor', var.get(u'undefined'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_babelHelperGetFunctionArity', var.get(u'require')(Js(u'babel-helper-get-function-arity')))
    var.put(u'_babelHelperGetFunctionArity2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperGetFunctionArity')))
    var.put(u'_babelHelperCallDelegate', var.get(u'require')(Js(u'babel-helper-call-delegate')))
    var.put(u'_babelHelperCallDelegate2', var.get(u'_interopRequireDefault')(var.get(u'_babelHelperCallDelegate')))
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    var.put(u'_babelTemplate2', var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.put(u'buildDefaultParam', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  let VARIABLE_NAME =\n    ARGUMENTS.length > ARGUMENT_KEY && ARGUMENTS[ARGUMENT_KEY] !== undefined ?\n      ARGUMENTS[ARGUMENT_KEY]\n    :\n      DEFAULT_VALUE;\n')))
    var.put(u'buildCutOff', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  let $0 = $1[$2];\n')))
    pass
    pass
    @Js
    def PyJs_ReferencedIdentifier_1083_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_1083_, u'arguments':arguments}, var)
        var.registers([u'node', u'scope', u'state', u'path'])
        var.put(u'scope', var.get(u'path').get(u'scope'))
        var.put(u'node', var.get(u'path').get(u'node'))
        if (PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'eval')) or var.get(u'isSafeBinding')(var.get(u'scope'), var.get(u'node')).neg()):
            var.get(u'state').put(u'iife', var.get(u'true'))
            var.get(u'path').callprop(u'stop')
    PyJs_ReferencedIdentifier_1083_._set_name(u'ReferencedIdentifier')
    @Js
    def PyJs_Scope_1084_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'Scope':PyJs_Scope_1084_}, var)
        var.registers([u'path'])
        var.get(u'path').callprop(u'skip')
    PyJs_Scope_1084_._set_name(u'Scope')
    PyJs_Object_1082_ = Js({u'ReferencedIdentifier':PyJs_ReferencedIdentifier_1083_,u'Scope':PyJs_Scope_1084_})
    var.put(u'iifeVisitor', PyJs_Object_1082_)
    @Js
    def PyJs_Function_1086_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'Function':PyJs_Function_1086_, u'arguments':arguments}, var)
        var.registers([u'node', u'body', u'pushDefNode', u'right', u'lastNonDefaultParam', u'i', u'argsIdentifier', u'_i2', u'param', u'_param', u'state', u'declar', u'params', u'path', u'scope', u'placeholder', u'left'])
        @Js
        def PyJsHoisted_pushDefNode_(left, right, i, this, arguments, var=var):
            var = Scope({u'i':i, u'this':this, u'right':right, u'arguments':arguments, u'left':left}, var)
            var.registers([u'i', u'defNode', u'right', u'left'])
            PyJs_Object_1088_ = Js({u'VARIABLE_NAME':var.get(u'left'),u'DEFAULT_VALUE':var.get(u'right'),u'ARGUMENT_KEY':var.get(u't').callprop(u'numericLiteral', var.get(u'i')),u'ARGUMENTS':var.get(u'argsIdentifier')})
            var.put(u'defNode', var.get(u'buildDefaultParam')(PyJs_Object_1088_))
            var.get(u'defNode').put(u'_blockHoist', (var.get(u'node').get(u'params').get(u'length')-var.get(u'i')))
            var.get(u'body').callprop(u'push', var.get(u'defNode'))
        PyJsHoisted_pushDefNode_.func_name = u'pushDefNode'
        var.put(u'pushDefNode', PyJsHoisted_pushDefNode_)
        var.put(u'node', var.get(u'path').get(u'node'))
        var.put(u'scope', var.get(u'path').get(u'scope'))
        if var.get(u'hasDefaults')(var.get(u'node')).neg():
            return var.get('undefined')
        var.get(u'path').callprop(u'ensureBlock')
        PyJs_Object_1087_ = Js({u'iife':Js(False),u'scope':var.get(u'scope')})
        var.put(u'state', PyJs_Object_1087_)
        var.put(u'body', Js([]))
        var.put(u'argsIdentifier', var.get(u't').callprop(u'identifier', Js(u'arguments')))
        var.get(u'argsIdentifier').put(u'_shadowedFunctionLiteral', var.get(u'path'))
        pass
        var.put(u'lastNonDefaultParam', PyJsComma(Js(0.0),var.get(u'_babelHelperGetFunctionArity2').get(u'default'))(var.get(u'node')))
        var.put(u'params', var.get(u'path').callprop(u'get', Js(u'params')))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'params').get(u'length')):
            try:
                var.put(u'param', var.get(u'params').get(var.get(u'i')))
                if var.get(u'param').callprop(u'isAssignmentPattern').neg():
                    if (var.get(u'state').get(u'iife').neg() and var.get(u'param').callprop(u'isIdentifier').neg()):
                        var.get(u'param').callprop(u'traverse', var.get(u'iifeVisitor'), var.get(u'state'))
                    continue
                var.put(u'left', var.get(u'param').callprop(u'get', Js(u'left')))
                var.put(u'right', var.get(u'param').callprop(u'get', Js(u'right')))
                if ((var.get(u'i')>=var.get(u'lastNonDefaultParam')) or var.get(u'left').callprop(u'isPattern')):
                    var.put(u'placeholder', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'x')))
                    var.get(u'placeholder').put(u'_isDefaultPlaceholder', var.get(u'true'))
                    var.get(u'node').get(u'params').put(var.get(u'i'), var.get(u'placeholder'))
                else:
                    var.get(u'node').get(u'params').put(var.get(u'i'), var.get(u'left').get(u'node'))
                if var.get(u'state').get(u'iife').neg():
                    if (var.get(u'right').callprop(u'isIdentifier') and var.get(u'isSafeBinding')(var.get(u'scope'), var.get(u'right').get(u'node')).neg()):
                        var.get(u'state').put(u'iife', var.get(u'true'))
                    else:
                        var.get(u'right').callprop(u'traverse', var.get(u'iifeVisitor'), var.get(u'state'))
                var.get(u'pushDefNode')(var.get(u'left').get(u'node'), var.get(u'right').get(u'node'), var.get(u'i'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        #for JS loop
        var.put(u'_i2', (var.get(u'lastNonDefaultParam')+Js(1.0)))
        while (var.get(u'_i2')<var.get(u'node').get(u'params').get(u'length')):
            try:
                var.put(u'_param', var.get(u'node').get(u'params').get(var.get(u'_i2')))
                if var.get(u'_param').get(u'_isDefaultPlaceholder'):
                    continue
                var.put(u'declar', var.get(u'buildCutOff')(var.get(u'_param'), var.get(u'argsIdentifier'), var.get(u't').callprop(u'numericLiteral', var.get(u'_i2'))))
                var.get(u'declar').put(u'_blockHoist', (var.get(u'node').get(u'params').get(u'length')-var.get(u'_i2')))
                var.get(u'body').callprop(u'push', var.get(u'declar'))
            finally:
                    (var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))
        var.get(u'node').put(u'params', var.get(u'node').get(u'params').callprop(u'slice', Js(0.0), var.get(u'lastNonDefaultParam')))
        if var.get(u'state').get(u'iife'):
            var.get(u'body').callprop(u'push', PyJsComma(Js(0.0),var.get(u'_babelHelperCallDelegate2').get(u'default'))(var.get(u'path'), var.get(u'scope')))
            var.get(u'path').callprop(u'set', Js(u'body'), var.get(u't').callprop(u'blockStatement', var.get(u'body')))
        else:
            var.get(u'path').callprop(u'get', Js(u'body')).callprop(u'unshiftContainer', Js(u'body'), var.get(u'body'))
    PyJs_Function_1086_._set_name(u'Function')
    PyJs_Object_1085_ = Js({u'Function':PyJs_Function_1086_})
    var.put(u'visitor', var.get(u'exports').put(u'visitor', PyJs_Object_1085_))
PyJs_anonymous_1079_._set_name(u'anonymous')
PyJs_Object_1089_ = Js({u'babel-helper-call-delegate':Js(47.0),u'babel-helper-get-function-arity':Js(50.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-template':Js(221.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1090_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'visitor', u'require', u'_babelTypes', u'module', u't'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1091_ = Js({})
            var.put(u'newObj', PyJs_Object_1091_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'visitor', var.get(u'undefined'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    @Js
    def PyJs_Function_1093_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'Function':PyJs_Function_1093_, u'arguments':arguments}, var)
        var.registers([u'uid', u'i', u'param', u'outputParamsLength', u'params', u'path', u'hoistTweak', u'declar'])
        var.put(u'params', var.get(u'path').callprop(u'get', Js(u'params')))
        var.put(u'hoistTweak', (Js(1.0) if var.get(u't').callprop(u'isRestElement', var.get(u'params').get((var.get(u'params').get(u'length')-Js(1.0)))) else Js(0.0)))
        var.put(u'outputParamsLength', (var.get(u'params').get(u'length')-var.get(u'hoistTweak')))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'outputParamsLength')):
            try:
                var.put(u'param', var.get(u'params').get(var.get(u'i')))
                if (var.get(u'param').callprop(u'isArrayPattern') or var.get(u'param').callprop(u'isObjectPattern')):
                    var.put(u'uid', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'ref')))
                    var.put(u'declar', var.get(u't').callprop(u'variableDeclaration', Js(u'let'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'param').get(u'node'), var.get(u'uid'))])))
                    var.get(u'declar').put(u'_blockHoist', (var.get(u'outputParamsLength')-var.get(u'i')))
                    var.get(u'path').callprop(u'ensureBlock')
                    var.get(u'path').callprop(u'get', Js(u'body')).callprop(u'unshiftContainer', Js(u'body'), var.get(u'declar'))
                    var.get(u'param').callprop(u'replaceWith', var.get(u'uid'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
    PyJs_Function_1093_._set_name(u'Function')
    PyJs_Object_1092_ = Js({u'Function':PyJs_Function_1093_})
    var.put(u'visitor', var.get(u'exports').put(u'visitor', PyJs_Object_1092_))
PyJs_anonymous_1090_._set_name(u'anonymous')
PyJs_Object_1094_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1095_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'destructuring', u'_interopRequireWildcard', u'_default', u'require', u'rest', u'_rest', u'_destructuring', u'module', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'_babelTraverse', u'def'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1101_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1101_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1100_ = Js({})
            var.put(u'newObj', PyJs_Object_1100_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    @Js
    def PyJs_anonymous_1096_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_ArrowFunctionExpression_1099_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'ArrowFunctionExpression':PyJs_ArrowFunctionExpression_1099_}, var)
            var.registers([u'_isArray', u'_iterator', u'param', u'params', u'_i', u'path', u'_ref'])
            var.put(u'params', var.get(u'path').callprop(u'get', Js(u'params')))
            #for JS loop
            var.put(u'_iterator', var.get(u'params'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'param', var.get(u'_ref'))
                if (var.get(u'param').callprop(u'isRestElement') or var.get(u'param').callprop(u'isAssignmentPattern')):
                    var.get(u'path').callprop(u'arrowFunctionToShadowed')
                    break
            
        PyJs_ArrowFunctionExpression_1099_._set_name(u'ArrowFunctionExpression')
        PyJs_Object_1098_ = Js({u'ArrowFunctionExpression':PyJs_ArrowFunctionExpression_1099_})
        PyJs_Object_1097_ = Js({u'visitor':var.get(u'_babelTraverse').get(u'visitors').callprop(u'merge', Js([PyJs_Object_1098_, var.get(u'destructuring').get(u'visitor'), var.get(u'rest').get(u'visitor'), var.get(u'def').get(u'visitor')]))})
        return PyJs_Object_1097_
    PyJs_anonymous_1096_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1096_)
    var.put(u'_babelTraverse', var.get(u'require')(Js(u'babel-traverse')))
    var.put(u'_destructuring', var.get(u'require')(Js(u'./destructuring')))
    var.put(u'destructuring', var.get(u'_interopRequireWildcard')(var.get(u'_destructuring')))
    var.put(u'_default', var.get(u'require')(Js(u'./default')))
    var.put(u'def', var.get(u'_interopRequireWildcard')(var.get(u'_default')))
    var.put(u'_rest', var.get(u'require')(Js(u'./rest')))
    var.put(u'rest', var.get(u'_interopRequireWildcard')(var.get(u'_rest')))
    pass
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1095_._set_name(u'anonymous')
PyJs_Object_1102_ = Js({u'./default':Js(77.0),u'./destructuring':Js(78.0),u'./rest':Js(80.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-traverse':Js(225.0)})
@Js
def PyJs_anonymous_1103_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'restIndexImpure', u'exports', u'optimiseLengthGetter', u'hasRest', u'_interopRequireWildcard', u'visitor', u'require', u'_babelTypes', u'_babelTemplate', u'module', u'restIndex', u'buildRest', u'_babelTemplate2', u't', u'_interopRequireDefault', u'restLength', u'_getIterator2', u'_getIterator3', u'optimiseIndexGetter', u'memberExpressionOptimisationVisitor'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1105_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1105_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_optimiseLengthGetter_(path, argsId, offset, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'argsId':argsId, u'offset':offset}, var)
        var.registers([u'path', u'argsId', u'offset'])
        if var.get(u'offset'):
            PyJs_Object_1121_ = Js({u'ARGUMENTS':var.get(u'argsId'),u'OFFSET':var.get(u't').callprop(u'numericLiteral', var.get(u'offset'))})
            var.get(u'path').get(u'parentPath').callprop(u'replaceWith', var.get(u'restLength')(PyJs_Object_1121_))
        else:
            var.get(u'path').callprop(u'replaceWith', var.get(u'argsId'))
    PyJsHoisted_optimiseLengthGetter_.func_name = u'optimiseLengthGetter'
    var.put(u'optimiseLengthGetter', PyJsHoisted_optimiseLengthGetter_)
    @Js
    def PyJsHoisted_optimiseIndexGetter_(path, argsId, offset, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'argsId':argsId, u'offset':offset}, var)
        var.registers([u'index', u'temp', u'argsId', u'offset', u'path', u'scope'])
        var.put(u'index', PyJsComma(Js(0.0), Js(None)))
        if var.get(u't').callprop(u'isNumericLiteral', var.get(u'path').get(u'parent').get(u'property')):
            var.put(u'index', var.get(u't').callprop(u'numericLiteral', (var.get(u'path').get(u'parent').get(u'property').get(u'value')+var.get(u'offset'))))
        else:
            if PyJsStrictEq(var.get(u'offset'),Js(0.0)):
                var.put(u'index', var.get(u'path').get(u'parent').get(u'property'))
            else:
                var.put(u'index', var.get(u't').callprop(u'binaryExpression', Js(u'+'), var.get(u'path').get(u'parent').get(u'property'), var.get(u't').callprop(u'numericLiteral', var.get(u'offset'))))
        var.put(u'scope', var.get(u'path').get(u'scope'))
        if var.get(u'scope').callprop(u'isPure', var.get(u'index')).neg():
            var.put(u'temp', var.get(u'scope').callprop(u'generateUidIdentifierBasedOnNode', var.get(u'index')))
            PyJs_Object_1118_ = Js({u'id':var.get(u'temp'),u'kind':Js(u'var')})
            var.get(u'scope').callprop(u'push', PyJs_Object_1118_)
            PyJs_Object_1119_ = Js({u'ARGUMENTS':var.get(u'argsId'),u'INDEX':var.get(u'index'),u'REF':var.get(u'temp')})
            var.get(u'path').get(u'parentPath').callprop(u'replaceWith', var.get(u'restIndexImpure')(PyJs_Object_1119_))
        else:
            PyJs_Object_1120_ = Js({u'ARGUMENTS':var.get(u'argsId'),u'INDEX':var.get(u'index')})
            var.get(u'path').get(u'parentPath').callprop(u'replaceWith', var.get(u'restIndex')(PyJs_Object_1120_))
    PyJsHoisted_optimiseIndexGetter_.func_name = u'optimiseIndexGetter'
    var.put(u'optimiseIndexGetter', PyJsHoisted_optimiseIndexGetter_)
    @Js
    def PyJsHoisted_hasRest_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        return var.get(u't').callprop(u'isRestElement', var.get(u'node').get(u'params').get((var.get(u'node').get(u'params').get(u'length')-Js(1.0))))
    PyJsHoisted_hasRest_.func_name = u'hasRest'
    var.put(u'hasRest', PyJsHoisted_hasRest_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1104_ = Js({})
            var.put(u'newObj', PyJs_Object_1104_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'visitor', var.get(u'undefined'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_babelTemplate', var.get(u'require')(Js(u'babel-template')))
    var.put(u'_babelTemplate2', var.get(u'_interopRequireDefault')(var.get(u'_babelTemplate')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.put(u'buildRest', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  for (var LEN = ARGUMENTS.length,\n           ARRAY = Array(ARRAY_LEN),\n           KEY = START;\n       KEY < LEN;\n       KEY++) {\n    ARRAY[ARRAY_KEY] = ARGUMENTS[KEY];\n  }\n')))
    var.put(u'restIndex', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  ARGUMENTS.length <= INDEX ? undefined : ARGUMENTS[INDEX]\n')))
    var.put(u'restIndexImpure', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  REF = INDEX, ARGUMENTS.length <= REF ? undefined : ARGUMENTS[REF]\n')))
    var.put(u'restLength', PyJsComma(Js(0.0),var.get(u'_babelTemplate2').get(u'default'))(Js(u'\n  ARGUMENTS.length <= OFFSET ? 0 : ARGUMENTS.length - OFFSET\n')))
    @Js
    def PyJs_Scope_1107_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'Scope':PyJs_Scope_1107_}, var)
        var.registers([u'path', u'state'])
        if var.get(u'path').get(u'scope').callprop(u'bindingIdentifierEquals', var.get(u'state').get(u'name'), var.get(u'state').get(u'outerBinding')).neg():
            var.get(u'path').callprop(u'skip')
    PyJs_Scope_1107_._set_name(u'Scope')
    @Js
    def PyJs_Flow_1108_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'Flow':PyJs_Flow_1108_, u'arguments':arguments}, var)
        var.registers([u'path'])
        if var.get(u'path').callprop(u'isTypeCastExpression'):
            return var.get('undefined')
        var.get(u'path').callprop(u'skip')
    PyJs_Flow_1108_._set_name(u'Flow')
    @Js
    def PyJs_FunctionClassProperty_1109_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'FunctionClassProperty':PyJs_FunctionClassProperty_1109_}, var)
        var.registers([u'oldNoOptimise', u'state', u'path'])
        var.put(u'oldNoOptimise', var.get(u'state').get(u'noOptimise'))
        var.get(u'state').put(u'noOptimise', var.get(u'true'))
        var.get(u'path').callprop(u'traverse', var.get(u'memberExpressionOptimisationVisitor'), var.get(u'state'))
        var.get(u'state').put(u'noOptimise', var.get(u'oldNoOptimise'))
        var.get(u'path').callprop(u'skip')
    PyJs_FunctionClassProperty_1109_._set_name(u'FunctionClassProperty')
    @Js
    def PyJs_ReferencedIdentifier_1110_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_1110_, u'arguments':arguments}, var)
        var.registers([u'node', u'grandparentPath', u'argsOptEligible', u'state', u'call', u'parentPath', u'path'])
        var.put(u'node', var.get(u'path').get(u'node'))
        if PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'arguments')):
            var.get(u'state').put(u'deopted', var.get(u'true'))
        if PyJsStrictNeq(var.get(u'node').get(u'name'),var.get(u'state').get(u'name')):
            return var.get('undefined')
        if var.get(u'state').get(u'noOptimise'):
            var.get(u'state').put(u'deopted', var.get(u'true'))
        else:
            var.put(u'parentPath', var.get(u'path').get(u'parentPath'))
            PyJs_Object_1111_ = Js({u'object':var.get(u'node')})
            if var.get(u'parentPath').callprop(u'isMemberExpression', PyJs_Object_1111_):
                var.put(u'grandparentPath', var.get(u'parentPath').get(u'parentPath'))
                def PyJs_LONG_1113_(var=var):
                    PyJs_Object_1112_ = Js({u'operator':Js(u'delete')})
                    return (((((var.get(u'grandparentPath').callprop(u'isAssignmentExpression') and PyJsStrictEq(var.get(u'parentPath').get(u'node'),var.get(u'grandparentPath').get(u'node').get(u'left'))) or var.get(u'grandparentPath').callprop(u'isLVal')) or var.get(u'grandparentPath').callprop(u'isForXStatement')) or var.get(u'grandparentPath').callprop(u'isUpdateExpression')) or var.get(u'grandparentPath').callprop(u'isUnaryExpression', PyJs_Object_1112_))
                var.put(u'argsOptEligible', (var.get(u'state').get(u'deopted').neg() and (PyJs_LONG_1113_() or ((var.get(u'grandparentPath').callprop(u'isCallExpression') or var.get(u'grandparentPath').callprop(u'isNewExpression')) and PyJsStrictEq(var.get(u'parentPath').get(u'node'),var.get(u'grandparentPath').get(u'node').get(u'callee')))).neg()))
                if var.get(u'argsOptEligible'):
                    if var.get(u'parentPath').get(u'node').get(u'computed'):
                        if var.get(u'parentPath').callprop(u'get', Js(u'property')).callprop(u'isBaseType', Js(u'number')):
                            PyJs_Object_1114_ = Js({u'cause':Js(u'indexGetter'),u'path':var.get(u'path')})
                            var.get(u'state').get(u'candidates').callprop(u'push', PyJs_Object_1114_)
                            return var.get('undefined')
                    else:
                        if PyJsStrictEq(var.get(u'parentPath').get(u'node').get(u'property').get(u'name'),Js(u'length')):
                            PyJs_Object_1115_ = Js({u'cause':Js(u'lengthGetter'),u'path':var.get(u'path')})
                            var.get(u'state').get(u'candidates').callprop(u'push', PyJs_Object_1115_)
                            return var.get('undefined')
            if (PyJsStrictEq(var.get(u'state').get(u'offset'),Js(0.0)) and var.get(u'parentPath').callprop(u'isSpreadElement')):
                var.put(u'call', var.get(u'parentPath').get(u'parentPath'))
                if (var.get(u'call').callprop(u'isCallExpression') and PyJsStrictEq(var.get(u'call').get(u'node').get(u'arguments').get(u'length'),Js(1.0))):
                    PyJs_Object_1116_ = Js({u'cause':Js(u'argSpread'),u'path':var.get(u'path')})
                    var.get(u'state').get(u'candidates').callprop(u'push', PyJs_Object_1116_)
                    return var.get('undefined')
            var.get(u'state').get(u'references').callprop(u'push', var.get(u'path'))
    PyJs_ReferencedIdentifier_1110_._set_name(u'ReferencedIdentifier')
    @Js
    def PyJs_BindingIdentifier_1117_(_ref, state, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'BindingIdentifier':PyJs_BindingIdentifier_1117_, u'state':state, u'arguments':arguments}, var)
        var.registers([u'node', u'_ref', u'state'])
        var.put(u'node', var.get(u'_ref').get(u'node'))
        if PyJsStrictEq(var.get(u'node').get(u'name'),var.get(u'state').get(u'name')):
            var.get(u'state').put(u'deopted', var.get(u'true'))
    PyJs_BindingIdentifier_1117_._set_name(u'BindingIdentifier')
    PyJs_Object_1106_ = Js({u'Scope':PyJs_Scope_1107_,u'Flow':PyJs_Flow_1108_,u'Function|ClassProperty':PyJs_FunctionClassProperty_1109_,u'ReferencedIdentifier':PyJs_ReferencedIdentifier_1110_,u'BindingIdentifier':PyJs_BindingIdentifier_1117_})
    var.put(u'memberExpressionOptimisationVisitor', PyJs_Object_1106_)
    pass
    pass
    pass
    @Js
    def PyJs_Function_1123_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'Function':PyJs_Function_1123_, u'arguments':arguments}, var)
        var.registers([u'node', u'arrLen', u'_isArray', u'_iterator', u'key', u'arrKey', u'_ref3', u'_ref2', u'argsId', u'len', u'start', u'state', u'rest', u'_i', u'target', u'scope', u'path', u'cause', u'loop', u'_path'])
        var.put(u'node', var.get(u'path').get(u'node'))
        var.put(u'scope', var.get(u'path').get(u'scope'))
        if var.get(u'hasRest')(var.get(u'node')).neg():
            return var.get('undefined')
        var.put(u'rest', var.get(u'node').get(u'params').callprop(u'pop').get(u'argument'))
        var.put(u'argsId', var.get(u't').callprop(u'identifier', Js(u'arguments')))
        var.get(u'argsId').put(u'_shadowedFunctionLiteral', var.get(u'path'))
        PyJs_Object_1124_ = Js({u'references':Js([]),u'offset':var.get(u'node').get(u'params').get(u'length'),u'argumentsNode':var.get(u'argsId'),u'outerBinding':var.get(u'scope').callprop(u'getBindingIdentifier', var.get(u'rest').get(u'name')),u'candidates':Js([]),u'name':var.get(u'rest').get(u'name'),u'deopted':Js(False)})
        var.put(u'state', PyJs_Object_1124_)
        var.get(u'path').callprop(u'traverse', var.get(u'memberExpressionOptimisationVisitor'), var.get(u'state'))
        if (var.get(u'state').get(u'deopted').neg() and var.get(u'state').get(u'references').get(u'length').neg()):
            #for JS loop
            var.put(u'_iterator', var.get(u'state').get(u'candidates'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i').get(u'value'))
                var.put(u'_ref3', var.get(u'_ref2'))
                var.put(u'_path', var.get(u'_ref3').get(u'path'))
                var.put(u'cause', var.get(u'_ref3').get(u'cause'))
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'cause'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'indexGetter')):
                        SWITCHED = True
                        var.get(u'optimiseIndexGetter')(var.get(u'_path'), var.get(u'argsId'), var.get(u'state').get(u'offset'))
                        break
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'lengthGetter')):
                        SWITCHED = True
                        var.get(u'optimiseLengthGetter')(var.get(u'_path'), var.get(u'argsId'), var.get(u'state').get(u'offset'))
                        break
                    if True:
                        SWITCHED = True
                        var.get(u'_path').callprop(u'replaceWith', var.get(u'argsId'))
                    SWITCHED = True
                    break
            
            return var.get('undefined')
        @Js
        def PyJs_anonymous_1125_(_ref4, this, arguments, var=var):
            var = Scope({u'this':this, u'_ref4':_ref4, u'arguments':arguments}, var)
            var.registers([u'path', u'_ref4'])
            var.put(u'path', var.get(u'_ref4').get(u'path'))
            return var.get(u'path')
        PyJs_anonymous_1125_._set_name(u'anonymous')
        var.get(u'state').put(u'references', var.get(u'state').get(u'references').callprop(u'concat', var.get(u'state').get(u'candidates').callprop(u'map', PyJs_anonymous_1125_)))
        var.get(u'state').put(u'deopted', (var.get(u'state').get(u'deopted') or var.get(u'node').get(u'shadow').neg().neg()))
        var.put(u'start', var.get(u't').callprop(u'numericLiteral', var.get(u'node').get(u'params').get(u'length')))
        var.put(u'key', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'key')))
        var.put(u'len', var.get(u'scope').callprop(u'generateUidIdentifier', Js(u'len')))
        var.put(u'arrKey', var.get(u'key'))
        var.put(u'arrLen', var.get(u'len'))
        if var.get(u'node').get(u'params').get(u'length'):
            var.put(u'arrKey', var.get(u't').callprop(u'binaryExpression', Js(u'-'), var.get(u'key'), var.get(u'start')))
            var.put(u'arrLen', var.get(u't').callprop(u'conditionalExpression', var.get(u't').callprop(u'binaryExpression', Js(u'>'), var.get(u'len'), var.get(u'start')), var.get(u't').callprop(u'binaryExpression', Js(u'-'), var.get(u'len'), var.get(u'start')), var.get(u't').callprop(u'numericLiteral', Js(0.0))))
        PyJs_Object_1126_ = Js({u'ARGUMENTS':var.get(u'argsId'),u'ARRAY_KEY':var.get(u'arrKey'),u'ARRAY_LEN':var.get(u'arrLen'),u'START':var.get(u'start'),u'ARRAY':var.get(u'rest'),u'KEY':var.get(u'key'),u'LEN':var.get(u'len')})
        var.put(u'loop', var.get(u'buildRest')(PyJs_Object_1126_))
        if var.get(u'state').get(u'deopted'):
            var.get(u'loop').put(u'_blockHoist', (var.get(u'node').get(u'params').get(u'length')+Js(1.0)))
            var.get(u'node').get(u'body').get(u'body').callprop(u'unshift', var.get(u'loop'))
        else:
            var.get(u'loop').put(u'_blockHoist', Js(1.0))
            var.put(u'target', var.get(u'path').callprop(u'getEarliestCommonAncestorFrom', var.get(u'state').get(u'references')).callprop(u'getStatementParent'))
            @Js
            def PyJs_anonymous_1127_(path, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                var.registers([u'path'])
                if var.get(u'path').callprop(u'isLoop'):
                    var.put(u'target', var.get(u'path'))
                else:
                    return var.get(u'path').callprop(u'isFunction')
            PyJs_anonymous_1127_._set_name(u'anonymous')
            var.get(u'target').callprop(u'findParent', PyJs_anonymous_1127_)
            var.get(u'target').callprop(u'insertBefore', var.get(u'loop'))
    PyJs_Function_1123_._set_name(u'Function')
    PyJs_Object_1122_ = Js({u'Function':PyJs_Function_1123_})
    var.put(u'visitor', var.get(u'exports').put(u'visitor', PyJs_Object_1122_))
PyJs_anonymous_1103_._set_name(u'anonymous')
PyJs_Object_1128_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-template':Js(221.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1129_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'require', u'_babelTypes', u'module', u't'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1135_ = Js({})
            var.put(u'newObj', PyJs_Object_1135_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_1130_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_ObjectMethod_1133_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'ObjectMethod':PyJs_ObjectMethod_1133_}, var)
            var.registers([u'node', u'path', u'func'])
            var.put(u'node', var.get(u'path').get(u'node'))
            if PyJsStrictEq(var.get(u'node').get(u'kind'),Js(u'method')):
                var.put(u'func', var.get(u't').callprop(u'functionExpression', var.get(u"null"), var.get(u'node').get(u'params'), var.get(u'node').get(u'body'), var.get(u'node').get(u'generator'), var.get(u'node').get(u'async')))
                var.get(u'func').put(u'returnType', var.get(u'node').get(u'returnType'))
                var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'objectProperty', var.get(u'node').get(u'key'), var.get(u'func'), var.get(u'node').get(u'computed')))
        PyJs_ObjectMethod_1133_._set_name(u'ObjectMethod')
        @Js
        def PyJs_ObjectProperty_1134_(_ref, this, arguments, var=var):
            var = Scope({u'this':this, u'_ref':_ref, u'ObjectProperty':PyJs_ObjectProperty_1134_, u'arguments':arguments}, var)
            var.registers([u'node', u'_ref'])
            var.put(u'node', var.get(u'_ref').get(u'node'))
            if var.get(u'node').get(u'shorthand'):
                var.get(u'node').put(u'shorthand', Js(False))
        PyJs_ObjectProperty_1134_._set_name(u'ObjectProperty')
        PyJs_Object_1132_ = Js({u'ObjectMethod':PyJs_ObjectMethod_1133_,u'ObjectProperty':PyJs_ObjectProperty_1134_})
        PyJs_Object_1131_ = Js({u'visitor':PyJs_Object_1132_})
        return PyJs_Object_1131_
    PyJs_anonymous_1130_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1130_)
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1129_._set_name(u'anonymous')
PyJs_Object_1136_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1137_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1146_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1146_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    @Js
    def PyJs_anonymous_1138_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'_ref', u'hasSpread', u't', u'getSpreadLiteral', u'build'])
        @Js
        def PyJsHoisted_hasSpread_(nodes, this, arguments, var=var):
            var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
            var.registers([u'i', u'nodes'])
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'nodes').get(u'length')):
                try:
                    if var.get(u't').callprop(u'isSpreadElement', var.get(u'nodes').get(var.get(u'i'))):
                        return var.get(u'true')
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return Js(False)
        PyJsHoisted_hasSpread_.func_name = u'hasSpread'
        var.put(u'hasSpread', PyJsHoisted_hasSpread_)
        @Js
        def PyJsHoisted_build_(props, scope, state, this, arguments, var=var):
            var = Scope({u'this':this, u'scope':scope, u'state':state, u'arguments':arguments, u'props':props}, var)
            var.registers([u'_isArray', u'_iterator', u'_ref2', u'prop', u'state', u'_props', u'_i', u'props', u'push', u'scope', u'nodes'])
            @Js
            def PyJsHoisted_push_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                if var.get(u'_props').get(u'length').neg():
                    return var.get('undefined')
                var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'arrayExpression', var.get(u'_props')))
                var.put(u'_props', Js([]))
            PyJsHoisted_push_.func_name = u'push'
            var.put(u'push', PyJsHoisted_push_)
            var.put(u'nodes', Js([]))
            var.put(u'_props', Js([]))
            pass
            #for JS loop
            var.put(u'_iterator', var.get(u'props'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i').get(u'value'))
                var.put(u'prop', var.get(u'_ref2'))
                if var.get(u't').callprop(u'isSpreadElement', var.get(u'prop')):
                    var.get(u'push')()
                    var.get(u'nodes').callprop(u'push', var.get(u'getSpreadLiteral')(var.get(u'prop'), var.get(u'scope'), var.get(u'state')))
                else:
                    var.get(u'_props').callprop(u'push', var.get(u'prop'))
            
            var.get(u'push')()
            return var.get(u'nodes')
        PyJsHoisted_build_.func_name = u'build'
        var.put(u'build', PyJsHoisted_build_)
        @Js
        def PyJsHoisted_getSpreadLiteral_(spread, scope, state, this, arguments, var=var):
            var = Scope({u'this':this, u'scope':scope, u'state':state, u'spread':spread, u'arguments':arguments}, var)
            var.registers([u'scope', u'state', u'spread'])
            PyJs_Object_1139_ = Js({u'name':Js(u'arguments')})
            if (var.get(u'state').get(u'opts').get(u'loose') and var.get(u't').callprop(u'isIdentifier', var.get(u'spread').get(u'argument'), PyJs_Object_1139_).neg()):
                return var.get(u'spread').get(u'argument')
            else:
                return var.get(u'scope').callprop(u'toArray', var.get(u'spread').get(u'argument'), var.get(u'true'))
        PyJsHoisted_getSpreadLiteral_.func_name = u'getSpreadLiteral'
        var.put(u'getSpreadLiteral', PyJsHoisted_getSpreadLiteral_)
        var.put(u't', var.get(u'_ref').get(u'types'))
        pass
        pass
        pass
        @Js
        def PyJs_ArrayExpression_1142_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'ArrayExpression':PyJs_ArrayExpression_1142_}, var)
            var.registers([u'node', u'elements', u'state', u'path', u'scope', u'nodes', u'first'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.put(u'elements', var.get(u'node').get(u'elements'))
            if var.get(u'hasSpread')(var.get(u'elements')).neg():
                return var.get('undefined')
            var.put(u'nodes', var.get(u'build')(var.get(u'elements'), var.get(u'scope'), var.get(u'state')))
            var.put(u'first', var.get(u'nodes').callprop(u'shift'))
            if var.get(u't').callprop(u'isArrayExpression', var.get(u'first')).neg():
                var.get(u'nodes').callprop(u'unshift', var.get(u'first'))
                var.put(u'first', var.get(u't').callprop(u'arrayExpression', Js([])))
            var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u'first'), var.get(u't').callprop(u'identifier', Js(u'concat'))), var.get(u'nodes')))
        PyJs_ArrayExpression_1142_._set_name(u'ArrayExpression')
        @Js
        def PyJs_CallExpression_1143_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'CallExpression':PyJs_CallExpression_1143_}, var)
            var.registers([u'node', u'temp', u'contextLiteral', u'args', u'calleePath', u'state', u'path', u'scope', u'nodes', u'callee', u'first'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.put(u'args', var.get(u'node').get(u'arguments'))
            if var.get(u'hasSpread')(var.get(u'args')).neg():
                return var.get('undefined')
            var.put(u'calleePath', var.get(u'path').callprop(u'get', Js(u'callee')))
            if var.get(u'calleePath').callprop(u'isSuper'):
                return var.get('undefined')
            var.put(u'contextLiteral', var.get(u't').callprop(u'identifier', Js(u'undefined')))
            var.get(u'node').put(u'arguments', Js([]))
            var.put(u'nodes', PyJsComma(Js(0.0), Js(None)))
            if (PyJsStrictEq(var.get(u'args').get(u'length'),Js(1.0)) and PyJsStrictEq(var.get(u'args').get(u'0').get(u'argument').get(u'name'),Js(u'arguments'))):
                var.put(u'nodes', Js([var.get(u'args').get(u'0').get(u'argument')]))
            else:
                var.put(u'nodes', var.get(u'build')(var.get(u'args'), var.get(u'scope'), var.get(u'state')))
            var.put(u'first', var.get(u'nodes').callprop(u'shift'))
            if var.get(u'nodes').get(u'length'):
                var.get(u'node').get(u'arguments').callprop(u'push', var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u'first'), var.get(u't').callprop(u'identifier', Js(u'concat'))), var.get(u'nodes')))
            else:
                var.get(u'node').get(u'arguments').callprop(u'push', var.get(u'first'))
            var.put(u'callee', var.get(u'node').get(u'callee'))
            if var.get(u'calleePath').callprop(u'isMemberExpression'):
                var.put(u'temp', var.get(u'scope').callprop(u'maybeGenerateMemoised', var.get(u'callee').get(u'object')))
                if var.get(u'temp'):
                    var.get(u'callee').put(u'object', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'temp'), var.get(u'callee').get(u'object')))
                    var.put(u'contextLiteral', var.get(u'temp'))
                else:
                    var.put(u'contextLiteral', var.get(u'callee').get(u'object'))
                var.get(u't').callprop(u'appendToMemberExpression', var.get(u'callee'), var.get(u't').callprop(u'identifier', Js(u'apply')))
            else:
                var.get(u'node').put(u'callee', var.get(u't').callprop(u'memberExpression', var.get(u'node').get(u'callee'), var.get(u't').callprop(u'identifier', Js(u'apply'))))
            if var.get(u't').callprop(u'isSuper', var.get(u'contextLiteral')):
                var.put(u'contextLiteral', var.get(u't').callprop(u'thisExpression'))
            var.get(u'node').get(u'arguments').callprop(u'unshift', var.get(u'contextLiteral'))
        PyJs_CallExpression_1143_._set_name(u'CallExpression')
        @Js
        def PyJs_NewExpression_1144_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'NewExpression':PyJs_NewExpression_1144_}, var)
            var.registers([u'node', u'args', u'state', u'context', u'path', u'scope', u'nodes'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'scope', var.get(u'path').get(u'scope'))
            var.put(u'args', var.get(u'node').get(u'arguments'))
            if var.get(u'hasSpread')(var.get(u'args')).neg():
                return var.get('undefined')
            var.put(u'nodes', var.get(u'build')(var.get(u'args'), var.get(u'scope'), var.get(u'state')))
            var.put(u'context', var.get(u't').callprop(u'arrayExpression', Js([var.get(u't').callprop(u'nullLiteral')])))
            var.put(u'args', var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u'context'), var.get(u't').callprop(u'identifier', Js(u'concat'))), var.get(u'nodes')))
            def PyJs_LONG_1145_(var=var):
                return var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'Function')), var.get(u't').callprop(u'identifier', Js(u'prototype'))), var.get(u't').callprop(u'identifier', Js(u'bind'))), var.get(u't').callprop(u'identifier', Js(u'apply'))), Js([var.get(u'node').get(u'callee'), var.get(u'args')]))
            var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'newExpression', PyJs_LONG_1145_(), Js([])))
        PyJs_NewExpression_1144_._set_name(u'NewExpression')
        PyJs_Object_1141_ = Js({u'ArrayExpression':PyJs_ArrayExpression_1142_,u'CallExpression':PyJs_CallExpression_1143_,u'NewExpression':PyJs_NewExpression_1144_})
        PyJs_Object_1140_ = Js({u'visitor':PyJs_Object_1141_})
        return PyJs_Object_1140_
    PyJs_anonymous_1138_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1138_)
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1137_._set_name(u'anonymous')
PyJs_Object_1147_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0)})
@Js
def PyJs_anonymous_1148_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'regex', u'exports', u'_babelHelperRegex', u'_interopRequireWildcard', u'require', u'_babelTypes', u'module', u't'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1153_ = Js({})
            var.put(u'newObj', PyJs_Object_1153_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_1149_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_RegExpLiteral_1152_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'RegExpLiteral':PyJs_RegExpLiteral_1152_}, var)
            var.registers([u'node', u'path'])
            var.put(u'node', var.get(u'path').get(u'node'))
            if var.get(u'regex').callprop(u'is', var.get(u'node'), Js(u'y')).neg():
                return var.get('undefined')
            var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'newExpression', var.get(u't').callprop(u'identifier', Js(u'RegExp')), Js([var.get(u't').callprop(u'stringLiteral', var.get(u'node').get(u'pattern')), var.get(u't').callprop(u'stringLiteral', var.get(u'node').get(u'flags'))])))
        PyJs_RegExpLiteral_1152_._set_name(u'RegExpLiteral')
        PyJs_Object_1151_ = Js({u'RegExpLiteral':PyJs_RegExpLiteral_1152_})
        PyJs_Object_1150_ = Js({u'visitor':PyJs_Object_1151_})
        return PyJs_Object_1150_
    PyJs_anonymous_1149_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1149_)
    var.put(u'_babelHelperRegex', var.get(u'require')(Js(u'babel-helper-regex')))
    var.put(u'regex', var.get(u'_interopRequireWildcard')(var.get(u'_babelHelperRegex')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1148_._set_name(u'anonymous')
PyJs_Object_1154_ = Js({u'babel-helper-regex':Js(53.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1155_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1163_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1163_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    @Js
    def PyJs_anonymous_1156_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'_ref', u'isString', u'buildBinaryExpression', u't'])
        @Js
        def PyJsHoisted_isString_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node'])
            return (var.get(u't').callprop(u'isLiteral', var.get(u'node')) and PyJsStrictEq(var.get(u'node').get(u'value').typeof(),Js(u'string')))
        PyJsHoisted_isString_.func_name = u'isString'
        var.put(u'isString', PyJsHoisted_isString_)
        @Js
        def PyJsHoisted_buildBinaryExpression_(left, right, this, arguments, var=var):
            var = Scope({u'this':this, u'right':right, u'arguments':arguments, u'left':left}, var)
            var.registers([u'right', u'left'])
            return var.get(u't').callprop(u'binaryExpression', Js(u'+'), var.get(u'left'), var.get(u'right'))
        PyJsHoisted_buildBinaryExpression_.func_name = u'buildBinaryExpression'
        var.put(u'buildBinaryExpression', PyJsHoisted_buildBinaryExpression_)
        var.put(u't', var.get(u'_ref').get(u'types'))
        pass
        pass
        @Js
        def PyJs_TaggedTemplateExpression_1159_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'TaggedTemplateExpression':PyJs_TaggedTemplateExpression_1159_, u'arguments':arguments}, var)
            var.registers([u'node', u'_isArray', u'_iterator', u'templateObject', u'templateName', u'args', u'_ref2', u'elem', u'raw', u'quasi', u'state', u'_i', u'path', u'strings'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'quasi', var.get(u'node').get(u'quasi'))
            var.put(u'args', Js([]))
            var.put(u'strings', Js([]))
            var.put(u'raw', Js([]))
            #for JS loop
            var.put(u'_iterator', var.get(u'quasi').get(u'quasis'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i').get(u'value'))
                var.put(u'elem', var.get(u'_ref2'))
                var.get(u'strings').callprop(u'push', var.get(u't').callprop(u'stringLiteral', var.get(u'elem').get(u'value').get(u'cooked')))
                var.get(u'raw').callprop(u'push', var.get(u't').callprop(u'stringLiteral', var.get(u'elem').get(u'value').get(u'raw')))
            
            var.put(u'strings', var.get(u't').callprop(u'arrayExpression', var.get(u'strings')))
            var.put(u'raw', var.get(u't').callprop(u'arrayExpression', var.get(u'raw')))
            var.put(u'templateName', Js(u'taggedTemplateLiteral'))
            if var.get(u'state').get(u'opts').get(u'loose'):
                var.put(u'templateName', Js(u'Loose'), u'+')
            var.put(u'templateObject', var.get(u'state').get(u'file').callprop(u'addTemplateObject', var.get(u'templateName'), var.get(u'strings'), var.get(u'raw')))
            var.get(u'args').callprop(u'push', var.get(u'templateObject'))
            var.put(u'args', var.get(u'args').callprop(u'concat', var.get(u'quasi').get(u'expressions')))
            var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'callExpression', var.get(u'node').get(u'tag'), var.get(u'args')))
        PyJs_TaggedTemplateExpression_1159_._set_name(u'TaggedTemplateExpression')
        @Js
        def PyJs_TemplateLiteral_1160_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'TemplateLiteral':PyJs_TemplateLiteral_1160_, u'arguments':arguments}, var)
            var.registers([u'node', u'_ref4', u'_isArray3', u'_isArray2', u'expr', u'_i3', u'_ref3', u'_i2', u'elem', u'state', u'path', u'nodes', u'root', u'expressions', u'_iterator3', u'_iterator2'])
            var.put(u'nodes', Js([]))
            var.put(u'expressions', var.get(u'path').callprop(u'get', Js(u'expressions')))
            #for JS loop
            var.put(u'_iterator2', var.get(u'path').get(u'node').get(u'quasis'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref3', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref3', var.get(u'_i2').get(u'value'))
                var.put(u'elem', var.get(u'_ref3'))
                var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'stringLiteral', var.get(u'elem').get(u'value').get(u'cooked')))
                var.put(u'expr', var.get(u'expressions').callprop(u'shift'))
                if var.get(u'expr'):
                    if ((var.get(u'state').get(u'opts').get(u'spec') and var.get(u'expr').callprop(u'isBaseType', Js(u'string')).neg()) and var.get(u'expr').callprop(u'isBaseType', Js(u'number')).neg()):
                        var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'identifier', Js(u'String')), Js([var.get(u'expr').get(u'node')])))
                    else:
                        var.get(u'nodes').callprop(u'push', var.get(u'expr').get(u'node'))
            
            @Js
            def PyJs_anonymous_1161_(n, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'n':n}, var)
                var.registers([u'n'])
                PyJs_Object_1162_ = Js({u'value':Js(u'')})
                return var.get(u't').callprop(u'isLiteral', var.get(u'n'), PyJs_Object_1162_).neg()
            PyJs_anonymous_1161_._set_name(u'anonymous')
            var.put(u'nodes', var.get(u'nodes').callprop(u'filter', PyJs_anonymous_1161_))
            if (var.get(u'isString')(var.get(u'nodes').get(u'0')).neg() and var.get(u'isString')(var.get(u'nodes').get(u'1')).neg()):
                var.get(u'nodes').callprop(u'unshift', var.get(u't').callprop(u'stringLiteral', Js(u'')))
            if (var.get(u'nodes').get(u'length')>Js(1.0)):
                var.put(u'root', var.get(u'buildBinaryExpression')(var.get(u'nodes').callprop(u'shift'), var.get(u'nodes').callprop(u'shift')))
                #for JS loop
                var.put(u'_iterator3', var.get(u'nodes'))
                var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
                var.put(u'_i3', Js(0.0))
                var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
                while 1:
                    pass
                    if var.get(u'_isArray3'):
                        if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                            break
                        var.put(u'_ref4', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                        if var.get(u'_i3').get(u'done'):
                            break
                        var.put(u'_ref4', var.get(u'_i3').get(u'value'))
                    var.put(u'node', var.get(u'_ref4'))
                    var.put(u'root', var.get(u'buildBinaryExpression')(var.get(u'root'), var.get(u'node')))
                
                var.get(u'path').callprop(u'replaceWith', var.get(u'root'))
            else:
                var.get(u'path').callprop(u'replaceWith', var.get(u'nodes').get(u'0'))
        PyJs_TemplateLiteral_1160_._set_name(u'TemplateLiteral')
        PyJs_Object_1158_ = Js({u'TaggedTemplateExpression':PyJs_TaggedTemplateExpression_1159_,u'TemplateLiteral':PyJs_TemplateLiteral_1160_})
        PyJs_Object_1157_ = Js({u'visitor':PyJs_Object_1158_})
        return PyJs_Object_1157_
    PyJs_anonymous_1156_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1156_)
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1155_._set_name(u'anonymous')
PyJs_Object_1164_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0)})
@Js
def PyJs_anonymous_1165_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_symbol2', u'require', u'module', u'_symbol', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1172_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1172_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_symbol', var.get(u'require')(Js(u'babel-runtime/core-js/symbol')))
    var.put(u'_symbol2', var.get(u'_interopRequireDefault')(var.get(u'_symbol')))
    @Js
    def PyJs_anonymous_1166_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
        var.registers([u'IGNORE', u'_ref', u't'])
        var.put(u't', var.get(u'_ref').get(u'types'))
        var.put(u'IGNORE', PyJsComma(Js(0.0),var.get(u'_symbol2').get(u'default'))())
        @Js
        def PyJs_Scope_1169_(_ref2, this, arguments, var=var):
            var = Scope({u'this':this, u'Scope':PyJs_Scope_1169_, u'_ref2':_ref2, u'arguments':arguments}, var)
            var.registers([u'scope', u'_ref2'])
            var.put(u'scope', var.get(u'_ref2').get(u'scope'))
            if var.get(u'scope').callprop(u'getBinding', Js(u'Symbol')).neg():
                return var.get('undefined')
            var.get(u'scope').callprop(u'rename', Js(u'Symbol'))
        PyJs_Scope_1169_._set_name(u'Scope')
        @Js
        def PyJs_UnaryExpression_1170_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'UnaryExpression':PyJs_UnaryExpression_1170_, u'arguments':arguments}, var)
            var.registers([u'node', u'parent', u'opposite', u'unary', u'call', u'undefLiteral', u'path'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.put(u'parent', var.get(u'path').get(u'parent'))
            if var.get(u'node').get(var.get(u'IGNORE')):
                return var.get('undefined')
            @Js
            def PyJs_anonymous_1171_(path, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                var.registers([u'path'])
                return (var.get(u'path').get(u'node') and var.get(u'path').get(u'node').get(u'_generated').neg().neg())
            PyJs_anonymous_1171_._set_name(u'anonymous')
            if var.get(u'path').callprop(u'find', PyJs_anonymous_1171_):
                return var.get('undefined')
            if (var.get(u'path').get(u'parentPath').callprop(u'isBinaryExpression') and (var.get(u't').get(u'EQUALITY_BINARY_OPERATORS').callprop(u'indexOf', var.get(u'parent').get(u'operator'))>=Js(0.0))):
                var.put(u'opposite', var.get(u'path').callprop(u'getOpposite'))
                if ((var.get(u'opposite').callprop(u'isLiteral') and PyJsStrictNeq(var.get(u'opposite').get(u'node').get(u'value'),Js(u'symbol'))) and PyJsStrictNeq(var.get(u'opposite').get(u'node').get(u'value'),Js(u'object'))):
                    return var.get('undefined')
            if PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'typeof')):
                var.put(u'call', var.get(u't').callprop(u'callExpression', var.get(u"this").callprop(u'addHelper', Js(u'typeof')), Js([var.get(u'node').get(u'argument')])))
                if var.get(u'path').callprop(u'get', Js(u'argument')).callprop(u'isIdentifier'):
                    var.put(u'undefLiteral', var.get(u't').callprop(u'stringLiteral', Js(u'undefined')))
                    var.put(u'unary', var.get(u't').callprop(u'unaryExpression', Js(u'typeof'), var.get(u'node').get(u'argument')))
                    var.get(u'unary').put(var.get(u'IGNORE'), var.get(u'true'))
                    var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'conditionalExpression', var.get(u't').callprop(u'binaryExpression', Js(u'==='), var.get(u'unary'), var.get(u'undefLiteral')), var.get(u'undefLiteral'), var.get(u'call')))
                else:
                    var.get(u'path').callprop(u'replaceWith', var.get(u'call'))
        PyJs_UnaryExpression_1170_._set_name(u'UnaryExpression')
        PyJs_Object_1168_ = Js({u'Scope':PyJs_Scope_1169_,u'UnaryExpression':PyJs_UnaryExpression_1170_})
        PyJs_Object_1167_ = Js({u'visitor':PyJs_Object_1168_})
        return PyJs_Object_1167_
    PyJs_anonymous_1166_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1166_)
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1165_._set_name(u'anonymous')
PyJs_Object_1173_ = Js({u'babel-runtime/core-js/symbol':Js(105.0)})
@Js
def PyJs_anonymous_1174_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_regexpuCore', u'regex', u'exports', u'_interopRequireWildcard', u'require', u'_babelHelperRegex', u'module', u'_interopRequireDefault', u'_regexpuCore2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1180_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1180_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1179_ = Js({})
            var.put(u'newObj', PyJs_Object_1179_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_1175_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_RegExpLiteral_1178_(_ref, this, arguments, var=var):
            var = Scope({u'this':this, u'RegExpLiteral':PyJs_RegExpLiteral_1178_, u'_ref':_ref, u'arguments':arguments}, var)
            var.registers([u'node', u'_ref'])
            var.put(u'node', var.get(u'_ref').get(u'node'))
            if var.get(u'regex').callprop(u'is', var.get(u'node'), Js(u'u')).neg():
                return var.get('undefined')
            var.get(u'node').put(u'pattern', PyJsComma(Js(0.0),var.get(u'_regexpuCore2').get(u'default'))(var.get(u'node').get(u'pattern'), var.get(u'node').get(u'flags')))
            var.get(u'regex').callprop(u'pullFlag', var.get(u'node'), Js(u'u'))
        PyJs_RegExpLiteral_1178_._set_name(u'RegExpLiteral')
        PyJs_Object_1177_ = Js({u'RegExpLiteral':PyJs_RegExpLiteral_1178_})
        PyJs_Object_1176_ = Js({u'visitor':PyJs_Object_1177_})
        return PyJs_Object_1176_
    PyJs_anonymous_1175_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1175_)
    var.put(u'_regexpuCore', var.get(u'require')(Js(u'regexpu-core')))
    var.put(u'_regexpuCore2', var.get(u'_interopRequireDefault')(var.get(u'_regexpuCore')))
    var.put(u'_babelHelperRegex', var.get(u'require')(Js(u'babel-helper-regex')))
    var.put(u'regex', var.get(u'_interopRequireWildcard')(var.get(u'_babelHelperRegex')))
    pass
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1174_._set_name(u'anonymous')
PyJs_Object_1181_ = Js({u'babel-helper-regex':Js(53.0),u'regexpu-core':Js(504.0)})
@Js
def PyJs_anonymous_1182_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'module', u'meta', u'_assert', u'_interopRequireDefault', u'loc', u'_typeof2', u'_typeof3', u'_stringify2', u'getDeclError', u'leap', u'Emitter', u'isValidCompletion', u'exports', u'_babelTypes', u'_interopRequireWildcard', u'_assert2', u'catchParamVisitor', u'_util', u'util', u'_meta', u'require', u'hasOwn', u'_stringify', u't', u'_leap', u'Ep'])
    @Js
    def PyJsHoisted_loc_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'numericLiteral', (-Js(1.0)))
    PyJsHoisted_loc_.func_name = u'loc'
    var.put(u'loc', PyJsHoisted_loc_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1183_ = Js({})
            var.put(u'newObj', PyJs_Object_1183_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_isValidCompletion_(record, this, arguments, var=var):
        var = Scope({u'this':this, u'record':record, u'arguments':arguments}, var)
        var.registers([u'record', u'type'])
        var.put(u'type', var.get(u'record').get(u'type'))
        if PyJsStrictEq(var.get(u'type'),Js(u'normal')):
            return var.get(u'hasOwn').callprop(u'call', var.get(u'record'), Js(u'target')).neg()
        if (PyJsStrictEq(var.get(u'type'),Js(u'break')) or PyJsStrictEq(var.get(u'type'),Js(u'continue'))):
            return (var.get(u'hasOwn').callprop(u'call', var.get(u'record'), Js(u'value')).neg() and var.get(u't').callprop(u'isLiteral', var.get(u'record').get(u'target')))
        if (PyJsStrictEq(var.get(u'type'),Js(u'return')) or PyJsStrictEq(var.get(u'type'),Js(u'throw'))):
            return (var.get(u'hasOwn').callprop(u'call', var.get(u'record'), Js(u'value')) and var.get(u'hasOwn').callprop(u'call', var.get(u'record'), Js(u'target')).neg())
        return Js(False)
    PyJsHoisted_isValidCompletion_.func_name = u'isValidCompletion'
    var.put(u'isValidCompletion', PyJsHoisted_isValidCompletion_)
    @Js
    def PyJsHoisted_getDeclError_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        return var.get(u'Error').create(((Js(u'all declarations should have been transformed into ')+Js(u'assignments before the Exploder began its work: '))+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'node'))))
    PyJsHoisted_getDeclError_.func_name = u'getDeclError'
    var.put(u'getDeclError', PyJsHoisted_getDeclError_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1184_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1184_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_Emitter_(contextId, this, arguments, var=var):
        var = Scope({u'this':this, u'contextId':contextId, u'arguments':arguments}, var)
        var.registers([u'contextId'])
        var.get(u'_assert2').get(u'default').callprop(u'ok', var.get(u"this").instanceof(var.get(u'Emitter')))
        var.get(u't').callprop(u'assertIdentifier', var.get(u'contextId'))
        var.get(u"this").put(u'nextTempId', Js(0.0))
        var.get(u"this").put(u'contextId', var.get(u'contextId'))
        var.get(u"this").put(u'listing', Js([]))
        var.get(u"this").put(u'marked', Js([var.get(u'true')]))
        var.get(u"this").put(u'finalLoc', var.get(u'loc')())
        var.get(u"this").put(u'tryEntries', Js([]))
        var.get(u"this").put(u'leapManager', var.get(u'leap').get(u'LeapManager').create(var.get(u"this")))
    PyJsHoisted_Emitter_.func_name = u'Emitter'
    var.put(u'Emitter', PyJsHoisted_Emitter_)
    Js(u'use strict')
    var.put(u'_typeof2', var.get(u'require')(Js(u'babel-runtime/helpers/typeof')))
    var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
    var.put(u'_stringify', var.get(u'require')(Js(u'babel-runtime/core-js/json/stringify')))
    var.put(u'_stringify2', var.get(u'_interopRequireDefault')(var.get(u'_stringify')))
    var.put(u'_assert', var.get(u'require')(Js(u'assert')))
    var.put(u'_assert2', var.get(u'_interopRequireDefault')(var.get(u'_assert')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_leap', var.get(u'require')(Js(u'./leap')))
    var.put(u'leap', var.get(u'_interopRequireWildcard')(var.get(u'_leap')))
    var.put(u'_meta', var.get(u'require')(Js(u'./meta')))
    var.put(u'meta', var.get(u'_interopRequireWildcard')(var.get(u'_meta')))
    var.put(u'_util', var.get(u'require')(Js(u'./util')))
    var.put(u'util', var.get(u'_interopRequireWildcard')(var.get(u'_util')))
    pass
    pass
    var.put(u'hasOwn', var.get(u'Object').get(u'prototype').get(u'hasOwnProperty'))
    pass
    var.put(u'Ep', var.get(u'Emitter').get(u'prototype'))
    var.get(u'exports').put(u'Emitter', var.get(u'Emitter'))
    pass
    @Js
    def PyJs_anonymous_1185_(loc, this, arguments, var=var):
        var = Scope({u'this':this, u'loc':loc, u'arguments':arguments}, var)
        var.registers([u'index', u'loc'])
        var.get(u't').callprop(u'assertLiteral', var.get(u'loc'))
        var.put(u'index', var.get(u"this").get(u'listing').get(u'length'))
        if PyJsStrictEq(var.get(u'loc').get(u'value'),(-Js(1.0))):
            var.get(u'loc').put(u'value', var.get(u'index'))
        else:
            var.get(u'_assert2').get(u'default').callprop(u'strictEqual', var.get(u'loc').get(u'value'), var.get(u'index'))
        var.get(u"this").get(u'marked').put(var.get(u'index'), var.get(u'true'))
        return var.get(u'loc')
    PyJs_anonymous_1185_._set_name(u'anonymous')
    var.get(u'Ep').put(u'mark', PyJs_anonymous_1185_)
    @Js
    def PyJs_anonymous_1186_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u't').callprop(u'isExpression', var.get(u'node')):
            var.put(u'node', var.get(u't').callprop(u'expressionStatement', var.get(u'node')))
        var.get(u't').callprop(u'assertStatement', var.get(u'node'))
        var.get(u"this").get(u'listing').callprop(u'push', var.get(u'node'))
    PyJs_anonymous_1186_._set_name(u'anonymous')
    var.get(u'Ep').put(u'emit', PyJs_anonymous_1186_)
    @Js
    def PyJs_anonymous_1187_(lhs, rhs, this, arguments, var=var):
        var = Scope({u'this':this, u'rhs':rhs, u'lhs':lhs, u'arguments':arguments}, var)
        var.registers([u'rhs', u'lhs'])
        var.get(u"this").callprop(u'emit', var.get(u"this").callprop(u'assign', var.get(u'lhs'), var.get(u'rhs')))
        return var.get(u'lhs')
    PyJs_anonymous_1187_._set_name(u'anonymous')
    var.get(u'Ep').put(u'emitAssign', PyJs_anonymous_1187_)
    @Js
    def PyJs_anonymous_1188_(lhs, rhs, this, arguments, var=var):
        var = Scope({u'this':this, u'rhs':rhs, u'lhs':lhs, u'arguments':arguments}, var)
        var.registers([u'rhs', u'lhs'])
        return var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'lhs'), var.get(u'rhs')))
    PyJs_anonymous_1188_._set_name(u'anonymous')
    var.get(u'Ep').put(u'assign', PyJs_anonymous_1188_)
    @Js
    def PyJs_anonymous_1189_(name, computed, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'name':name, u'computed':computed}, var)
        var.registers([u'name', u'computed'])
        return var.get(u't').callprop(u'memberExpression', var.get(u"this").get(u'contextId'), (var.get(u't').callprop(u'stringLiteral', var.get(u'name')) if var.get(u'computed') else var.get(u't').callprop(u'identifier', var.get(u'name'))), var.get(u'computed').neg().neg())
    PyJs_anonymous_1189_._set_name(u'anonymous')
    var.get(u'Ep').put(u'contextProperty', PyJs_anonymous_1189_)
    @Js
    def PyJs_anonymous_1190_(rval, this, arguments, var=var):
        var = Scope({u'this':this, u'rval':rval, u'arguments':arguments}, var)
        var.registers([u'rval'])
        if var.get(u'rval'):
            var.get(u"this").callprop(u'setReturnValue', var.get(u'rval'))
        var.get(u"this").callprop(u'jump', var.get(u"this").get(u'finalLoc'))
    PyJs_anonymous_1190_._set_name(u'anonymous')
    var.get(u'Ep').put(u'stop', PyJs_anonymous_1190_)
    @Js
    def PyJs_anonymous_1191_(valuePath, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'valuePath':valuePath}, var)
        var.registers([u'valuePath'])
        var.get(u't').callprop(u'assertExpression', var.get(u'valuePath').get(u'value'))
        var.get(u"this").callprop(u'emitAssign', var.get(u"this").callprop(u'contextProperty', Js(u'rval')), var.get(u"this").callprop(u'explodeExpression', var.get(u'valuePath')))
    PyJs_anonymous_1191_._set_name(u'anonymous')
    var.get(u'Ep').put(u'setReturnValue', PyJs_anonymous_1191_)
    @Js
    def PyJs_anonymous_1192_(tryLoc, assignee, this, arguments, var=var):
        var = Scope({u'this':this, u'assignee':assignee, u'tryLoc':tryLoc, u'arguments':arguments}, var)
        var.registers([u'assignee', u'catchCall', u'tryLoc'])
        var.get(u't').callprop(u'assertLiteral', var.get(u'tryLoc'))
        var.put(u'catchCall', var.get(u't').callprop(u'callExpression', var.get(u"this").callprop(u'contextProperty', Js(u'catch'), var.get(u'true')), Js([var.get(u'tryLoc')])))
        if var.get(u'assignee'):
            var.get(u"this").callprop(u'emitAssign', var.get(u'assignee'), var.get(u'catchCall'))
        else:
            var.get(u"this").callprop(u'emit', var.get(u'catchCall'))
    PyJs_anonymous_1192_._set_name(u'anonymous')
    var.get(u'Ep').put(u'clearPendingException', PyJs_anonymous_1192_)
    @Js
    def PyJs_anonymous_1193_(toLoc, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'toLoc':toLoc}, var)
        var.registers([u'toLoc'])
        var.get(u"this").callprop(u'emitAssign', var.get(u"this").callprop(u'contextProperty', Js(u'next')), var.get(u'toLoc'))
        var.get(u"this").callprop(u'emit', var.get(u't').callprop(u'breakStatement'))
    PyJs_anonymous_1193_._set_name(u'anonymous')
    var.get(u'Ep').put(u'jump', PyJs_anonymous_1193_)
    @Js
    def PyJs_anonymous_1194_(test, toLoc, this, arguments, var=var):
        var = Scope({u'test':test, u'this':this, u'arguments':arguments, u'toLoc':toLoc}, var)
        var.registers([u'test', u'toLoc'])
        var.get(u't').callprop(u'assertExpression', var.get(u'test'))
        var.get(u't').callprop(u'assertLiteral', var.get(u'toLoc'))
        var.get(u"this").callprop(u'emit', var.get(u't').callprop(u'ifStatement', var.get(u'test'), var.get(u't').callprop(u'blockStatement', Js([var.get(u"this").callprop(u'assign', var.get(u"this").callprop(u'contextProperty', Js(u'next')), var.get(u'toLoc')), var.get(u't').callprop(u'breakStatement')]))))
    PyJs_anonymous_1194_._set_name(u'anonymous')
    var.get(u'Ep').put(u'jumpIf', PyJs_anonymous_1194_)
    @Js
    def PyJs_anonymous_1195_(test, toLoc, this, arguments, var=var):
        var = Scope({u'test':test, u'this':this, u'arguments':arguments, u'toLoc':toLoc}, var)
        var.registers([u'test', u'negatedTest', u'toLoc'])
        var.get(u't').callprop(u'assertExpression', var.get(u'test'))
        var.get(u't').callprop(u'assertLiteral', var.get(u'toLoc'))
        var.put(u'negatedTest', PyJsComma(Js(0.0), Js(None)))
        if (var.get(u't').callprop(u'isUnaryExpression', var.get(u'test')) and PyJsStrictEq(var.get(u'test').get(u'operator'),Js(u'!'))):
            var.put(u'negatedTest', var.get(u'test').get(u'argument'))
        else:
            var.put(u'negatedTest', var.get(u't').callprop(u'unaryExpression', Js(u'!'), var.get(u'test')))
        var.get(u"this").callprop(u'emit', var.get(u't').callprop(u'ifStatement', var.get(u'negatedTest'), var.get(u't').callprop(u'blockStatement', Js([var.get(u"this").callprop(u'assign', var.get(u"this").callprop(u'contextProperty', Js(u'next')), var.get(u'toLoc')), var.get(u't').callprop(u'breakStatement')]))))
    PyJs_anonymous_1195_._set_name(u'anonymous')
    var.get(u'Ep').put(u'jumpIfNot', PyJs_anonymous_1195_)
    @Js
    def PyJs_anonymous_1196_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this").callprop(u'contextProperty', (Js(u't')+(var.get(u"this").put(u'nextTempId',Js(var.get(u"this").get(u'nextTempId').to_number())+Js(1))-Js(1))))
    PyJs_anonymous_1196_._set_name(u'anonymous')
    var.get(u'Ep').put(u'makeTempVar', PyJs_anonymous_1196_)
    @Js
    def PyJs_anonymous_1197_(id, this, arguments, var=var):
        var = Scope({u'this':this, u'id':id, u'arguments':arguments}, var)
        var.registers([u'id'])
        return var.get(u't').callprop(u'functionExpression', (var.get(u'id') or var.get(u"null")), Js([var.get(u"this").get(u'contextId')]), var.get(u't').callprop(u'blockStatement', Js([var.get(u"this").callprop(u'getDispatchLoop')])), Js(False), Js(False))
    PyJs_anonymous_1197_._set_name(u'anonymous')
    var.get(u'Ep').put(u'getContextFunction', PyJs_anonymous_1197_)
    @Js
    def PyJs_anonymous_1198_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'current', u'self', u'alreadyEnded', u'cases'])
        var.put(u'self', var.get(u"this"))
        var.put(u'cases', Js([]))
        var.put(u'current', PyJsComma(Js(0.0), Js(None)))
        var.put(u'alreadyEnded', Js(False))
        @Js
        def PyJs_anonymous_1199_(stmt, i, this, arguments, var=var):
            var = Scope({u'i':i, u'this':this, u'arguments':arguments, u'stmt':stmt}, var)
            var.registers([u'i', u'stmt'])
            if var.get(u'self').get(u'marked').callprop(u'hasOwnProperty', var.get(u'i')):
                var.get(u'cases').callprop(u'push', var.get(u't').callprop(u'switchCase', var.get(u't').callprop(u'numericLiteral', var.get(u'i')), var.put(u'current', Js([]))))
                var.put(u'alreadyEnded', Js(False))
            if var.get(u'alreadyEnded').neg():
                var.get(u'current').callprop(u'push', var.get(u'stmt'))
                if var.get(u't').callprop(u'isCompletionStatement', var.get(u'stmt')):
                    var.put(u'alreadyEnded', var.get(u'true'))
        PyJs_anonymous_1199_._set_name(u'anonymous')
        var.get(u'self').get(u'listing').callprop(u'forEach', PyJs_anonymous_1199_)
        var.get(u"this").get(u'finalLoc').put(u'value', var.get(u"this").get(u'listing').get(u'length'))
        var.get(u'cases').callprop(u'push', var.get(u't').callprop(u'switchCase', var.get(u"this").get(u'finalLoc'), Js([])), var.get(u't').callprop(u'switchCase', var.get(u't').callprop(u'stringLiteral', Js(u'end')), Js([var.get(u't').callprop(u'returnStatement', var.get(u't').callprop(u'callExpression', var.get(u"this").callprop(u'contextProperty', Js(u'stop')), Js([])))])))
        return var.get(u't').callprop(u'whileStatement', var.get(u't').callprop(u'numericLiteral', Js(1.0)), var.get(u't').callprop(u'switchStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u"this").callprop(u'contextProperty', Js(u'prev')), var.get(u"this").callprop(u'contextProperty', Js(u'next'))), var.get(u'cases')))
    PyJs_anonymous_1198_._set_name(u'anonymous')
    var.get(u'Ep').put(u'getDispatchLoop', PyJs_anonymous_1198_)
    @Js
    def PyJs_anonymous_1200_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'lastLocValue'])
        if PyJsStrictEq(var.get(u"this").get(u'tryEntries').get(u'length'),Js(0.0)):
            return var.get(u"null")
        var.put(u'lastLocValue', Js(0.0))
        @Js
        def PyJs_anonymous_1201_(tryEntry, this, arguments, var=var):
            var = Scope({u'this':this, u'tryEntry':tryEntry, u'arguments':arguments}, var)
            var.registers([u'locs', u'tryEntry', u'thisLocValue', u'ce', u'fe'])
            var.put(u'thisLocValue', var.get(u'tryEntry').get(u'firstLoc').get(u'value'))
            var.get(u'_assert2').get(u'default').callprop(u'ok', (var.get(u'thisLocValue')>=var.get(u'lastLocValue')), Js(u'try entries out of order'))
            var.put(u'lastLocValue', var.get(u'thisLocValue'))
            var.put(u'ce', var.get(u'tryEntry').get(u'catchEntry'))
            var.put(u'fe', var.get(u'tryEntry').get(u'finallyEntry'))
            var.put(u'locs', Js([var.get(u'tryEntry').get(u'firstLoc'), (var.get(u'ce').get(u'firstLoc') if var.get(u'ce') else var.get(u"null"))]))
            if var.get(u'fe'):
                var.get(u'locs').put(u'2', var.get(u'fe').get(u'firstLoc'))
                var.get(u'locs').put(u'3', var.get(u'fe').get(u'afterLoc'))
            return var.get(u't').callprop(u'arrayExpression', var.get(u'locs'))
        PyJs_anonymous_1201_._set_name(u'anonymous')
        return var.get(u't').callprop(u'arrayExpression', var.get(u"this").get(u'tryEntries').callprop(u'map', PyJs_anonymous_1201_))
    PyJs_anonymous_1200_._set_name(u'anonymous')
    var.get(u'Ep').put(u'getTryLocsList', PyJs_anonymous_1200_)
    @Js
    def PyJs_anonymous_1202_(path, ignoreResult, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'ignoreResult':ignoreResult, u'arguments':arguments}, var)
        var.registers([u'node', u'path', u'self', u'ignoreResult'])
        var.put(u'node', var.get(u'path').get(u'node'))
        var.put(u'self', var.get(u"this"))
        var.get(u't').callprop(u'assertNode', var.get(u'node'))
        if var.get(u't').callprop(u'isDeclaration', var.get(u'node')):
            PyJsTempException = JsToPyException(var.get(u'getDeclError')(var.get(u'node')))
            raise PyJsTempException
        if var.get(u't').callprop(u'isStatement', var.get(u'node')):
            return var.get(u'self').callprop(u'explodeStatement', var.get(u'path'))
        if var.get(u't').callprop(u'isExpression', var.get(u'node')):
            return var.get(u'self').callprop(u'explodeExpression', var.get(u'path'), var.get(u'ignoreResult'))
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'node').get(u'type'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'Program')):
                SWITCHED = True
                return var.get(u'path').callprop(u'get', Js(u'body')).callprop(u'map', var.get(u'self').get(u'explodeStatement'), var.get(u'self'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'VariableDeclarator')):
                SWITCHED = True
                PyJsTempException = JsToPyException(var.get(u'getDeclError')(var.get(u'node')))
                raise PyJsTempException
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'Property')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'SwitchCase')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'CatchClause')):
                SWITCHED = True
                PyJsTempException = JsToPyException(var.get(u'Error').create((var.get(u'node').get(u'type')+Js(u' nodes should be handled by their parents'))))
                raise PyJsTempException
            if True:
                SWITCHED = True
                PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u'unknown Node of type ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'node').get(u'type')))))
                raise PyJsTempException
            SWITCHED = True
            break
    PyJs_anonymous_1202_._set_name(u'anonymous')
    var.get(u'Ep').put(u'explode', PyJs_anonymous_1202_)
    pass
    @Js
    def PyJs_anonymous_1203_(path, labelId, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'labelId':labelId}, var)
        var.registers([u'head', u'labelId', u'_ret', u'self', u'after', u'stmt', u'path', u'before'])
        var.put(u'stmt', var.get(u'path').get(u'node'))
        var.put(u'self', var.get(u"this"))
        var.put(u'before', PyJsComma(Js(0.0), Js(None)))
        var.put(u'after', PyJsComma(Js(0.0), Js(None)))
        var.put(u'head', PyJsComma(Js(0.0), Js(None)))
        var.get(u't').callprop(u'assertStatement', var.get(u'stmt'))
        if var.get(u'labelId'):
            var.get(u't').callprop(u'assertIdentifier', var.get(u'labelId'))
        else:
            var.put(u'labelId', var.get(u"null"))
        if var.get(u't').callprop(u'isBlockStatement', var.get(u'stmt')):
            @Js
            def PyJs_anonymous_1204_(path, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                var.registers([u'path'])
                var.get(u'self').callprop(u'explodeStatement', var.get(u'path'))
            PyJs_anonymous_1204_._set_name(u'anonymous')
            var.get(u'path').callprop(u'get', Js(u'body')).callprop(u'forEach', PyJs_anonymous_1204_)
            return var.get('undefined')
        if var.get(u'meta').callprop(u'containsLeap', var.get(u'stmt')).neg():
            var.get(u'self').callprop(u'emit', var.get(u'stmt'))
            return var.get('undefined')
        @Js
        def PyJs_anonymous_1205_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'catchLoc', u'catchEntry', u'c', u'tryEntry', u'keyInfoTmpVar', u'discriminant', u'i', u'keyIterNextFn', u'finallyLoc', u'update', u'defaultLoc', u'caseLocs', u'disc', u'test', u'cases', u'finallyEntry', u'elseLoc', u'handler', u'condition', u'first'])
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'stmt').get(u'type'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ExpressionStatement')):
                    SWITCHED = True
                    var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'expression')), var.get(u'true'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'LabeledStatement')):
                    SWITCHED = True
                    var.put(u'after', var.get(u'loc')())
                    @Js
                    def PyJs_anonymous_1206_(this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments}, var)
                        var.registers([])
                        var.get(u'self').callprop(u'explodeStatement', var.get(u'path').callprop(u'get', Js(u'body')), var.get(u'stmt').get(u'label'))
                    PyJs_anonymous_1206_._set_name(u'anonymous')
                    var.get(u'self').get(u'leapManager').callprop(u'withEntry', var.get(u'leap').get(u'LabeledEntry').create(var.get(u'after'), var.get(u'stmt').get(u'label')), PyJs_anonymous_1206_)
                    var.get(u'self').callprop(u'mark', var.get(u'after'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'WhileStatement')):
                    SWITCHED = True
                    var.put(u'before', var.get(u'loc')())
                    var.put(u'after', var.get(u'loc')())
                    var.get(u'self').callprop(u'mark', var.get(u'before'))
                    var.get(u'self').callprop(u'jumpIfNot', var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'test'))), var.get(u'after'))
                    @Js
                    def PyJs_anonymous_1207_(this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments}, var)
                        var.registers([])
                        var.get(u'self').callprop(u'explodeStatement', var.get(u'path').callprop(u'get', Js(u'body')))
                    PyJs_anonymous_1207_._set_name(u'anonymous')
                    var.get(u'self').get(u'leapManager').callprop(u'withEntry', var.get(u'leap').get(u'LoopEntry').create(var.get(u'after'), var.get(u'before'), var.get(u'labelId')), PyJs_anonymous_1207_)
                    var.get(u'self').callprop(u'jump', var.get(u'before'))
                    var.get(u'self').callprop(u'mark', var.get(u'after'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'DoWhileStatement')):
                    SWITCHED = True
                    var.put(u'first', var.get(u'loc')())
                    var.put(u'test', var.get(u'loc')())
                    var.put(u'after', var.get(u'loc')())
                    var.get(u'self').callprop(u'mark', var.get(u'first'))
                    @Js
                    def PyJs_anonymous_1208_(this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments}, var)
                        var.registers([])
                        var.get(u'self').callprop(u'explode', var.get(u'path').callprop(u'get', Js(u'body')))
                    PyJs_anonymous_1208_._set_name(u'anonymous')
                    var.get(u'self').get(u'leapManager').callprop(u'withEntry', var.get(u'leap').get(u'LoopEntry').create(var.get(u'after'), var.get(u'test'), var.get(u'labelId')), PyJs_anonymous_1208_)
                    var.get(u'self').callprop(u'mark', var.get(u'test'))
                    var.get(u'self').callprop(u'jumpIf', var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'test'))), var.get(u'first'))
                    var.get(u'self').callprop(u'mark', var.get(u'after'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ForStatement')):
                    SWITCHED = True
                    var.put(u'head', var.get(u'loc')())
                    var.put(u'update', var.get(u'loc')())
                    var.put(u'after', var.get(u'loc')())
                    if var.get(u'stmt').get(u'init'):
                        var.get(u'self').callprop(u'explode', var.get(u'path').callprop(u'get', Js(u'init')), var.get(u'true'))
                    var.get(u'self').callprop(u'mark', var.get(u'head'))
                    if var.get(u'stmt').get(u'test'):
                        var.get(u'self').callprop(u'jumpIfNot', var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'test'))), var.get(u'after'))
                    else:
                        pass
                    @Js
                    def PyJs_anonymous_1209_(this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments}, var)
                        var.registers([])
                        var.get(u'self').callprop(u'explodeStatement', var.get(u'path').callprop(u'get', Js(u'body')))
                    PyJs_anonymous_1209_._set_name(u'anonymous')
                    var.get(u'self').get(u'leapManager').callprop(u'withEntry', var.get(u'leap').get(u'LoopEntry').create(var.get(u'after'), var.get(u'update'), var.get(u'labelId')), PyJs_anonymous_1209_)
                    var.get(u'self').callprop(u'mark', var.get(u'update'))
                    if var.get(u'stmt').get(u'update'):
                        var.get(u'self').callprop(u'explode', var.get(u'path').callprop(u'get', Js(u'update')), var.get(u'true'))
                    var.get(u'self').callprop(u'jump', var.get(u'head'))
                    var.get(u'self').callprop(u'mark', var.get(u'after'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'TypeCastExpression')):
                    SWITCHED = True
                    PyJs_Object_1210_ = Js({u'v':var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'expression')))})
                    return PyJs_Object_1210_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ForInStatement')):
                    SWITCHED = True
                    var.put(u'head', var.get(u'loc')())
                    var.put(u'after', var.get(u'loc')())
                    var.put(u'keyIterNextFn', var.get(u'self').callprop(u'makeTempVar'))
                    var.get(u'self').callprop(u'emitAssign', var.get(u'keyIterNextFn'), var.get(u't').callprop(u'callExpression', var.get(u'util').callprop(u'runtimeProperty', Js(u'keys')), Js([var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'right')))])))
                    var.get(u'self').callprop(u'mark', var.get(u'head'))
                    var.put(u'keyInfoTmpVar', var.get(u'self').callprop(u'makeTempVar'))
                    var.get(u'self').callprop(u'jumpIf', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'keyInfoTmpVar'), var.get(u't').callprop(u'callExpression', var.get(u'keyIterNextFn'), Js([]))), var.get(u't').callprop(u'identifier', Js(u'done')), Js(False)), var.get(u'after'))
                    var.get(u'self').callprop(u'emitAssign', var.get(u'stmt').get(u'left'), var.get(u't').callprop(u'memberExpression', var.get(u'keyInfoTmpVar'), var.get(u't').callprop(u'identifier', Js(u'value')), Js(False)))
                    @Js
                    def PyJs_anonymous_1211_(this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments}, var)
                        var.registers([])
                        var.get(u'self').callprop(u'explodeStatement', var.get(u'path').callprop(u'get', Js(u'body')))
                    PyJs_anonymous_1211_._set_name(u'anonymous')
                    var.get(u'self').get(u'leapManager').callprop(u'withEntry', var.get(u'leap').get(u'LoopEntry').create(var.get(u'after'), var.get(u'head'), var.get(u'labelId')), PyJs_anonymous_1211_)
                    var.get(u'self').callprop(u'jump', var.get(u'head'))
                    var.get(u'self').callprop(u'mark', var.get(u'after'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'BreakStatement')):
                    SWITCHED = True
                    PyJs_Object_1212_ = Js({u'type':Js(u'break'),u'target':var.get(u'self').get(u'leapManager').callprop(u'getBreakLoc', var.get(u'stmt').get(u'label'))})
                    var.get(u'self').callprop(u'emitAbruptCompletion', PyJs_Object_1212_)
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ContinueStatement')):
                    SWITCHED = True
                    PyJs_Object_1213_ = Js({u'type':Js(u'continue'),u'target':var.get(u'self').get(u'leapManager').callprop(u'getContinueLoc', var.get(u'stmt').get(u'label'))})
                    var.get(u'self').callprop(u'emitAbruptCompletion', PyJs_Object_1213_)
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'SwitchStatement')):
                    SWITCHED = True
                    var.put(u'disc', var.get(u'self').callprop(u'emitAssign', var.get(u'self').callprop(u'makeTempVar'), var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'discriminant')))))
                    var.put(u'after', var.get(u'loc')())
                    var.put(u'defaultLoc', var.get(u'loc')())
                    var.put(u'condition', var.get(u'defaultLoc'))
                    var.put(u'caseLocs', Js([]))
                    var.put(u'cases', (var.get(u'stmt').get(u'cases') or Js([])))
                    #for JS loop
                    var.put(u'i', (var.get(u'cases').get(u'length')-Js(1.0)))
                    while (var.get(u'i')>=Js(0.0)):
                        try:
                            var.put(u'c', var.get(u'cases').get(var.get(u'i')))
                            var.get(u't').callprop(u'assertSwitchCase', var.get(u'c'))
                            if var.get(u'c').get(u'test'):
                                var.put(u'condition', var.get(u't').callprop(u'conditionalExpression', var.get(u't').callprop(u'binaryExpression', Js(u'==='), var.get(u'disc'), var.get(u'c').get(u'test')), var.get(u'caseLocs').put(var.get(u'i'), var.get(u'loc')()), var.get(u'condition')))
                            else:
                                var.get(u'caseLocs').put(var.get(u'i'), var.get(u'defaultLoc'))
                        finally:
                                var.put(u'i',Js(var.get(u'i').to_number())-Js(1))
                    var.put(u'discriminant', var.get(u'path').callprop(u'get', Js(u'discriminant')))
                    var.get(u'discriminant').callprop(u'replaceWith', var.get(u'condition'))
                    var.get(u'self').callprop(u'jump', var.get(u'self').callprop(u'explodeExpression', var.get(u'discriminant')))
                    @Js
                    def PyJs_anonymous_1214_(this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments}, var)
                        var.registers([])
                        @Js
                        def PyJs_anonymous_1215_(casePath, this, arguments, var=var):
                            var = Scope({u'this':this, u'casePath':casePath, u'arguments':arguments}, var)
                            var.registers([u'i', u'casePath'])
                            var.put(u'i', var.get(u'casePath').get(u'key'))
                            var.get(u'self').callprop(u'mark', var.get(u'caseLocs').get(var.get(u'i')))
                            @Js
                            def PyJs_anonymous_1216_(path, this, arguments, var=var):
                                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                                var.registers([u'path'])
                                var.get(u'self').callprop(u'explodeStatement', var.get(u'path'))
                            PyJs_anonymous_1216_._set_name(u'anonymous')
                            var.get(u'casePath').callprop(u'get', Js(u'consequent')).callprop(u'forEach', PyJs_anonymous_1216_)
                        PyJs_anonymous_1215_._set_name(u'anonymous')
                        var.get(u'path').callprop(u'get', Js(u'cases')).callprop(u'forEach', PyJs_anonymous_1215_)
                    PyJs_anonymous_1214_._set_name(u'anonymous')
                    var.get(u'self').get(u'leapManager').callprop(u'withEntry', var.get(u'leap').get(u'SwitchEntry').create(var.get(u'after')), PyJs_anonymous_1214_)
                    var.get(u'self').callprop(u'mark', var.get(u'after'))
                    if PyJsStrictEq(var.get(u'defaultLoc').get(u'value'),(-Js(1.0))):
                        var.get(u'self').callprop(u'mark', var.get(u'defaultLoc'))
                        var.get(u'_assert2').get(u'default').callprop(u'strictEqual', var.get(u'after').get(u'value'), var.get(u'defaultLoc').get(u'value'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'IfStatement')):
                    SWITCHED = True
                    var.put(u'elseLoc', (var.get(u'stmt').get(u'alternate') and var.get(u'loc')()))
                    var.put(u'after', var.get(u'loc')())
                    var.get(u'self').callprop(u'jumpIfNot', var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'test'))), (var.get(u'elseLoc') or var.get(u'after')))
                    var.get(u'self').callprop(u'explodeStatement', var.get(u'path').callprop(u'get', Js(u'consequent')))
                    if var.get(u'elseLoc'):
                        var.get(u'self').callprop(u'jump', var.get(u'after'))
                        var.get(u'self').callprop(u'mark', var.get(u'elseLoc'))
                        var.get(u'self').callprop(u'explodeStatement', var.get(u'path').callprop(u'get', Js(u'alternate')))
                    var.get(u'self').callprop(u'mark', var.get(u'after'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ReturnStatement')):
                    SWITCHED = True
                    PyJs_Object_1217_ = Js({u'type':Js(u'return'),u'value':var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'argument')))})
                    var.get(u'self').callprop(u'emitAbruptCompletion', PyJs_Object_1217_)
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'WithStatement')):
                    SWITCHED = True
                    PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'WithStatement not supported in generator functions.')))
                    raise PyJsTempException
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'TryStatement')):
                    SWITCHED = True
                    var.put(u'after', var.get(u'loc')())
                    var.put(u'handler', var.get(u'stmt').get(u'handler'))
                    var.put(u'catchLoc', (var.get(u'handler') and var.get(u'loc')()))
                    var.put(u'catchEntry', (var.get(u'catchLoc') and var.get(u'leap').get(u'CatchEntry').create(var.get(u'catchLoc'), var.get(u'handler').get(u'param'))))
                    var.put(u'finallyLoc', (var.get(u'stmt').get(u'finalizer') and var.get(u'loc')()))
                    var.put(u'finallyEntry', (var.get(u'finallyLoc') and var.get(u'leap').get(u'FinallyEntry').create(var.get(u'finallyLoc'), var.get(u'after'))))
                    var.put(u'tryEntry', var.get(u'leap').get(u'TryEntry').create(var.get(u'self').callprop(u'getUnmarkedCurrentLoc'), var.get(u'catchEntry'), var.get(u'finallyEntry')))
                    var.get(u'self').get(u'tryEntries').callprop(u'push', var.get(u'tryEntry'))
                    var.get(u'self').callprop(u'updateContextPrevLoc', var.get(u'tryEntry').get(u'firstLoc'))
                    @Js
                    def PyJs_anonymous_1218_(this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments}, var)
                        var.registers([])
                        var.get(u'self').callprop(u'explodeStatement', var.get(u'path').callprop(u'get', Js(u'block')))
                        if var.get(u'catchLoc'):
                            @Js
                            def PyJs_anonymous_1219_(this, arguments, var=var):
                                var = Scope({u'this':this, u'arguments':arguments}, var)
                                var.registers([u'bodyPath', u'safeParam'])
                                if var.get(u'finallyLoc'):
                                    var.get(u'self').callprop(u'jump', var.get(u'finallyLoc'))
                                else:
                                    var.get(u'self').callprop(u'jump', var.get(u'after'))
                                var.get(u'self').callprop(u'updateContextPrevLoc', var.get(u'self').callprop(u'mark', var.get(u'catchLoc')))
                                var.put(u'bodyPath', var.get(u'path').callprop(u'get', Js(u'handler.body')))
                                var.put(u'safeParam', var.get(u'self').callprop(u'makeTempVar'))
                                var.get(u'self').callprop(u'clearPendingException', var.get(u'tryEntry').get(u'firstLoc'), var.get(u'safeParam'))
                                PyJs_Object_1220_ = Js({u'safeParam':var.get(u'safeParam'),u'catchParamName':var.get(u'handler').get(u'param').get(u'name')})
                                var.get(u'bodyPath').callprop(u'traverse', var.get(u'catchParamVisitor'), PyJs_Object_1220_)
                                @Js
                                def PyJs_anonymous_1221_(this, arguments, var=var):
                                    var = Scope({u'this':this, u'arguments':arguments}, var)
                                    var.registers([])
                                    var.get(u'self').callprop(u'explodeStatement', var.get(u'bodyPath'))
                                PyJs_anonymous_1221_._set_name(u'anonymous')
                                var.get(u'self').get(u'leapManager').callprop(u'withEntry', var.get(u'catchEntry'), PyJs_anonymous_1221_)
                            PyJs_anonymous_1219_._set_name(u'anonymous')
                            PyJs_anonymous_1219_()
                        if var.get(u'finallyLoc'):
                            var.get(u'self').callprop(u'updateContextPrevLoc', var.get(u'self').callprop(u'mark', var.get(u'finallyLoc')))
                            @Js
                            def PyJs_anonymous_1222_(this, arguments, var=var):
                                var = Scope({u'this':this, u'arguments':arguments}, var)
                                var.registers([])
                                var.get(u'self').callprop(u'explodeStatement', var.get(u'path').callprop(u'get', Js(u'finalizer')))
                            PyJs_anonymous_1222_._set_name(u'anonymous')
                            var.get(u'self').get(u'leapManager').callprop(u'withEntry', var.get(u'finallyEntry'), PyJs_anonymous_1222_)
                            var.get(u'self').callprop(u'emit', var.get(u't').callprop(u'returnStatement', var.get(u't').callprop(u'callExpression', var.get(u'self').callprop(u'contextProperty', Js(u'finish')), Js([var.get(u'finallyEntry').get(u'firstLoc')]))))
                    PyJs_anonymous_1218_._set_name(u'anonymous')
                    var.get(u'self').get(u'leapManager').callprop(u'withEntry', var.get(u'tryEntry'), PyJs_anonymous_1218_)
                    var.get(u'self').callprop(u'mark', var.get(u'after'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ThrowStatement')):
                    SWITCHED = True
                    var.get(u'self').callprop(u'emit', var.get(u't').callprop(u'throwStatement', var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'argument')))))
                    break
                if True:
                    SWITCHED = True
                    PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u'unknown Statement of type ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'stmt').get(u'type')))))
                    raise PyJsTempException
                SWITCHED = True
                break
        PyJs_anonymous_1205_._set_name(u'anonymous')
        var.put(u'_ret', PyJs_anonymous_1205_())
        if PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'_ret',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'_ret'))),Js(u'object')):
            return var.get(u'_ret').get(u'v')
    PyJs_anonymous_1203_._set_name(u'anonymous')
    var.get(u'Ep').put(u'explodeStatement', PyJs_anonymous_1203_)
    @Js
    def PyJs_Identifier_1224_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'Identifier':PyJs_Identifier_1224_, u'arguments':arguments}, var)
        var.registers([u'path', u'state'])
        if (PyJsStrictEq(var.get(u'path').get(u'node').get(u'name'),var.get(u'state').get(u'catchParamName')) and var.get(u'util').callprop(u'isReference', var.get(u'path'))):
            var.get(u'path').callprop(u'replaceWith', var.get(u'state').get(u'safeParam'))
    PyJs_Identifier_1224_._set_name(u'Identifier')
    @Js
    def PyJs_Scope_1225_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'Scope':PyJs_Scope_1225_}, var)
        var.registers([u'path', u'state'])
        if var.get(u'path').get(u'scope').callprop(u'hasOwnBinding', var.get(u'state').get(u'catchParamName')):
            var.get(u'path').callprop(u'skip')
    PyJs_Scope_1225_._set_name(u'Scope')
    PyJs_Object_1223_ = Js({u'Identifier':PyJs_Identifier_1224_,u'Scope':PyJs_Scope_1225_})
    var.put(u'catchParamVisitor', PyJs_Object_1223_)
    @Js
    def PyJs_anonymous_1226_(record, this, arguments, var=var):
        var = Scope({u'this':this, u'record':record, u'arguments':arguments}, var)
        var.registers([u'record', u'abruptArgs'])
        if var.get(u'isValidCompletion')(var.get(u'record')).neg():
            var.get(u'_assert2').get(u'default').callprop(u'ok', Js(False), (Js(u'invalid completion record: ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'record'))))
        var.get(u'_assert2').get(u'default').callprop(u'notStrictEqual', var.get(u'record').get(u'type'), Js(u'normal'), Js(u'normal completions are not abrupt'))
        var.put(u'abruptArgs', Js([var.get(u't').callprop(u'stringLiteral', var.get(u'record').get(u'type'))]))
        if (PyJsStrictEq(var.get(u'record').get(u'type'),Js(u'break')) or PyJsStrictEq(var.get(u'record').get(u'type'),Js(u'continue'))):
            var.get(u't').callprop(u'assertLiteral', var.get(u'record').get(u'target'))
            var.get(u'abruptArgs').put(u'1', var.get(u'record').get(u'target'))
        else:
            if (PyJsStrictEq(var.get(u'record').get(u'type'),Js(u'return')) or PyJsStrictEq(var.get(u'record').get(u'type'),Js(u'throw'))):
                if var.get(u'record').get(u'value'):
                    var.get(u't').callprop(u'assertExpression', var.get(u'record').get(u'value'))
                    var.get(u'abruptArgs').put(u'1', var.get(u'record').get(u'value'))
        var.get(u"this").callprop(u'emit', var.get(u't').callprop(u'returnStatement', var.get(u't').callprop(u'callExpression', var.get(u"this").callprop(u'contextProperty', Js(u'abrupt')), var.get(u'abruptArgs'))))
    PyJs_anonymous_1226_._set_name(u'anonymous')
    var.get(u'Ep').put(u'emitAbruptCompletion', PyJs_anonymous_1226_)
    pass
    @Js
    def PyJs_anonymous_1227_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'numericLiteral', var.get(u"this").get(u'listing').get(u'length'))
    PyJs_anonymous_1227_._set_name(u'anonymous')
    var.get(u'Ep').put(u'getUnmarkedCurrentLoc', PyJs_anonymous_1227_)
    @Js
    def PyJs_anonymous_1228_(loc, this, arguments, var=var):
        var = Scope({u'this':this, u'loc':loc, u'arguments':arguments}, var)
        var.registers([u'loc'])
        if var.get(u'loc'):
            var.get(u't').callprop(u'assertLiteral', var.get(u'loc'))
            if PyJsStrictEq(var.get(u'loc').get(u'value'),(-Js(1.0))):
                var.get(u'loc').put(u'value', var.get(u"this").get(u'listing').get(u'length'))
            else:
                var.get(u'_assert2').get(u'default').callprop(u'strictEqual', var.get(u'loc').get(u'value'), var.get(u"this").get(u'listing').get(u'length'))
        else:
            var.put(u'loc', var.get(u"this").callprop(u'getUnmarkedCurrentLoc'))
        var.get(u"this").callprop(u'emitAssign', var.get(u"this").callprop(u'contextProperty', Js(u'prev')), var.get(u'loc'))
    PyJs_anonymous_1228_._set_name(u'anonymous')
    var.get(u'Ep').put(u'updateContextPrevLoc', PyJs_anonymous_1228_)
    @Js
    def PyJs_anonymous_1229_(path, ignoreResult, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'ignoreResult':ignoreResult, u'arguments':arguments}, var)
        var.registers([u'finish', u'ignoreResult', u'expr', u'self', u'after', u'_ret3', u'result', u'hasLeapingChildren', u'path', u'explodeViaTempVar'])
        @Js
        def PyJsHoisted_explodeViaTempVar_(tempVar, childPath, ignoreChildResult, this, arguments, var=var):
            var = Scope({u'this':this, u'ignoreChildResult':ignoreChildResult, u'childPath':childPath, u'tempVar':tempVar, u'arguments':arguments}, var)
            var.registers([u'childPath', u'ignoreChildResult', u'result', u'tempVar'])
            var.get(u'_assert2').get(u'default').callprop(u'ok', (var.get(u'ignoreChildResult').neg() or var.get(u'tempVar').neg()), (Js(u'Ignoring the result of a child expression but forcing it to ')+Js(u'be assigned to a temporary variable?')))
            var.put(u'result', var.get(u'self').callprop(u'explodeExpression', var.get(u'childPath'), var.get(u'ignoreChildResult')))
            if var.get(u'ignoreChildResult'):
                pass
            else:
                if (var.get(u'tempVar') or (var.get(u'hasLeapingChildren') and var.get(u't').callprop(u'isLiteral', var.get(u'result')).neg())):
                    var.put(u'result', var.get(u'self').callprop(u'emitAssign', (var.get(u'tempVar') or var.get(u'self').callprop(u'makeTempVar')), var.get(u'result')))
            return var.get(u'result')
        PyJsHoisted_explodeViaTempVar_.func_name = u'explodeViaTempVar'
        var.put(u'explodeViaTempVar', PyJsHoisted_explodeViaTempVar_)
        @Js
        def PyJsHoisted_finish_(expr, this, arguments, var=var):
            var = Scope({u'this':this, u'expr':expr, u'arguments':arguments}, var)
            var.registers([u'expr'])
            var.get(u't').callprop(u'assertExpression', var.get(u'expr'))
            if var.get(u'ignoreResult'):
                var.get(u'self').callprop(u'emit', var.get(u'expr'))
            else:
                return var.get(u'expr')
        PyJsHoisted_finish_.func_name = u'finish'
        var.put(u'finish', PyJsHoisted_finish_)
        var.put(u'expr', var.get(u'path').get(u'node'))
        if var.get(u'expr'):
            var.get(u't').callprop(u'assertExpression', var.get(u'expr'))
        else:
            return var.get(u'expr')
        var.put(u'self', var.get(u"this"))
        var.put(u'result', PyJsComma(Js(0.0), Js(None)))
        var.put(u'after', PyJsComma(Js(0.0), Js(None)))
        pass
        if var.get(u'meta').callprop(u'containsLeap', var.get(u'expr')).neg():
            return var.get(u'finish')(var.get(u'expr'))
        var.put(u'hasLeapingChildren', var.get(u'meta').get(u'containsLeap').callprop(u'onlyChildren', var.get(u'expr')))
        pass
        @Js
        def PyJs_anonymous_1230_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'argsPath', u'_result', u'hasLeapingArgs', u'calleePath', u'lastIndex', u'newProperty', u'newObject', u'arg', u'test', u'newCallee', u'newArgs', u'elseLoc', u'left'])
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'expr').get(u'type'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'MemberExpression')):
                    SWITCHED = True
                    PyJs_Object_1231_ = Js({u'v':var.get(u'finish')(var.get(u't').callprop(u'memberExpression', var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'object'))), (var.get(u'explodeViaTempVar')(var.get(u"null"), var.get(u'path').callprop(u'get', Js(u'property'))) if var.get(u'expr').get(u'computed') else var.get(u'expr').get(u'property')), var.get(u'expr').get(u'computed')))})
                    return PyJs_Object_1231_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'CallExpression')):
                    SWITCHED = True
                    var.put(u'calleePath', var.get(u'path').callprop(u'get', Js(u'callee')))
                    var.put(u'argsPath', var.get(u'path').callprop(u'get', Js(u'arguments')))
                    var.put(u'newCallee', PyJsComma(Js(0.0), Js(None)))
                    var.put(u'newArgs', Js([]))
                    var.put(u'hasLeapingArgs', Js(False))
                    @Js
                    def PyJs_anonymous_1232_(argPath, this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments, u'argPath':argPath}, var)
                        var.registers([u'argPath'])
                        var.put(u'hasLeapingArgs', (var.get(u'hasLeapingArgs') or var.get(u'meta').callprop(u'containsLeap', var.get(u'argPath').get(u'node'))))
                    PyJs_anonymous_1232_._set_name(u'anonymous')
                    var.get(u'argsPath').callprop(u'forEach', PyJs_anonymous_1232_)
                    if var.get(u't').callprop(u'isMemberExpression', var.get(u'calleePath').get(u'node')):
                        if var.get(u'hasLeapingArgs'):
                            var.put(u'newObject', var.get(u'explodeViaTempVar')(var.get(u'self').callprop(u'makeTempVar'), var.get(u'calleePath').callprop(u'get', Js(u'object'))))
                            var.put(u'newProperty', (var.get(u'explodeViaTempVar')(var.get(u"null"), var.get(u'calleePath').callprop(u'get', Js(u'property'))) if var.get(u'calleePath').get(u'node').get(u'computed') else var.get(u'calleePath').get(u'node').get(u'property')))
                            var.get(u'newArgs').callprop(u'unshift', var.get(u'newObject'))
                            var.put(u'newCallee', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'memberExpression', var.get(u'newObject'), var.get(u'newProperty'), var.get(u'calleePath').get(u'node').get(u'computed')), var.get(u't').callprop(u'identifier', Js(u'call')), Js(False)))
                        else:
                            var.put(u'newCallee', var.get(u'self').callprop(u'explodeExpression', var.get(u'calleePath')))
                    else:
                        var.put(u'newCallee', var.get(u'self').callprop(u'explodeExpression', var.get(u'calleePath')))
                        if var.get(u't').callprop(u'isMemberExpression', var.get(u'newCallee')):
                            var.put(u'newCallee', var.get(u't').callprop(u'sequenceExpression', Js([var.get(u't').callprop(u'numericLiteral', Js(0.0)), var.get(u'newCallee')])))
                    @Js
                    def PyJs_anonymous_1233_(argPath, this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments, u'argPath':argPath}, var)
                        var.registers([u'argPath'])
                        var.get(u'newArgs').callprop(u'push', var.get(u'explodeViaTempVar')(var.get(u"null"), var.get(u'argPath')))
                    PyJs_anonymous_1233_._set_name(u'anonymous')
                    var.get(u'argsPath').callprop(u'forEach', PyJs_anonymous_1233_)
                    PyJs_Object_1234_ = Js({u'v':var.get(u'finish')(var.get(u't').callprop(u'callExpression', var.get(u'newCallee'), var.get(u'newArgs')))})
                    return PyJs_Object_1234_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'NewExpression')):
                    SWITCHED = True
                    @Js
                    def PyJs_anonymous_1236_(argPath, this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments, u'argPath':argPath}, var)
                        var.registers([u'argPath'])
                        return var.get(u'explodeViaTempVar')(var.get(u"null"), var.get(u'argPath'))
                    PyJs_anonymous_1236_._set_name(u'anonymous')
                    PyJs_Object_1235_ = Js({u'v':var.get(u'finish')(var.get(u't').callprop(u'newExpression', var.get(u'explodeViaTempVar')(var.get(u"null"), var.get(u'path').callprop(u'get', Js(u'callee'))), var.get(u'path').callprop(u'get', Js(u'arguments')).callprop(u'map', PyJs_anonymous_1236_)))})
                    return PyJs_Object_1235_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ObjectExpression')):
                    SWITCHED = True
                    @Js
                    def PyJs_anonymous_1238_(propPath, this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments, u'propPath':propPath}, var)
                        var.registers([u'propPath'])
                        if var.get(u'propPath').callprop(u'isObjectProperty'):
                            return var.get(u't').callprop(u'objectProperty', var.get(u'propPath').get(u'node').get(u'key'), var.get(u'explodeViaTempVar')(var.get(u"null"), var.get(u'propPath').callprop(u'get', Js(u'value'))), var.get(u'propPath').get(u'node').get(u'computed'))
                        else:
                            return var.get(u'propPath').get(u'node')
                    PyJs_anonymous_1238_._set_name(u'anonymous')
                    PyJs_Object_1237_ = Js({u'v':var.get(u'finish')(var.get(u't').callprop(u'objectExpression', var.get(u'path').callprop(u'get', Js(u'properties')).callprop(u'map', PyJs_anonymous_1238_)))})
                    return PyJs_Object_1237_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ArrayExpression')):
                    SWITCHED = True
                    @Js
                    def PyJs_anonymous_1240_(elemPath, this, arguments, var=var):
                        var = Scope({u'this':this, u'elemPath':elemPath, u'arguments':arguments}, var)
                        var.registers([u'elemPath'])
                        return var.get(u'explodeViaTempVar')(var.get(u"null"), var.get(u'elemPath'))
                    PyJs_anonymous_1240_._set_name(u'anonymous')
                    PyJs_Object_1239_ = Js({u'v':var.get(u'finish')(var.get(u't').callprop(u'arrayExpression', var.get(u'path').callprop(u'get', Js(u'elements')).callprop(u'map', PyJs_anonymous_1240_)))})
                    return PyJs_Object_1239_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'SequenceExpression')):
                    SWITCHED = True
                    var.put(u'lastIndex', (var.get(u'expr').get(u'expressions').get(u'length')-Js(1.0)))
                    @Js
                    def PyJs_anonymous_1241_(exprPath, this, arguments, var=var):
                        var = Scope({u'exprPath':exprPath, u'this':this, u'arguments':arguments}, var)
                        var.registers([u'exprPath'])
                        if PyJsStrictEq(var.get(u'exprPath').get(u'key'),var.get(u'lastIndex')):
                            var.put(u'result', var.get(u'self').callprop(u'explodeExpression', var.get(u'exprPath'), var.get(u'ignoreResult')))
                        else:
                            var.get(u'self').callprop(u'explodeExpression', var.get(u'exprPath'), var.get(u'true'))
                    PyJs_anonymous_1241_._set_name(u'anonymous')
                    var.get(u'path').callprop(u'get', Js(u'expressions')).callprop(u'forEach', PyJs_anonymous_1241_)
                    PyJs_Object_1242_ = Js({u'v':var.get(u'result')})
                    return PyJs_Object_1242_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'LogicalExpression')):
                    SWITCHED = True
                    var.put(u'after', var.get(u'loc')())
                    if var.get(u'ignoreResult').neg():
                        var.put(u'result', var.get(u'self').callprop(u'makeTempVar'))
                    var.put(u'left', var.get(u'explodeViaTempVar')(var.get(u'result'), var.get(u'path').callprop(u'get', Js(u'left'))))
                    if PyJsStrictEq(var.get(u'expr').get(u'operator'),Js(u'&&')):
                        var.get(u'self').callprop(u'jumpIfNot', var.get(u'left'), var.get(u'after'))
                    else:
                        var.get(u'_assert2').get(u'default').callprop(u'strictEqual', var.get(u'expr').get(u'operator'), Js(u'||'))
                        var.get(u'self').callprop(u'jumpIf', var.get(u'left'), var.get(u'after'))
                    var.get(u'explodeViaTempVar')(var.get(u'result'), var.get(u'path').callprop(u'get', Js(u'right')), var.get(u'ignoreResult'))
                    var.get(u'self').callprop(u'mark', var.get(u'after'))
                    PyJs_Object_1243_ = Js({u'v':var.get(u'result')})
                    return PyJs_Object_1243_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ConditionalExpression')):
                    SWITCHED = True
                    var.put(u'elseLoc', var.get(u'loc')())
                    var.put(u'after', var.get(u'loc')())
                    var.put(u'test', var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'test'))))
                    var.get(u'self').callprop(u'jumpIfNot', var.get(u'test'), var.get(u'elseLoc'))
                    if var.get(u'ignoreResult').neg():
                        var.put(u'result', var.get(u'self').callprop(u'makeTempVar'))
                    var.get(u'explodeViaTempVar')(var.get(u'result'), var.get(u'path').callprop(u'get', Js(u'consequent')), var.get(u'ignoreResult'))
                    var.get(u'self').callprop(u'jump', var.get(u'after'))
                    var.get(u'self').callprop(u'mark', var.get(u'elseLoc'))
                    var.get(u'explodeViaTempVar')(var.get(u'result'), var.get(u'path').callprop(u'get', Js(u'alternate')), var.get(u'ignoreResult'))
                    var.get(u'self').callprop(u'mark', var.get(u'after'))
                    PyJs_Object_1244_ = Js({u'v':var.get(u'result')})
                    return PyJs_Object_1244_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'UnaryExpression')):
                    SWITCHED = True
                    PyJs_Object_1245_ = Js({u'v':var.get(u'finish')(var.get(u't').callprop(u'unaryExpression', var.get(u'expr').get(u'operator'), var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'argument'))), var.get(u'expr').get(u'prefix').neg().neg()))})
                    return PyJs_Object_1245_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'BinaryExpression')):
                    SWITCHED = True
                    PyJs_Object_1246_ = Js({u'v':var.get(u'finish')(var.get(u't').callprop(u'binaryExpression', var.get(u'expr').get(u'operator'), var.get(u'explodeViaTempVar')(var.get(u"null"), var.get(u'path').callprop(u'get', Js(u'left'))), var.get(u'explodeViaTempVar')(var.get(u"null"), var.get(u'path').callprop(u'get', Js(u'right')))))})
                    return PyJs_Object_1246_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'AssignmentExpression')):
                    SWITCHED = True
                    PyJs_Object_1247_ = Js({u'v':var.get(u'finish')(var.get(u't').callprop(u'assignmentExpression', var.get(u'expr').get(u'operator'), var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'left'))), var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'right')))))})
                    return PyJs_Object_1247_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'UpdateExpression')):
                    SWITCHED = True
                    PyJs_Object_1248_ = Js({u'v':var.get(u'finish')(var.get(u't').callprop(u'updateExpression', var.get(u'expr').get(u'operator'), var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'argument'))), var.get(u'expr').get(u'prefix')))})
                    return PyJs_Object_1248_
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'YieldExpression')):
                    SWITCHED = True
                    var.put(u'after', var.get(u'loc')())
                    var.put(u'arg', (var.get(u'expr').get(u'argument') and var.get(u'self').callprop(u'explodeExpression', var.get(u'path').callprop(u'get', Js(u'argument')))))
                    if (var.get(u'arg') and var.get(u'expr').get(u'delegate')):
                        var.put(u'_result', var.get(u'self').callprop(u'makeTempVar'))
                        var.get(u'self').callprop(u'emit', var.get(u't').callprop(u'returnStatement', var.get(u't').callprop(u'callExpression', var.get(u'self').callprop(u'contextProperty', Js(u'delegateYield')), Js([var.get(u'arg'), var.get(u't').callprop(u'stringLiteral', var.get(u'_result').get(u'property').get(u'name')), var.get(u'after')]))))
                        var.get(u'self').callprop(u'mark', var.get(u'after'))
                        PyJs_Object_1249_ = Js({u'v':var.get(u'_result')})
                        return PyJs_Object_1249_
                    var.get(u'self').callprop(u'emitAssign', var.get(u'self').callprop(u'contextProperty', Js(u'next')), var.get(u'after'))
                    var.get(u'self').callprop(u'emit', var.get(u't').callprop(u'returnStatement', (var.get(u'arg') or var.get(u"null"))))
                    var.get(u'self').callprop(u'mark', var.get(u'after'))
                    PyJs_Object_1250_ = Js({u'v':var.get(u'self').callprop(u'contextProperty', Js(u'sent'))})
                    return PyJs_Object_1250_
                if True:
                    SWITCHED = True
                    PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u'unknown Expression of type ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'expr').get(u'type')))))
                    raise PyJsTempException
                SWITCHED = True
                break
        PyJs_anonymous_1230_._set_name(u'anonymous')
        var.put(u'_ret3', PyJs_anonymous_1230_())
        if PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'_ret3',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'_ret3'))),Js(u'object')):
            return var.get(u'_ret3').get(u'v')
    PyJs_anonymous_1229_._set_name(u'anonymous')
    var.get(u'Ep').put(u'explodeExpression', PyJs_anonymous_1229_)
PyJs_anonymous_1182_._set_name(u'anonymous')
PyJs_Object_1251_ = Js({u'./leap':Js(90.0),u'./meta':Js(91.0),u'./util':Js(92.0),u'assert':Js(524.0),u'babel-runtime/core-js/json/stringify':Js(97.0),u'babel-runtime/helpers/typeof':Js(114.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1252_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'module', u'exports', u'_interopRequireWildcard', u'require', u'_babelTypes', u'hasOwn', u'_keys2', u'_keys', u't', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1254_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1254_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1253_ = Js({})
            var.put(u'newObj', PyJs_Object_1253_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.put(u'_keys', var.get(u'require')(Js(u'babel-runtime/core-js/object/keys')))
    var.put(u'_keys2', var.get(u'_interopRequireDefault')(var.get(u'_keys')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.put(u'hasOwn', var.get(u'Object').get(u'prototype').get(u'hasOwnProperty'))
    @Js
    def PyJs_anonymous_1255_(funPath, this, arguments, var=var):
        var = Scope({u'this':this, u'funPath':funPath, u'arguments':arguments}, var)
        var.registers([u'varDeclToExpr', u'funPath', u'paramNames', u'declarations', u'vars'])
        @Js
        def PyJsHoisted_varDeclToExpr_(vdec, includeIdentifiers, this, arguments, var=var):
            var = Scope({u'this':this, u'vdec':vdec, u'arguments':arguments, u'includeIdentifiers':includeIdentifiers}, var)
            var.registers([u'exprs', u'vdec', u'includeIdentifiers'])
            var.get(u't').callprop(u'assertVariableDeclaration', var.get(u'vdec'))
            var.put(u'exprs', Js([]))
            @Js
            def PyJs_anonymous_1257_(dec, this, arguments, var=var):
                var = Scope({u'this':this, u'dec':dec, u'arguments':arguments}, var)
                var.registers([u'dec'])
                var.get(u'vars').put(var.get(u'dec').get(u'id').get(u'name'), var.get(u't').callprop(u'identifier', var.get(u'dec').get(u'id').get(u'name')))
                if var.get(u'dec').get(u'init'):
                    var.get(u'exprs').callprop(u'push', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'dec').get(u'id'), var.get(u'dec').get(u'init')))
                else:
                    if var.get(u'includeIdentifiers'):
                        var.get(u'exprs').callprop(u'push', var.get(u'dec').get(u'id'))
            PyJs_anonymous_1257_._set_name(u'anonymous')
            var.get(u'vdec').get(u'declarations').callprop(u'forEach', PyJs_anonymous_1257_)
            if PyJsStrictEq(var.get(u'exprs').get(u'length'),Js(0.0)):
                return var.get(u"null")
            if PyJsStrictEq(var.get(u'exprs').get(u'length'),Js(1.0)):
                return var.get(u'exprs').get(u'0')
            return var.get(u't').callprop(u'sequenceExpression', var.get(u'exprs'))
        PyJsHoisted_varDeclToExpr_.func_name = u'varDeclToExpr'
        var.put(u'varDeclToExpr', PyJsHoisted_varDeclToExpr_)
        var.get(u't').callprop(u'assertFunction', var.get(u'funPath').get(u'node'))
        PyJs_Object_1256_ = Js({})
        var.put(u'vars', PyJs_Object_1256_)
        pass
        @Js
        def PyJs_exit_1260_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'exit':PyJs_exit_1260_, u'arguments':arguments}, var)
            var.registers([u'expr', u'path'])
            var.put(u'expr', var.get(u'varDeclToExpr')(var.get(u'path').get(u'node'), Js(False)))
            if PyJsStrictEq(var.get(u'expr'),var.get(u"null")):
                var.get(u'path').callprop(u'remove')
            else:
                var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'expressionStatement', var.get(u'expr')))
            var.get(u'path').callprop(u'skip')
        PyJs_exit_1260_._set_name(u'exit')
        PyJs_Object_1259_ = Js({u'exit':PyJs_exit_1260_})
        @Js
        def PyJs_ForStatement_1261_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'ForStatement':PyJs_ForStatement_1261_}, var)
            var.registers([u'path', u'init'])
            var.put(u'init', var.get(u'path').get(u'node').get(u'init'))
            if var.get(u't').callprop(u'isVariableDeclaration', var.get(u'init')):
                var.get(u'path').callprop(u'get', Js(u'init')).callprop(u'replaceWith', var.get(u'varDeclToExpr')(var.get(u'init'), Js(False)))
        PyJs_ForStatement_1261_._set_name(u'ForStatement')
        @Js
        def PyJs_ForXStatement_1262_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'ForXStatement':PyJs_ForXStatement_1262_}, var)
            var.registers([u'path', u'left'])
            var.put(u'left', var.get(u'path').callprop(u'get', Js(u'left')))
            if var.get(u'left').callprop(u'isVariableDeclaration'):
                var.get(u'left').callprop(u'replaceWith', var.get(u'varDeclToExpr')(var.get(u'left').get(u'node'), var.get(u'true')))
        PyJs_ForXStatement_1262_._set_name(u'ForXStatement')
        @Js
        def PyJs_FunctionDeclaration_1263_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'FunctionDeclaration':PyJs_FunctionDeclaration_1263_}, var)
            var.registers([u'node', u'assignment', u'path'])
            var.put(u'node', var.get(u'path').get(u'node'))
            var.get(u'vars').put(var.get(u'node').get(u'id').get(u'name'), var.get(u'node').get(u'id'))
            var.put(u'assignment', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'node').get(u'id'), var.get(u't').callprop(u'functionExpression', var.get(u'node').get(u'id'), var.get(u'node').get(u'params'), var.get(u'node').get(u'body'), var.get(u'node').get(u'generator'), var.get(u'node').get(u'expression')))))
            if var.get(u'path').get(u'parentPath').callprop(u'isBlockStatement'):
                var.get(u'path').get(u'parentPath').callprop(u'unshiftContainer', Js(u'body'), var.get(u'assignment'))
                var.get(u'path').callprop(u'remove')
            else:
                var.get(u'path').callprop(u'replaceWith', var.get(u'assignment'))
            var.get(u'path').callprop(u'skip')
        PyJs_FunctionDeclaration_1263_._set_name(u'FunctionDeclaration')
        @Js
        def PyJs_FunctionExpression_1264_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'FunctionExpression':PyJs_FunctionExpression_1264_, u'arguments':arguments}, var)
            var.registers([u'path'])
            var.get(u'path').callprop(u'skip')
        PyJs_FunctionExpression_1264_._set_name(u'FunctionExpression')
        PyJs_Object_1258_ = Js({u'VariableDeclaration':PyJs_Object_1259_,u'ForStatement':PyJs_ForStatement_1261_,u'ForXStatement':PyJs_ForXStatement_1262_,u'FunctionDeclaration':PyJs_FunctionDeclaration_1263_,u'FunctionExpression':PyJs_FunctionExpression_1264_})
        var.get(u'funPath').callprop(u'get', Js(u'body')).callprop(u'traverse', PyJs_Object_1258_)
        PyJs_Object_1265_ = Js({})
        var.put(u'paramNames', PyJs_Object_1265_)
        @Js
        def PyJs_anonymous_1266_(paramPath, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'paramPath':paramPath}, var)
            var.registers([u'param', u'paramPath'])
            var.put(u'param', var.get(u'paramPath').get(u'node'))
            if var.get(u't').callprop(u'isIdentifier', var.get(u'param')):
                var.get(u'paramNames').put(var.get(u'param').get(u'name'), var.get(u'param'))
            else:
                pass
        PyJs_anonymous_1266_._set_name(u'anonymous')
        var.get(u'funPath').callprop(u'get', Js(u'params')).callprop(u'forEach', PyJs_anonymous_1266_)
        var.put(u'declarations', Js([]))
        @Js
        def PyJs_anonymous_1267_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
            var.registers([u'name'])
            if var.get(u'hasOwn').callprop(u'call', var.get(u'paramNames'), var.get(u'name')).neg():
                var.get(u'declarations').callprop(u'push', var.get(u't').callprop(u'variableDeclarator', var.get(u'vars').get(var.get(u'name')), var.get(u"null")))
        PyJs_anonymous_1267_._set_name(u'anonymous')
        PyJsComma(Js(0.0),var.get(u'_keys2').get(u'default'))(var.get(u'vars')).callprop(u'forEach', PyJs_anonymous_1267_)
        if PyJsStrictEq(var.get(u'declarations').get(u'length'),Js(0.0)):
            return var.get(u"null")
        return var.get(u't').callprop(u'variableDeclaration', Js(u'var'), var.get(u'declarations'))
    PyJs_anonymous_1255_._set_name(u'anonymous')
    var.get(u'exports').put(u'hoist', PyJs_anonymous_1255_)
PyJs_anonymous_1252_._set_name(u'anonymous')
PyJs_Object_1268_ = Js({u'babel-runtime/core-js/object/keys':Js(103.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1269_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_1270_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u'require')(Js(u'./visit'))
    PyJs_anonymous_1270_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1270_)
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1269_._set_name(u'anonymous')
PyJs_Object_1271_ = Js({u'./visit':Js(93.0)})
@Js
def PyJs_anonymous_1272_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'CatchEntry', u'LabeledEntry', u'SwitchEntry', u'module', u'TryEntry', u'_interopRequireWildcard', u'LMp', u'_assert2', u'require', u'_babelTypes', u'exports', u'_util', u'LeapManager', u't', u'_assert', u'FunctionEntry', u'_interopRequireDefault', u'Entry', u'LoopEntry', u'FinallyEntry'])
    @Js
    def PyJsHoisted_CatchEntry_(firstLoc, paramId, this, arguments, var=var):
        var = Scope({u'firstLoc':firstLoc, u'this':this, u'paramId':paramId, u'arguments':arguments}, var)
        var.registers([u'firstLoc', u'paramId'])
        var.get(u'Entry').callprop(u'call', var.get(u"this"))
        var.get(u't').callprop(u'assertLiteral', var.get(u'firstLoc'))
        var.get(u't').callprop(u'assertIdentifier', var.get(u'paramId'))
        var.get(u"this").put(u'firstLoc', var.get(u'firstLoc'))
        var.get(u"this").put(u'paramId', var.get(u'paramId'))
    PyJsHoisted_CatchEntry_.func_name = u'CatchEntry'
    var.put(u'CatchEntry', PyJsHoisted_CatchEntry_)
    @Js
    def PyJsHoisted_LabeledEntry_(breakLoc, label, this, arguments, var=var):
        var = Scope({u'this':this, u'breakLoc':breakLoc, u'arguments':arguments, u'label':label}, var)
        var.registers([u'breakLoc', u'label'])
        var.get(u'Entry').callprop(u'call', var.get(u"this"))
        var.get(u't').callprop(u'assertLiteral', var.get(u'breakLoc'))
        var.get(u't').callprop(u'assertIdentifier', var.get(u'label'))
        var.get(u"this").put(u'breakLoc', var.get(u'breakLoc'))
        var.get(u"this").put(u'label', var.get(u'label'))
    PyJsHoisted_LabeledEntry_.func_name = u'LabeledEntry'
    var.put(u'LabeledEntry', PyJsHoisted_LabeledEntry_)
    @Js
    def PyJsHoisted_SwitchEntry_(breakLoc, this, arguments, var=var):
        var = Scope({u'this':this, u'breakLoc':breakLoc, u'arguments':arguments}, var)
        var.registers([u'breakLoc'])
        var.get(u'Entry').callprop(u'call', var.get(u"this"))
        var.get(u't').callprop(u'assertLiteral', var.get(u'breakLoc'))
        var.get(u"this").put(u'breakLoc', var.get(u'breakLoc'))
    PyJsHoisted_SwitchEntry_.func_name = u'SwitchEntry'
    var.put(u'SwitchEntry', PyJsHoisted_SwitchEntry_)
    @Js
    def PyJsHoisted_TryEntry_(firstLoc, catchEntry, finallyEntry, this, arguments, var=var):
        var = Scope({u'firstLoc':firstLoc, u'catchEntry':catchEntry, u'this':this, u'arguments':arguments, u'finallyEntry':finallyEntry}, var)
        var.registers([u'firstLoc', u'catchEntry', u'finallyEntry'])
        var.get(u'Entry').callprop(u'call', var.get(u"this"))
        var.get(u't').callprop(u'assertLiteral', var.get(u'firstLoc'))
        if var.get(u'catchEntry'):
            var.get(u'_assert2').get(u'default').callprop(u'ok', var.get(u'catchEntry').instanceof(var.get(u'CatchEntry')))
        else:
            var.put(u'catchEntry', var.get(u"null"))
        if var.get(u'finallyEntry'):
            var.get(u'_assert2').get(u'default').callprop(u'ok', var.get(u'finallyEntry').instanceof(var.get(u'FinallyEntry')))
        else:
            var.put(u'finallyEntry', var.get(u"null"))
        var.get(u'_assert2').get(u'default').callprop(u'ok', (var.get(u'catchEntry') or var.get(u'finallyEntry')))
        var.get(u"this").put(u'firstLoc', var.get(u'firstLoc'))
        var.get(u"this").put(u'catchEntry', var.get(u'catchEntry'))
        var.get(u"this").put(u'finallyEntry', var.get(u'finallyEntry'))
    PyJsHoisted_TryEntry_.func_name = u'TryEntry'
    var.put(u'TryEntry', PyJsHoisted_TryEntry_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1273_ = Js({})
            var.put(u'newObj', PyJs_Object_1273_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_LeapManager_(emitter, this, arguments, var=var):
        var = Scope({u'this':this, u'emitter':emitter, u'arguments':arguments}, var)
        var.registers([u'Emitter', u'emitter'])
        var.get(u'_assert2').get(u'default').callprop(u'ok', var.get(u"this").instanceof(var.get(u'LeapManager')))
        var.put(u'Emitter', var.get(u'require')(Js(u'./emit')).get(u'Emitter'))
        var.get(u'_assert2').get(u'default').callprop(u'ok', var.get(u'emitter').instanceof(var.get(u'Emitter')))
        var.get(u"this").put(u'emitter', var.get(u'emitter'))
        var.get(u"this").put(u'entryStack', Js([var.get(u'FunctionEntry').create(var.get(u'emitter').get(u'finalLoc'))]))
    PyJsHoisted_LeapManager_.func_name = u'LeapManager'
    var.put(u'LeapManager', PyJsHoisted_LeapManager_)
    @Js
    def PyJsHoisted_FunctionEntry_(returnLoc, this, arguments, var=var):
        var = Scope({u'this':this, u'returnLoc':returnLoc, u'arguments':arguments}, var)
        var.registers([u'returnLoc'])
        var.get(u'Entry').callprop(u'call', var.get(u"this"))
        var.get(u't').callprop(u'assertLiteral', var.get(u'returnLoc'))
        var.get(u"this").put(u'returnLoc', var.get(u'returnLoc'))
    PyJsHoisted_FunctionEntry_.func_name = u'FunctionEntry'
    var.put(u'FunctionEntry', PyJsHoisted_FunctionEntry_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1274_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1274_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_Entry_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u'_assert2').get(u'default').callprop(u'ok', var.get(u"this").instanceof(var.get(u'Entry')))
    PyJsHoisted_Entry_.func_name = u'Entry'
    var.put(u'Entry', PyJsHoisted_Entry_)
    @Js
    def PyJsHoisted_LoopEntry_(breakLoc, continueLoc, label, this, arguments, var=var):
        var = Scope({u'continueLoc':continueLoc, u'breakLoc':breakLoc, u'this':this, u'arguments':arguments, u'label':label}, var)
        var.registers([u'continueLoc', u'breakLoc', u'label'])
        var.get(u'Entry').callprop(u'call', var.get(u"this"))
        var.get(u't').callprop(u'assertLiteral', var.get(u'breakLoc'))
        var.get(u't').callprop(u'assertLiteral', var.get(u'continueLoc'))
        if var.get(u'label'):
            var.get(u't').callprop(u'assertIdentifier', var.get(u'label'))
        else:
            var.put(u'label', var.get(u"null"))
        var.get(u"this").put(u'breakLoc', var.get(u'breakLoc'))
        var.get(u"this").put(u'continueLoc', var.get(u'continueLoc'))
        var.get(u"this").put(u'label', var.get(u'label'))
    PyJsHoisted_LoopEntry_.func_name = u'LoopEntry'
    var.put(u'LoopEntry', PyJsHoisted_LoopEntry_)
    @Js
    def PyJsHoisted_FinallyEntry_(firstLoc, afterLoc, this, arguments, var=var):
        var = Scope({u'firstLoc':firstLoc, u'this':this, u'afterLoc':afterLoc, u'arguments':arguments}, var)
        var.registers([u'firstLoc', u'afterLoc'])
        var.get(u'Entry').callprop(u'call', var.get(u"this"))
        var.get(u't').callprop(u'assertLiteral', var.get(u'firstLoc'))
        var.get(u't').callprop(u'assertLiteral', var.get(u'afterLoc'))
        var.get(u"this").put(u'firstLoc', var.get(u'firstLoc'))
        var.get(u"this").put(u'afterLoc', var.get(u'afterLoc'))
    PyJsHoisted_FinallyEntry_.func_name = u'FinallyEntry'
    var.put(u'FinallyEntry', PyJsHoisted_FinallyEntry_)
    Js(u'use strict')
    var.put(u'_assert', var.get(u'require')(Js(u'assert')))
    var.put(u'_assert2', var.get(u'_interopRequireDefault')(var.get(u'_assert')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_util', var.get(u'require')(Js(u'util')))
    pass
    pass
    pass
    pass
    PyJsComma(Js(0.0),var.get(u'_util').get(u'inherits'))(var.get(u'FunctionEntry'), var.get(u'Entry'))
    var.get(u'exports').put(u'FunctionEntry', var.get(u'FunctionEntry'))
    pass
    PyJsComma(Js(0.0),var.get(u'_util').get(u'inherits'))(var.get(u'LoopEntry'), var.get(u'Entry'))
    var.get(u'exports').put(u'LoopEntry', var.get(u'LoopEntry'))
    pass
    PyJsComma(Js(0.0),var.get(u'_util').get(u'inherits'))(var.get(u'SwitchEntry'), var.get(u'Entry'))
    var.get(u'exports').put(u'SwitchEntry', var.get(u'SwitchEntry'))
    pass
    PyJsComma(Js(0.0),var.get(u'_util').get(u'inherits'))(var.get(u'TryEntry'), var.get(u'Entry'))
    var.get(u'exports').put(u'TryEntry', var.get(u'TryEntry'))
    pass
    PyJsComma(Js(0.0),var.get(u'_util').get(u'inherits'))(var.get(u'CatchEntry'), var.get(u'Entry'))
    var.get(u'exports').put(u'CatchEntry', var.get(u'CatchEntry'))
    pass
    PyJsComma(Js(0.0),var.get(u'_util').get(u'inherits'))(var.get(u'FinallyEntry'), var.get(u'Entry'))
    var.get(u'exports').put(u'FinallyEntry', var.get(u'FinallyEntry'))
    pass
    PyJsComma(Js(0.0),var.get(u'_util').get(u'inherits'))(var.get(u'LabeledEntry'), var.get(u'Entry'))
    var.get(u'exports').put(u'LabeledEntry', var.get(u'LabeledEntry'))
    pass
    var.put(u'LMp', var.get(u'LeapManager').get(u'prototype'))
    var.get(u'exports').put(u'LeapManager', var.get(u'LeapManager'))
    @Js
    def PyJs_anonymous_1275_(entry, callback, this, arguments, var=var):
        var = Scope({u'this':this, u'entry':entry, u'arguments':arguments, u'callback':callback}, var)
        var.registers([u'entry', u'popped', u'callback'])
        var.get(u'_assert2').get(u'default').callprop(u'ok', var.get(u'entry').instanceof(var.get(u'Entry')))
        var.get(u"this").get(u'entryStack').callprop(u'push', var.get(u'entry'))
        try:
            var.get(u'callback').callprop(u'call', var.get(u"this").get(u'emitter'))
        finally:
            var.put(u'popped', var.get(u"this").get(u'entryStack').callprop(u'pop'))
            var.get(u'_assert2').get(u'default').callprop(u'strictEqual', var.get(u'popped'), var.get(u'entry'))
    PyJs_anonymous_1275_._set_name(u'anonymous')
    var.get(u'LMp').put(u'withEntry', PyJs_anonymous_1275_)
    @Js
    def PyJs_anonymous_1276_(property, label, this, arguments, var=var):
        var = Scope({u'this':this, u'property':property, u'arguments':arguments, u'label':label}, var)
        var.registers([u'i', u'entry', u'property', u'label', u'loc'])
        #for JS loop
        var.put(u'i', (var.get(u"this").get(u'entryStack').get(u'length')-Js(1.0)))
        while (var.get(u'i')>=Js(0.0)):
            try:
                var.put(u'entry', var.get(u"this").get(u'entryStack').get(var.get(u'i')))
                var.put(u'loc', var.get(u'entry').get(var.get(u'property')))
                if var.get(u'loc'):
                    if var.get(u'label'):
                        if (var.get(u'entry').get(u'label') and PyJsStrictEq(var.get(u'entry').get(u'label').get(u'name'),var.get(u'label').get(u'name'))):
                            return var.get(u'loc')
                    else:
                        if var.get(u'entry').instanceof(var.get(u'LabeledEntry')):
                            pass
                        else:
                            return var.get(u'loc')
            finally:
                    var.put(u'i',Js(var.get(u'i').to_number())-Js(1))
        return var.get(u"null")
    PyJs_anonymous_1276_._set_name(u'anonymous')
    var.get(u'LMp').put(u'_findLeapLocation', PyJs_anonymous_1276_)
    @Js
    def PyJs_anonymous_1277_(label, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'label':label}, var)
        var.registers([u'label'])
        return var.get(u"this").callprop(u'_findLeapLocation', Js(u'breakLoc'), var.get(u'label'))
    PyJs_anonymous_1277_._set_name(u'anonymous')
    var.get(u'LMp').put(u'getBreakLoc', PyJs_anonymous_1277_)
    @Js
    def PyJs_anonymous_1278_(label, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'label':label}, var)
        var.registers([u'label'])
        return var.get(u"this").callprop(u'_findLeapLocation', Js(u'continueLoc'), var.get(u'label'))
    PyJs_anonymous_1278_._set_name(u'anonymous')
    var.get(u'LMp').put(u'getContinueLoc', PyJs_anonymous_1278_)
PyJs_anonymous_1272_._set_name(u'anonymous')
PyJs_Object_1279_ = Js({u'./emit':Js(87.0),u'assert':Js(524.0),u'babel-types':Js(258.0),u'util':Js(534.0)})
@Js
def PyJs_anonymous_1280_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'module', u'sideEffectTypes', u'opaqueTypes', u'_interopRequireWildcard', u'leapTypes', u'_assert2', u'require', u'_babelTypes', u'm', u'exports', u'hasOwn', u'makePredicate', u't', u'_assert', u'_interopRequireDefault', u'type'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1282_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1282_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_makePredicate_(propertyName, knownTypes, this, arguments, var=var):
        var = Scope({u'this':this, u'propertyName':propertyName, u'arguments':arguments, u'knownTypes':knownTypes}, var)
        var.registers([u'predicate', u'onlyChildren', u'propertyName', u'knownTypes'])
        @Js
        def PyJsHoisted_predicate_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node', u'meta'])
            var.get(u't').callprop(u'assertNode', var.get(u'node'))
            var.put(u'meta', var.get(u'm')(var.get(u'node')))
            if var.get(u'hasOwn').callprop(u'call', var.get(u'meta'), var.get(u'propertyName')):
                return var.get(u'meta').get(var.get(u'propertyName'))
            if var.get(u'hasOwn').callprop(u'call', var.get(u'opaqueTypes'), var.get(u'node').get(u'type')):
                return var.get(u'meta').put(var.get(u'propertyName'), Js(False))
            if var.get(u'hasOwn').callprop(u'call', var.get(u'knownTypes'), var.get(u'node').get(u'type')):
                return var.get(u'meta').put(var.get(u'propertyName'), var.get(u'true'))
            return var.get(u'meta').put(var.get(u'propertyName'), var.get(u'onlyChildren')(var.get(u'node')))
        PyJsHoisted_predicate_.func_name = u'predicate'
        var.put(u'predicate', PyJsHoisted_predicate_)
        @Js
        def PyJsHoisted_onlyChildren_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node', u'keys', u'i', u'result', u'key', u'child', u'check'])
            @Js
            def PyJsHoisted_check_(child, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'child':child}, var)
                var.registers([u'child'])
                if var.get(u'result'):
                    pass
                else:
                    if var.get(u'Array').callprop(u'isArray', var.get(u'child')):
                        var.get(u'child').callprop(u'some', var.get(u'check'))
                    else:
                        if var.get(u't').callprop(u'isNode', var.get(u'child')):
                            var.get(u'_assert2').get(u'default').callprop(u'strictEqual', var.get(u'result'), Js(False))
                            var.put(u'result', var.get(u'predicate')(var.get(u'child')))
                return var.get(u'result')
            PyJsHoisted_check_.func_name = u'check'
            var.put(u'check', PyJsHoisted_check_)
            var.get(u't').callprop(u'assertNode', var.get(u'node'))
            var.put(u'result', Js(False))
            pass
            var.put(u'keys', var.get(u't').get(u'VISITOR_KEYS').get(var.get(u'node').get(u'type')))
            if var.get(u'keys'):
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'keys').get(u'length')):
                    try:
                        var.put(u'key', var.get(u'keys').get(var.get(u'i')))
                        var.put(u'child', var.get(u'node').get(var.get(u'key')))
                        var.get(u'check')(var.get(u'child'))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'result')
        PyJsHoisted_onlyChildren_.func_name = u'onlyChildren'
        var.put(u'onlyChildren', PyJsHoisted_onlyChildren_)
        pass
        pass
        var.get(u'predicate').put(u'onlyChildren', var.get(u'onlyChildren'))
        return var.get(u'predicate')
    PyJsHoisted_makePredicate_.func_name = u'makePredicate'
    var.put(u'makePredicate', PyJsHoisted_makePredicate_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1281_ = Js({})
            var.put(u'newObj', PyJs_Object_1281_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.put(u'_assert', var.get(u'require')(Js(u'assert')))
    var.put(u'_assert2', var.get(u'_interopRequireDefault')(var.get(u'_assert')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.put(u'm', var.get(u'require')(Js(u'private')).callprop(u'makeAccessor'))
    var.put(u'hasOwn', var.get(u'Object').get(u'prototype').get(u'hasOwnProperty'))
    pass
    PyJs_Object_1283_ = Js({u'FunctionExpression':var.get(u'true')})
    var.put(u'opaqueTypes', PyJs_Object_1283_)
    PyJs_Object_1284_ = Js({u'CallExpression':var.get(u'true'),u'ForInStatement':var.get(u'true'),u'UnaryExpression':var.get(u'true'),u'BinaryExpression':var.get(u'true'),u'AssignmentExpression':var.get(u'true'),u'UpdateExpression':var.get(u'true'),u'NewExpression':var.get(u'true')})
    var.put(u'sideEffectTypes', PyJs_Object_1284_)
    PyJs_Object_1285_ = Js({u'YieldExpression':var.get(u'true'),u'BreakStatement':var.get(u'true'),u'ContinueStatement':var.get(u'true'),u'ReturnStatement':var.get(u'true'),u'ThrowStatement':var.get(u'true')})
    var.put(u'leapTypes', PyJs_Object_1285_)
    for PyJsTemp in var.get(u'leapTypes'):
        var.put(u'type', PyJsTemp)
        if var.get(u'hasOwn').callprop(u'call', var.get(u'leapTypes'), var.get(u'type')):
            var.get(u'sideEffectTypes').put(var.get(u'type'), var.get(u'leapTypes').get(var.get(u'type')))
    var.get(u'exports').put(u'hasSideEffects', var.get(u'makePredicate')(Js(u'hasSideEffects'), var.get(u'sideEffectTypes')))
    var.get(u'exports').put(u'containsLeap', var.get(u'makePredicate')(Js(u'containsLeap'), var.get(u'leapTypes')))
PyJs_anonymous_1280_._set_name(u'anonymous')
PyJs_Object_1286_ = Js({u'assert':Js(524.0),u'babel-types':Js(258.0),u'private':Js(500.0)})
@Js
def PyJs_anonymous_1287_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'runtimeProperty', u'require', u'_babelTypes', u'module', u't', u'isReference'])
    @Js
    def PyJsHoisted_runtimeProperty_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name'])
        return var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'regeneratorRuntime')), var.get(u't').callprop(u'identifier', var.get(u'name')), Js(False))
    PyJsHoisted_runtimeProperty_.func_name = u'runtimeProperty'
    var.put(u'runtimeProperty', PyJsHoisted_runtimeProperty_)
    @Js
    def PyJsHoisted_isReference_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
        var.registers([u'path'])
        PyJs_Object_1289_ = Js({u'left':var.get(u'path').get(u'node')})
        return (var.get(u'path').callprop(u'isReferenced') or var.get(u'path').get(u'parentPath').callprop(u'isAssignmentExpression', PyJs_Object_1289_))
    PyJsHoisted_isReference_.func_name = u'isReference'
    var.put(u'isReference', PyJsHoisted_isReference_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1288_ = Js({})
            var.put(u'newObj', PyJs_Object_1288_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'runtimeProperty', var.get(u'runtimeProperty'))
    var.get(u'exports').put(u'isReference', var.get(u'isReference'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
PyJs_anonymous_1287_._set_name(u'anonymous')
PyJs_Object_1290_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1291_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'module', u'exports', u'_emit', u'awaitVisitor', u'_interopRequireWildcard', u'_assert2', u'require', u'_babelTypes', u'getMarkInfo', u'_util', u'functionSentVisitor', u'util', u'renameArguments', u'getOuterFnExpr', u't', u'_assert', u'getRuntimeMarkDecl', u'_interopRequireDefault', u'_hoist', u'argumentsVisitor'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1293_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1293_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_getRuntimeMarkDecl_(blockPath, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'blockPath':blockPath}, var)
        var.registers([u'info', u'block', u'blockPath'])
        var.put(u'block', var.get(u'blockPath').get(u'node'))
        var.get(u'_assert2').get(u'default').callprop(u'ok', var.get(u'Array').callprop(u'isArray', var.get(u'block').get(u'body')))
        var.put(u'info', var.get(u'getMarkInfo')(var.get(u'block')))
        if var.get(u'info').get(u'decl'):
            return var.get(u'info').get(u'decl')
        def PyJs_LONG_1300_(var=var):
            return var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'blockPath').get(u'scope').callprop(u'generateUidIdentifier', Js(u'marked')), var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'arrayExpression', Js([])), var.get(u't').callprop(u'identifier', Js(u'map')), Js(False)), Js([var.get(u'util').callprop(u'runtimeProperty', Js(u'mark'))])))]))
        var.get(u'info').put(u'decl', PyJs_LONG_1300_())
        var.get(u'blockPath').callprop(u'unshiftContainer', Js(u'body'), var.get(u'info').get(u'decl'))
        return var.get(u'info').get(u'decl')
    PyJsHoisted_getRuntimeMarkDecl_.func_name = u'getRuntimeMarkDecl'
    var.put(u'getRuntimeMarkDecl', PyJsHoisted_getRuntimeMarkDecl_)
    @Js
    def PyJsHoisted_getOuterFnExpr_(funPath, this, arguments, var=var):
        var = Scope({u'this':this, u'funPath':funPath, u'arguments':arguments}, var)
        var.registers([u'node', u'index', u'pp', u'markedArray', u'funDeclIdArray', u'markDecl', u'funPath'])
        var.put(u'node', var.get(u'funPath').get(u'node'))
        var.get(u't').callprop(u'assertFunction', var.get(u'node'))
        if var.get(u'node').get(u'id').neg():
            var.get(u'node').put(u'id', var.get(u'funPath').get(u'scope').get(u'parent').callprop(u'generateUidIdentifier', Js(u'callee')))
        if (var.get(u'node').get(u'generator') and var.get(u't').callprop(u'isFunctionDeclaration', var.get(u'node'))):
            @Js
            def PyJs_anonymous_1299_(path, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                var.registers([u'path'])
                return (var.get(u'path').callprop(u'isProgram') or var.get(u'path').callprop(u'isBlockStatement'))
            PyJs_anonymous_1299_._set_name(u'anonymous')
            var.put(u'pp', var.get(u'funPath').callprop(u'findParent', PyJs_anonymous_1299_))
            if var.get(u'pp').neg():
                return var.get(u'node').get(u'id')
            var.put(u'markDecl', var.get(u'getRuntimeMarkDecl')(var.get(u'pp')))
            var.put(u'markedArray', var.get(u'markDecl').get(u'declarations').get(u'0').get(u'id'))
            var.put(u'funDeclIdArray', var.get(u'markDecl').get(u'declarations').get(u'0').get(u'init').get(u'callee').get(u'object'))
            var.get(u't').callprop(u'assertArrayExpression', var.get(u'funDeclIdArray'))
            var.put(u'index', var.get(u'funDeclIdArray').get(u'elements').get(u'length'))
            var.get(u'funDeclIdArray').get(u'elements').callprop(u'push', var.get(u'node').get(u'id'))
            return var.get(u't').callprop(u'memberExpression', var.get(u'markedArray'), var.get(u't').callprop(u'numericLiteral', var.get(u'index')), var.get(u'true'))
        return var.get(u'node').get(u'id')
    PyJsHoisted_getOuterFnExpr_.func_name = u'getOuterFnExpr'
    var.put(u'getOuterFnExpr', PyJsHoisted_getOuterFnExpr_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1292_ = Js({})
            var.put(u'newObj', PyJs_Object_1292_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_renameArguments_(funcPath, argsId, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'argsId':argsId, u'funcPath':funcPath}, var)
        var.registers([u'state', u'argsId', u'funcPath'])
        PyJs_Object_1301_ = Js({u'didRenameArguments':Js(False),u'argsId':var.get(u'argsId')})
        var.put(u'state', PyJs_Object_1301_)
        var.get(u'funcPath').callprop(u'traverse', var.get(u'argumentsVisitor'), var.get(u'state'))
        return var.get(u'state').get(u'didRenameArguments')
    PyJsHoisted_renameArguments_.func_name = u'renameArguments'
    var.put(u'renameArguments', PyJsHoisted_renameArguments_)
    Js(u'use strict')
    var.put(u'_assert', var.get(u'require')(Js(u'assert')))
    var.put(u'_assert2', var.get(u'_interopRequireDefault')(var.get(u'_assert')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_hoist', var.get(u'require')(Js(u'./hoist')))
    var.put(u'_emit', var.get(u'require')(Js(u'./emit')))
    var.put(u'_util', var.get(u'require')(Js(u'./util')))
    var.put(u'util', var.get(u'_interopRequireWildcard')(var.get(u'_util')))
    pass
    pass
    var.put(u'getMarkInfo', var.get(u'require')(Js(u'private')).callprop(u'makeAccessor'))
    @Js
    def PyJs_exit_1296_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'exit':PyJs_exit_1296_, u'arguments':arguments}, var)
        var.registers([u'node', u'contextId', u'wrapCall', u'vars', u'state', u'innerFnId', u'didRenameArguments', u'argsId', u'bodyBlockPath', u'outerBody', u'emitter', u'outerFnExpr', u'tryLocsList', u'path', u'wrapArgs', u'innerBody', u'wasGeneratorFunction'])
        var.put(u'node', var.get(u'path').get(u'node'))
        if var.get(u'node').get(u'generator'):
            if var.get(u'node').get(u'async'):
                if PyJsStrictEq(var.get(u'state').get(u'opts').get(u'asyncGenerators'),Js(False)):
                    return var.get('undefined')
            else:
                if PyJsStrictEq(var.get(u'state').get(u'opts').get(u'generators'),Js(False)):
                    return var.get('undefined')
        else:
            if var.get(u'node').get(u'async'):
                if PyJsStrictEq(var.get(u'state').get(u'opts').get(u'async'),Js(False)):
                    return var.get('undefined')
            else:
                return var.get('undefined')
        var.put(u'contextId', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'context')))
        var.put(u'argsId', var.get(u'path').get(u'scope').callprop(u'generateUidIdentifier', Js(u'args')))
        var.get(u'path').callprop(u'ensureBlock')
        var.put(u'bodyBlockPath', var.get(u'path').callprop(u'get', Js(u'body')))
        if var.get(u'node').get(u'async'):
            var.get(u'bodyBlockPath').callprop(u'traverse', var.get(u'awaitVisitor'))
        PyJs_Object_1297_ = Js({u'context':var.get(u'contextId')})
        var.get(u'bodyBlockPath').callprop(u'traverse', var.get(u'functionSentVisitor'), PyJs_Object_1297_)
        var.put(u'outerBody', Js([]))
        var.put(u'innerBody', Js([]))
        @Js
        def PyJs_anonymous_1298_(childPath, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'childPath':childPath}, var)
            var.registers([u'node', u'childPath'])
            var.put(u'node', var.get(u'childPath').get(u'node'))
            if (var.get(u'node') and (var.get(u'node').get(u'_blockHoist')!=var.get(u"null"))):
                var.get(u'outerBody').callprop(u'push', var.get(u'node'))
            else:
                var.get(u'innerBody').callprop(u'push', var.get(u'node'))
        PyJs_anonymous_1298_._set_name(u'anonymous')
        var.get(u'bodyBlockPath').callprop(u'get', Js(u'body')).callprop(u'forEach', PyJs_anonymous_1298_)
        if (var.get(u'outerBody').get(u'length')>Js(0.0)):
            var.get(u'bodyBlockPath').get(u'node').put(u'body', var.get(u'innerBody'))
        var.put(u'outerFnExpr', var.get(u'getOuterFnExpr')(var.get(u'path')))
        var.get(u't').callprop(u'assertIdentifier', var.get(u'node').get(u'id'))
        var.put(u'innerFnId', var.get(u't').callprop(u'identifier', (var.get(u'node').get(u'id').get(u'name')+Js(u'$'))))
        var.put(u'vars', PyJsComma(Js(0.0),var.get(u'_hoist').get(u'hoist'))(var.get(u'path')))
        var.put(u'didRenameArguments', var.get(u'renameArguments')(var.get(u'path'), var.get(u'argsId')))
        if var.get(u'didRenameArguments'):
            var.put(u'vars', (var.get(u'vars') or var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([]))))
            var.get(u'vars').get(u'declarations').callprop(u'push', var.get(u't').callprop(u'variableDeclarator', var.get(u'argsId'), var.get(u't').callprop(u'identifier', Js(u'arguments'))))
        var.put(u'emitter', var.get(u'_emit').get(u'Emitter').create(var.get(u'contextId')))
        var.get(u'emitter').callprop(u'explode', var.get(u'path').callprop(u'get', Js(u'body')))
        if (var.get(u'vars') and (var.get(u'vars').get(u'declarations').get(u'length')>Js(0.0))):
            var.get(u'outerBody').callprop(u'push', var.get(u'vars'))
        var.put(u'wrapArgs', Js([var.get(u'emitter').callprop(u'getContextFunction', var.get(u'innerFnId')), (var.get(u'outerFnExpr') if var.get(u'node').get(u'generator') else var.get(u't').callprop(u'nullLiteral')), var.get(u't').callprop(u'thisExpression')]))
        var.put(u'tryLocsList', var.get(u'emitter').callprop(u'getTryLocsList'))
        if var.get(u'tryLocsList'):
            var.get(u'wrapArgs').callprop(u'push', var.get(u'tryLocsList'))
        var.put(u'wrapCall', var.get(u't').callprop(u'callExpression', var.get(u'util').callprop(u'runtimeProperty', (Js(u'async') if var.get(u'node').get(u'async') else Js(u'wrap'))), var.get(u'wrapArgs')))
        var.get(u'outerBody').callprop(u'push', var.get(u't').callprop(u'returnStatement', var.get(u'wrapCall')))
        var.get(u'node').put(u'body', var.get(u't').callprop(u'blockStatement', var.get(u'outerBody')))
        var.put(u'wasGeneratorFunction', var.get(u'node').get(u'generator'))
        if var.get(u'wasGeneratorFunction'):
            var.get(u'node').put(u'generator', Js(False))
        if var.get(u'node').get(u'async'):
            var.get(u'node').put(u'async', Js(False))
        if (var.get(u'wasGeneratorFunction') and var.get(u't').callprop(u'isExpression', var.get(u'node'))):
            var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'callExpression', var.get(u'util').callprop(u'runtimeProperty', Js(u'mark')), Js([var.get(u'node')])))
        var.get(u'path').callprop(u'requeue')
    PyJs_exit_1296_._set_name(u'exit')
    PyJs_Object_1295_ = Js({u'exit':PyJs_exit_1296_})
    PyJs_Object_1294_ = Js({u'Function':PyJs_Object_1295_})
    var.get(u'exports').put(u'visitor', PyJs_Object_1294_)
    pass
    pass
    pass
    @Js
    def PyJs_FunctionExpressionFunctionDeclaration_1303_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'FunctionExpressionFunctionDeclaration':PyJs_FunctionExpressionFunctionDeclaration_1303_}, var)
        var.registers([u'path'])
        var.get(u'path').callprop(u'skip')
    PyJs_FunctionExpressionFunctionDeclaration_1303_._set_name(u'FunctionExpressionFunctionDeclaration')
    @Js
    def PyJs_Identifier_1304_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'Identifier':PyJs_Identifier_1304_, u'arguments':arguments}, var)
        var.registers([u'path', u'state'])
        if (PyJsStrictEq(var.get(u'path').get(u'node').get(u'name'),Js(u'arguments')) and var.get(u'util').callprop(u'isReference', var.get(u'path'))):
            var.get(u'path').callprop(u'replaceWith', var.get(u'state').get(u'argsId'))
            var.get(u'state').put(u'didRenameArguments', var.get(u'true'))
    PyJs_Identifier_1304_._set_name(u'Identifier')
    PyJs_Object_1302_ = Js({u'FunctionExpression|FunctionDeclaration':PyJs_FunctionExpressionFunctionDeclaration_1303_,u'Identifier':PyJs_Identifier_1304_})
    var.put(u'argumentsVisitor', PyJs_Object_1302_)
    @Js
    def PyJs_MetaProperty_1306_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'MetaProperty':PyJs_MetaProperty_1306_, u'arguments':arguments}, var)
        var.registers([u'node', u'path'])
        var.put(u'node', var.get(u'path').get(u'node'))
        if (PyJsStrictEq(var.get(u'node').get(u'meta').get(u'name'),Js(u'function')) and PyJsStrictEq(var.get(u'node').get(u'property').get(u'name'),Js(u'sent'))):
            var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'memberExpression', var.get(u"this").get(u'context'), var.get(u't').callprop(u'identifier', Js(u'_sent'))))
    PyJs_MetaProperty_1306_._set_name(u'MetaProperty')
    PyJs_Object_1305_ = Js({u'MetaProperty':PyJs_MetaProperty_1306_})
    var.put(u'functionSentVisitor', PyJs_Object_1305_)
    @Js
    def PyJs_Function_1308_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'Function':PyJs_Function_1308_, u'arguments':arguments}, var)
        var.registers([u'path'])
        var.get(u'path').callprop(u'skip')
    PyJs_Function_1308_._set_name(u'Function')
    @Js
    def PyJs_AwaitExpression_1309_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'AwaitExpression':PyJs_AwaitExpression_1309_}, var)
        var.registers([u'path', u'argument'])
        var.put(u'argument', var.get(u'path').get(u'node').get(u'argument'))
        var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'yieldExpression', var.get(u't').callprop(u'callExpression', var.get(u'util').callprop(u'runtimeProperty', Js(u'awrap')), Js([var.get(u'argument')])), Js(False)))
    PyJs_AwaitExpression_1309_._set_name(u'AwaitExpression')
    PyJs_Object_1307_ = Js({u'Function':PyJs_Function_1308_,u'AwaitExpression':PyJs_AwaitExpression_1309_})
    var.put(u'awaitVisitor', PyJs_Object_1307_)
PyJs_anonymous_1291_._set_name(u'anonymous')
PyJs_Object_1310_ = Js({u'./emit':Js(87.0),u'./hoist':Js(88.0),u'./util':Js(92.0),u'assert':Js(524.0),u'babel-types':Js(258.0),u'private':Js(500.0)})
@Js
def PyJs_anonymous_1311_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'require', u'_babelTypes', u'module', u't', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1317_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1317_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1316_ = Js({})
            var.put(u'newObj', PyJs_Object_1316_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    @Js
    def PyJs_anonymous_1312_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_Program_1315_(path, state, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'state':state, u'Program':PyJs_Program_1315_, u'arguments':arguments}, var)
            var.registers([u'node', u'_isArray', u'_iterator', u'directive', u'state', u'_i', u'path', u'_ref'])
            if (PyJsStrictEq(var.get(u'state').get(u'opts').get(u'strict'),Js(False)) or PyJsStrictEq(var.get(u'state').get(u'opts').get(u'strictMode'),Js(False))):
                return var.get('undefined')
            var.put(u'node', var.get(u'path').get(u'node'))
            #for JS loop
            var.put(u'_iterator', var.get(u'node').get(u'directives'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'directive', var.get(u'_ref'))
                if PyJsStrictEq(var.get(u'directive').get(u'value').get(u'value'),Js(u'use strict')):
                    return var.get('undefined')
            
            var.get(u'path').callprop(u'unshiftContainer', Js(u'directives'), var.get(u't').callprop(u'directive', var.get(u't').callprop(u'directiveLiteral', Js(u'use strict'))))
        PyJs_Program_1315_._set_name(u'Program')
        PyJs_Object_1314_ = Js({u'Program':PyJs_Program_1315_})
        PyJs_Object_1313_ = Js({u'visitor':PyJs_Object_1314_})
        return PyJs_Object_1313_
    PyJs_anonymous_1312_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1312_)
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1311_._set_name(u'anonymous')
PyJs_Object_1318_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1319_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_babelPluginTransformEs2015ModulesCommonjs', u'_babelPluginTransformEs2015ComputedProperties', u'_babelPluginTransformEs2015BlockScopedFunctions2', u'_babelPluginTransformEs2015ForOf2', u'_babelPluginTransformEs2015ModulesUmd', u'_babelPluginTransformEs2015ArrowFunctions', u'_babelPluginTransformEs2015TypeofSymbol', u'exports', u'module', u'_interopRequireDefault', u'_babelPluginTransformEs2015ForOf', u'_babelPluginTransformEs2015BlockScoping', u'_babelPluginTransformEs2015Parameters2', u'_babelPluginTransformEs2015TemplateLiterals', u'_babelPluginTransformEs2015ComputedProperties2', u'_babelPluginTransformEs2015Spread', u'_babelPluginCheckEs2015Constants', u'_babelPluginTransformEs2015Destructuring', u'_babelPluginTransformEs2015DuplicateKeys2', u'_babelPluginTransformEs2015ModulesCommonjs2', u'_babelPluginTransformEs2015TemplateLiterals2', u'_babelPluginTransformEs2015Parameters', u'_babelPluginCheckEs2015Constants2', u'_babelPluginTransformEs2015StickyRegex2', u'_babelPluginTransformEs2015BlockScopedFunctions', u'_babelPluginTransformEs2015ShorthandProperties2', u'_babelPluginTransformRegenerator', u'_babelPluginTransformEs2015ModulesSystemjs', u'_babelPluginTransformEs2015DuplicateKeys', u'_babelPluginTransformEs2015ModulesAmd2', u'_babelPluginTransformEs2015FunctionName', u'_babelPluginTransformEs2015ObjectSuper2', u'_babelPluginTransformEs2015Destructuring2', u'_babelPluginTransformEs2015ShorthandProperties', u'_babelPluginTransformEs2015StickyRegex', u'_babelPluginTransformEs2015ModulesAmd', u'_babelPluginTransformEs2015ModulesUmd2', u'_babelPluginTransformEs2015Classes2', u'preset', u'_babelPluginTransformEs2015ObjectSuper', u'_babelPluginTransformEs2015TypeofSymbol2', u'_babelPluginTransformEs2015UnicodeRegex', u'_babelPluginTransformEs2015Classes', u'_babelPluginTransformEs2015Literals2', u'_babelPluginTransformEs2015ModulesSystemjs2', u'_babelPluginTransformEs2015Literals', u'_babelPluginTransformEs2015UnicodeRegex2', u'_babelPluginTransformEs2015FunctionName2', u'_babelPluginTransformEs2015BlockScoping2', u'_babelPluginTransformRegenerator2', u'oldConfig', u'_babelPluginTransformEs2015Spread2', u'require', u'_babelPluginTransformEs2015ArrowFunctions2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1320_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1320_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_preset_(context, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'context':context}, var)
        var.registers([u'optsLoose', u'moduleTypes', u'loose', u'modules', u'context', u'spec', u'opts'])
        PyJs_Object_1321_ = Js({})
        var.put(u'opts', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else PyJs_Object_1321_))
        var.put(u'moduleTypes', Js([Js(u'commonjs'), Js(u'amd'), Js(u'umd'), Js(u'systemjs')]))
        var.put(u'loose', Js(False))
        var.put(u'modules', Js(u'commonjs'))
        var.put(u'spec', Js(False))
        if PyJsStrictNeq(var.get(u'opts'),var.get(u'undefined')):
            if PyJsStrictNeq(var.get(u'opts').get(u'loose'),var.get(u'undefined')):
                var.put(u'loose', var.get(u'opts').get(u'loose'))
            if PyJsStrictNeq(var.get(u'opts').get(u'modules'),var.get(u'undefined')):
                var.put(u'modules', var.get(u'opts').get(u'modules'))
            if PyJsStrictNeq(var.get(u'opts').get(u'spec'),var.get(u'undefined')):
                var.put(u'spec', var.get(u'opts').get(u'spec'))
        if PyJsStrictNeq(var.get(u'loose',throw=False).typeof(),Js(u'boolean')):
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"Preset es2015 'loose' option must be a boolean.")))
            raise PyJsTempException
        if PyJsStrictNeq(var.get(u'spec',throw=False).typeof(),Js(u'boolean')):
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"Preset es2015 'spec' option must be a boolean.")))
            raise PyJsTempException
        if (PyJsStrictNeq(var.get(u'modules'),Js(False)) and PyJsStrictEq(var.get(u'moduleTypes').callprop(u'indexOf', var.get(u'modules')),(-Js(1.0)))):
            PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u"Preset es2015 'modules' option must be 'false' to indicate no modules\n")+Js(u"or a module type which be be one of: 'commonjs' (default), 'amd', 'umd', 'systemjs'"))))
            raise PyJsTempException
        PyJs_Object_1322_ = Js({u'loose':var.get(u'loose')})
        var.put(u'optsLoose', PyJs_Object_1322_)
        def PyJs_LONG_1327_(var=var):
            PyJs_Object_1324_ = Js({u'loose':var.get(u'loose'),u'spec':var.get(u'spec')})
            PyJs_Object_1325_ = Js({u'spec':var.get(u'spec')})
            PyJs_Object_1326_ = Js({u'async':Js(False),u'asyncGenerators':Js(False)})
            return Js([Js([var.get(u'_babelPluginTransformEs2015TemplateLiterals2').get(u'default'), PyJs_Object_1324_]), var.get(u'_babelPluginTransformEs2015Literals2').get(u'default'), var.get(u'_babelPluginTransformEs2015FunctionName2').get(u'default'), Js([var.get(u'_babelPluginTransformEs2015ArrowFunctions2').get(u'default'), PyJs_Object_1325_]), var.get(u'_babelPluginTransformEs2015BlockScopedFunctions2').get(u'default'), Js([var.get(u'_babelPluginTransformEs2015Classes2').get(u'default'), var.get(u'optsLoose')]), var.get(u'_babelPluginTransformEs2015ObjectSuper2').get(u'default'), var.get(u'_babelPluginTransformEs2015ShorthandProperties2').get(u'default'), var.get(u'_babelPluginTransformEs2015DuplicateKeys2').get(u'default'), Js([var.get(u'_babelPluginTransformEs2015ComputedProperties2').get(u'default'), var.get(u'optsLoose')]), Js([var.get(u'_babelPluginTransformEs2015ForOf2').get(u'default'), var.get(u'optsLoose')]), var.get(u'_babelPluginTransformEs2015StickyRegex2').get(u'default'), var.get(u'_babelPluginTransformEs2015UnicodeRegex2').get(u'default'), var.get(u'_babelPluginCheckEs2015Constants2').get(u'default'), Js([var.get(u'_babelPluginTransformEs2015Spread2').get(u'default'), var.get(u'optsLoose')]), var.get(u'_babelPluginTransformEs2015Parameters2').get(u'default'), Js([var.get(u'_babelPluginTransformEs2015Destructuring2').get(u'default'), var.get(u'optsLoose')]), var.get(u'_babelPluginTransformEs2015BlockScoping2').get(u'default'), var.get(u'_babelPluginTransformEs2015TypeofSymbol2').get(u'default'), (PyJsStrictEq(var.get(u'modules'),Js(u'commonjs')) and Js([var.get(u'_babelPluginTransformEs2015ModulesCommonjs2').get(u'default'), var.get(u'optsLoose')])), (PyJsStrictEq(var.get(u'modules'),Js(u'systemjs')) and Js([var.get(u'_babelPluginTransformEs2015ModulesSystemjs2').get(u'default'), var.get(u'optsLoose')])), (PyJsStrictEq(var.get(u'modules'),Js(u'amd')) and Js([var.get(u'_babelPluginTransformEs2015ModulesAmd2').get(u'default'), var.get(u'optsLoose')])), (PyJsStrictEq(var.get(u'modules'),Js(u'umd')) and Js([var.get(u'_babelPluginTransformEs2015ModulesUmd2').get(u'default'), var.get(u'optsLoose')])), Js([var.get(u'_babelPluginTransformRegenerator2').get(u'default'), PyJs_Object_1326_])]).callprop(u'filter', var.get(u'Boolean'))
        PyJs_Object_1323_ = Js({u'plugins':PyJs_LONG_1327_()})
        return PyJs_Object_1323_
    PyJsHoisted_preset_.func_name = u'preset'
    var.put(u'preset', PyJsHoisted_preset_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_babelPluginTransformEs2015TemplateLiterals', var.get(u'require')(Js(u'babel-plugin-transform-es2015-template-literals')))
    var.put(u'_babelPluginTransformEs2015TemplateLiterals2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015TemplateLiterals')))
    var.put(u'_babelPluginTransformEs2015Literals', var.get(u'require')(Js(u'babel-plugin-transform-es2015-literals')))
    var.put(u'_babelPluginTransformEs2015Literals2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015Literals')))
    var.put(u'_babelPluginTransformEs2015FunctionName', var.get(u'require')(Js(u'babel-plugin-transform-es2015-function-name')))
    var.put(u'_babelPluginTransformEs2015FunctionName2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015FunctionName')))
    var.put(u'_babelPluginTransformEs2015ArrowFunctions', var.get(u'require')(Js(u'babel-plugin-transform-es2015-arrow-functions')))
    var.put(u'_babelPluginTransformEs2015ArrowFunctions2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015ArrowFunctions')))
    var.put(u'_babelPluginTransformEs2015BlockScopedFunctions', var.get(u'require')(Js(u'babel-plugin-transform-es2015-block-scoped-functions')))
    var.put(u'_babelPluginTransformEs2015BlockScopedFunctions2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015BlockScopedFunctions')))
    var.put(u'_babelPluginTransformEs2015Classes', var.get(u'require')(Js(u'babel-plugin-transform-es2015-classes')))
    var.put(u'_babelPluginTransformEs2015Classes2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015Classes')))
    var.put(u'_babelPluginTransformEs2015ObjectSuper', var.get(u'require')(Js(u'babel-plugin-transform-es2015-object-super')))
    var.put(u'_babelPluginTransformEs2015ObjectSuper2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015ObjectSuper')))
    var.put(u'_babelPluginTransformEs2015ShorthandProperties', var.get(u'require')(Js(u'babel-plugin-transform-es2015-shorthand-properties')))
    var.put(u'_babelPluginTransformEs2015ShorthandProperties2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015ShorthandProperties')))
    var.put(u'_babelPluginTransformEs2015DuplicateKeys', var.get(u'require')(Js(u'babel-plugin-transform-es2015-duplicate-keys')))
    var.put(u'_babelPluginTransformEs2015DuplicateKeys2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015DuplicateKeys')))
    var.put(u'_babelPluginTransformEs2015ComputedProperties', var.get(u'require')(Js(u'babel-plugin-transform-es2015-computed-properties')))
    var.put(u'_babelPluginTransformEs2015ComputedProperties2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015ComputedProperties')))
    var.put(u'_babelPluginTransformEs2015ForOf', var.get(u'require')(Js(u'babel-plugin-transform-es2015-for-of')))
    var.put(u'_babelPluginTransformEs2015ForOf2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015ForOf')))
    var.put(u'_babelPluginTransformEs2015StickyRegex', var.get(u'require')(Js(u'babel-plugin-transform-es2015-sticky-regex')))
    var.put(u'_babelPluginTransformEs2015StickyRegex2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015StickyRegex')))
    var.put(u'_babelPluginTransformEs2015UnicodeRegex', var.get(u'require')(Js(u'babel-plugin-transform-es2015-unicode-regex')))
    var.put(u'_babelPluginTransformEs2015UnicodeRegex2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015UnicodeRegex')))
    var.put(u'_babelPluginCheckEs2015Constants', var.get(u'require')(Js(u'babel-plugin-check-es2015-constants')))
    var.put(u'_babelPluginCheckEs2015Constants2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginCheckEs2015Constants')))
    var.put(u'_babelPluginTransformEs2015Spread', var.get(u'require')(Js(u'babel-plugin-transform-es2015-spread')))
    var.put(u'_babelPluginTransformEs2015Spread2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015Spread')))
    var.put(u'_babelPluginTransformEs2015Parameters', var.get(u'require')(Js(u'babel-plugin-transform-es2015-parameters')))
    var.put(u'_babelPluginTransformEs2015Parameters2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015Parameters')))
    var.put(u'_babelPluginTransformEs2015Destructuring', var.get(u'require')(Js(u'babel-plugin-transform-es2015-destructuring')))
    var.put(u'_babelPluginTransformEs2015Destructuring2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015Destructuring')))
    var.put(u'_babelPluginTransformEs2015BlockScoping', var.get(u'require')(Js(u'babel-plugin-transform-es2015-block-scoping')))
    var.put(u'_babelPluginTransformEs2015BlockScoping2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015BlockScoping')))
    var.put(u'_babelPluginTransformEs2015TypeofSymbol', var.get(u'require')(Js(u'babel-plugin-transform-es2015-typeof-symbol')))
    var.put(u'_babelPluginTransformEs2015TypeofSymbol2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015TypeofSymbol')))
    var.put(u'_babelPluginTransformEs2015ModulesCommonjs', var.get(u'require')(Js(u'babel-plugin-transform-es2015-modules-commonjs')))
    var.put(u'_babelPluginTransformEs2015ModulesCommonjs2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015ModulesCommonjs')))
    var.put(u'_babelPluginTransformEs2015ModulesSystemjs', var.get(u'require')(Js(u'babel-plugin-transform-es2015-modules-systemjs')))
    var.put(u'_babelPluginTransformEs2015ModulesSystemjs2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015ModulesSystemjs')))
    var.put(u'_babelPluginTransformEs2015ModulesAmd', var.get(u'require')(Js(u'babel-plugin-transform-es2015-modules-amd')))
    var.put(u'_babelPluginTransformEs2015ModulesAmd2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015ModulesAmd')))
    var.put(u'_babelPluginTransformEs2015ModulesUmd', var.get(u'require')(Js(u'babel-plugin-transform-es2015-modules-umd')))
    var.put(u'_babelPluginTransformEs2015ModulesUmd2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformEs2015ModulesUmd')))
    var.put(u'_babelPluginTransformRegenerator', var.get(u'require')(Js(u'babel-plugin-transform-regenerator')))
    var.put(u'_babelPluginTransformRegenerator2', var.get(u'_interopRequireDefault')(var.get(u'_babelPluginTransformRegenerator')))
    pass
    pass
    PyJs_Object_1328_ = Js({})
    var.put(u'oldConfig', var.get(u'preset')(PyJs_Object_1328_))
    var.get(u'exports').put(u'default', var.get(u'oldConfig'))
    PyJs_Object_1329_ = Js({u'configurable':var.get(u'true'),u'writable':var.get(u'true'),u'enumerable':Js(False),u'value':var.get(u'preset')})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'oldConfig'), Js(u'buildPreset'), PyJs_Object_1329_)
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1319_._set_name(u'anonymous')
PyJs_Object_1330_ = Js({u'babel-plugin-check-es2015-constants':Js(58.0),u'babel-plugin-transform-es2015-arrow-functions':Js(59.0),u'babel-plugin-transform-es2015-block-scoped-functions':Js(60.0),u'babel-plugin-transform-es2015-block-scoping':Js(61.0),u'babel-plugin-transform-es2015-classes':Js(63.0),u'babel-plugin-transform-es2015-computed-properties':Js(66.0),u'babel-plugin-transform-es2015-destructuring':Js(67.0),u'babel-plugin-transform-es2015-duplicate-keys':Js(68.0),u'babel-plugin-transform-es2015-for-of':Js(69.0),u'babel-plugin-transform-es2015-function-name':Js(70.0),u'babel-plugin-transform-es2015-literals':Js(71.0),u'babel-plugin-transform-es2015-modules-amd':Js(72.0),u'babel-plugin-transform-es2015-modules-commonjs':Js(73.0),u'babel-plugin-transform-es2015-modules-systemjs':Js(74.0),u'babel-plugin-transform-es2015-modules-umd':Js(75.0),u'babel-plugin-transform-es2015-object-super':Js(76.0),u'babel-plugin-transform-es2015-parameters':Js(79.0),u'babel-plugin-transform-es2015-shorthand-properties':Js(81.0),u'babel-plugin-transform-es2015-spread':Js(82.0),u'babel-plugin-transform-es2015-sticky-regex':Js(83.0),u'babel-plugin-transform-es2015-template-literals':Js(84.0),u'babel-plugin-transform-es2015-typeof-symbol':Js(85.0),u'babel-plugin-transform-es2015-unicode-regex':Js(86.0),u'babel-plugin-transform-regenerator':Js(89.0)})
@Js
def PyJs_anonymous_1331_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1332_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/get-iterator')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1332_)
PyJs_anonymous_1331_._set_name(u'anonymous')
PyJs_Object_1333_ = Js({u'core-js/library/fn/get-iterator':Js(115.0)})
@Js
def PyJs_anonymous_1334_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1335_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/json/stringify')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1335_)
PyJs_anonymous_1334_._set_name(u'anonymous')
PyJs_Object_1336_ = Js({u'core-js/library/fn/json/stringify':Js(116.0)})
@Js
def PyJs_anonymous_1337_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1338_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/map')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1338_)
PyJs_anonymous_1337_._set_name(u'anonymous')
PyJs_Object_1339_ = Js({u'core-js/library/fn/map':Js(117.0)})
@Js
def PyJs_anonymous_1340_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1341_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/number/max-safe-integer')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1341_)
PyJs_anonymous_1340_._set_name(u'anonymous')
PyJs_Object_1342_ = Js({u'core-js/library/fn/number/max-safe-integer':Js(118.0)})
@Js
def PyJs_anonymous_1343_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1344_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/object/assign')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1344_)
PyJs_anonymous_1343_._set_name(u'anonymous')
PyJs_Object_1345_ = Js({u'core-js/library/fn/object/assign':Js(119.0)})
@Js
def PyJs_anonymous_1346_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1347_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/object/create')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1347_)
PyJs_anonymous_1346_._set_name(u'anonymous')
PyJs_Object_1348_ = Js({u'core-js/library/fn/object/create':Js(120.0)})
@Js
def PyJs_anonymous_1349_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1350_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/object/get-own-property-symbols')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1350_)
PyJs_anonymous_1349_._set_name(u'anonymous')
PyJs_Object_1351_ = Js({u'core-js/library/fn/object/get-own-property-symbols':Js(121.0)})
@Js
def PyJs_anonymous_1352_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1353_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/object/keys')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1353_)
PyJs_anonymous_1352_._set_name(u'anonymous')
PyJs_Object_1354_ = Js({u'core-js/library/fn/object/keys':Js(122.0)})
@Js
def PyJs_anonymous_1355_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1356_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/object/set-prototype-of')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1356_)
PyJs_anonymous_1355_._set_name(u'anonymous')
PyJs_Object_1357_ = Js({u'core-js/library/fn/object/set-prototype-of':Js(123.0)})
@Js
def PyJs_anonymous_1358_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1359_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/symbol')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1359_)
PyJs_anonymous_1358_._set_name(u'anonymous')
PyJs_Object_1360_ = Js({u'core-js/library/fn/symbol':Js(125.0)})
@Js
def PyJs_anonymous_1361_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1362_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/symbol/for')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1362_)
PyJs_anonymous_1361_._set_name(u'anonymous')
PyJs_Object_1363_ = Js({u'core-js/library/fn/symbol/for':Js(124.0)})
@Js
def PyJs_anonymous_1364_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1365_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/symbol/iterator')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1365_)
PyJs_anonymous_1364_._set_name(u'anonymous')
PyJs_Object_1366_ = Js({u'core-js/library/fn/symbol/iterator':Js(126.0)})
@Js
def PyJs_anonymous_1367_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1368_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/weak-map')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1368_)
PyJs_anonymous_1367_._set_name(u'anonymous')
PyJs_Object_1369_ = Js({u'core-js/library/fn/weak-map':Js(127.0)})
@Js
def PyJs_anonymous_1370_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1371_ = Js({u'default':var.get(u'require')(Js(u'core-js/library/fn/weak-set')),u'__esModule':var.get(u'true')})
    var.get(u'module').put(u'exports', PyJs_Object_1371_)
PyJs_anonymous_1370_._set_name(u'anonymous')
PyJs_Object_1372_ = Js({u'core-js/library/fn/weak-set':Js(128.0)})
@Js
def PyJs_anonymous_1373_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_1374_(instance, Constructor, this, arguments, var=var):
        var = Scope({u'this':this, u'instance':instance, u'arguments':arguments, u'Constructor':Constructor}, var)
        var.registers([u'instance', u'Constructor'])
        if var.get(u'instance').instanceof(var.get(u'Constructor')).neg():
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Cannot call a class as a function')))
            raise PyJsTempException
    PyJs_anonymous_1374_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1374_)
PyJs_anonymous_1373_._set_name(u'anonymous')
PyJs_Object_1375_ = Js({})
@Js
def PyJs_anonymous_1376_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_create', u'_typeof2', u'_typeof3', u'_setPrototypeOf', u'require', u'exports', u'module', u'_create2', u'_setPrototypeOf2', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1377_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1377_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_setPrototypeOf', var.get(u'require')(Js(u'../core-js/object/set-prototype-of')))
    var.put(u'_setPrototypeOf2', var.get(u'_interopRequireDefault')(var.get(u'_setPrototypeOf')))
    var.put(u'_create', var.get(u'require')(Js(u'../core-js/object/create')))
    var.put(u'_create2', var.get(u'_interopRequireDefault')(var.get(u'_create')))
    var.put(u'_typeof2', var.get(u'require')(Js(u'../helpers/typeof')))
    var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
    pass
    @Js
    def PyJs_anonymous_1378_(subClass, superClass, this, arguments, var=var):
        var = Scope({u'this':this, u'superClass':superClass, u'subClass':subClass, u'arguments':arguments}, var)
        var.registers([u'superClass', u'subClass'])
        if (PyJsStrictNeq(var.get(u'superClass',throw=False).typeof(),Js(u'function')) and PyJsStrictNeq(var.get(u'superClass'),var.get(u"null"))):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create((Js(u'Super expression must either be null or a function, not ')+(Js(u'undefined') if PyJsStrictEq(var.get(u'superClass',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'superClass'))))))
            raise PyJsTempException
        PyJs_Object_1380_ = Js({u'value':var.get(u'subClass'),u'enumerable':Js(False),u'writable':var.get(u'true'),u'configurable':var.get(u'true')})
        PyJs_Object_1379_ = Js({u'constructor':PyJs_Object_1380_})
        var.get(u'subClass').put(u'prototype', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))((var.get(u'superClass') and var.get(u'superClass').get(u'prototype')), PyJs_Object_1379_))
        if var.get(u'superClass'):
            (PyJsComma(Js(0.0),var.get(u'_setPrototypeOf2').get(u'default'))(var.get(u'subClass'), var.get(u'superClass')) if var.get(u'_setPrototypeOf2').get(u'default') else var.get(u'subClass').put(u'__proto__', var.get(u'superClass')))
    PyJs_anonymous_1378_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1378_)
PyJs_anonymous_1376_._set_name(u'anonymous')
PyJs_Object_1381_ = Js({u'../core-js/object/create':Js(101.0),u'../core-js/object/set-prototype-of':Js(104.0),u'../helpers/typeof':Js(114.0)})
@Js
def PyJs_anonymous_1382_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_1383_(obj, keys, this, arguments, var=var):
        var = Scope({u'keys':keys, u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'i', u'keys', u'obj', u'target'])
        PyJs_Object_1384_ = Js({})
        var.put(u'target', PyJs_Object_1384_)
        for PyJsTemp in var.get(u'obj'):
            var.put(u'i', PyJsTemp)
            if (var.get(u'keys').callprop(u'indexOf', var.get(u'i'))>=Js(0.0)):
                continue
            if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'i')).neg():
                continue
            var.get(u'target').put(var.get(u'i'), var.get(u'obj').get(var.get(u'i')))
        return var.get(u'target')
    PyJs_anonymous_1383_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1383_)
PyJs_anonymous_1382_._set_name(u'anonymous')
PyJs_Object_1385_ = Js({})
@Js
def PyJs_anonymous_1386_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_typeof2', u'_typeof3', u'require', u'exports', u'module', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1387_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1387_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_typeof2', var.get(u'require')(Js(u'../helpers/typeof')))
    var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
    pass
    @Js
    def PyJs_anonymous_1388_(self, call, this, arguments, var=var):
        var = Scope({u'this':this, u'self':self, u'call':call, u'arguments':arguments}, var)
        var.registers([u'self', u'call'])
        if var.get(u'self').neg():
            PyJsTempException = JsToPyException(var.get(u'ReferenceError').create(Js(u"this hasn't been initialised - super() hasn't been called")))
            raise PyJsTempException
        return (var.get(u'call') if (var.get(u'call') and (PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'call',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'call'))),Js(u'object')) or PyJsStrictEq(var.get(u'call',throw=False).typeof(),Js(u'function')))) else var.get(u'self'))
    PyJs_anonymous_1388_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1388_)
PyJs_anonymous_1386_._set_name(u'anonymous')
PyJs_Object_1389_ = Js({u'../helpers/typeof':Js(114.0)})
@Js
def PyJs_anonymous_1390_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_symbol2', u'_iterator', u'require', u'module', u'_typeof', u'_symbol', u'_interopRequireDefault', u'_iterator2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1393_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1393_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_iterator', var.get(u'require')(Js(u'../core-js/symbol/iterator')))
    var.put(u'_iterator2', var.get(u'_interopRequireDefault')(var.get(u'_iterator')))
    var.put(u'_symbol', var.get(u'require')(Js(u'../core-js/symbol')))
    var.put(u'_symbol2', var.get(u'_interopRequireDefault')(var.get(u'_symbol')))
    @Js
    def PyJs_anonymous_1391_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        return var.get(u'obj',throw=False).typeof()
    PyJs_anonymous_1391_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1392_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        return (Js(u'symbol') if (((var.get(u'obj') and PyJsStrictEq(var.get(u'_symbol2').get(u'default').typeof(),Js(u'function'))) and PyJsStrictEq(var.get(u'obj').get(u'constructor'),var.get(u'_symbol2').get(u'default'))) and PyJsStrictNeq(var.get(u'obj'),var.get(u'_symbol2').get(u'default').get(u'prototype'))) else var.get(u'obj',throw=False).typeof())
    PyJs_anonymous_1392_._set_name(u'anonymous')
    var.put(u'_typeof', (PyJs_anonymous_1391_ if (PyJsStrictEq(var.get(u'_symbol2').get(u'default').typeof(),Js(u'function')) and PyJsStrictEq(var.get(u'_iterator2').get(u'default').typeof(),Js(u'symbol'))) else PyJs_anonymous_1392_))
    pass
    @Js
    def PyJs_anonymous_1394_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        return (Js(u'undefined') if PyJsStrictEq(var.get(u'obj',throw=False).typeof(),Js(u'undefined')) else var.get(u'_typeof')(var.get(u'obj')))
    PyJs_anonymous_1394_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1395_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        def PyJs_LONG_1396_(var=var):
            return (Js(u'symbol') if (((var.get(u'obj') and PyJsStrictEq(var.get(u'_symbol2').get(u'default').typeof(),Js(u'function'))) and PyJsStrictEq(var.get(u'obj').get(u'constructor'),var.get(u'_symbol2').get(u'default'))) and PyJsStrictNeq(var.get(u'obj'),var.get(u'_symbol2').get(u'default').get(u'prototype'))) else (Js(u'undefined') if PyJsStrictEq(var.get(u'obj',throw=False).typeof(),Js(u'undefined')) else var.get(u'_typeof')(var.get(u'obj'))))
        return PyJs_LONG_1396_()
    PyJs_anonymous_1395_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', (PyJs_anonymous_1394_ if (PyJsStrictEq(var.get(u'_symbol2').get(u'default').typeof(),Js(u'function')) and PyJsStrictEq(var.get(u'_typeof')(var.get(u'_iterator2').get(u'default')),Js(u'symbol'))) else PyJs_anonymous_1395_))
PyJs_anonymous_1390_._set_name(u'anonymous')
PyJs_Object_1397_ = Js({u'../core-js/symbol':Js(105.0),u'../core-js/symbol/iterator':Js(107.0)})
@Js
def PyJs_anonymous_1398_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../modules/web.dom.iterable'))
    var.get(u'require')(Js(u'../modules/es6.string.iterator'))
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'../modules/core.get-iterator')))
PyJs_anonymous_1398_._set_name(u'anonymous')
PyJs_Object_1399_ = Js({u'../modules/core.get-iterator':Js(204.0),u'../modules/es6.string.iterator':Js(213.0),u'../modules/web.dom.iterable':Js(220.0)})
@Js
def PyJs_anonymous_1400_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'core', u'require', u'exports', u'module', u'$JSON'])
    var.put(u'core', var.get(u'require')(Js(u'../../modules/_core')))
    PyJs_Object_1401_ = Js({u'stringify':var.get(u'JSON').get(u'stringify')})
    var.put(u'$JSON', (var.get(u'core').get(u'JSON') or var.get(u'core').put(u'JSON', PyJs_Object_1401_)))
    @Js
    def PyJs_stringify_1402_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'stringify':PyJs_stringify_1402_, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        return var.get(u'$JSON').get(u'stringify').callprop(u'apply', var.get(u'$JSON'), var.get(u'arguments'))
    PyJs_stringify_1402_._set_name(u'stringify')
    var.get(u'module').put(u'exports', PyJs_stringify_1402_)
PyJs_anonymous_1400_._set_name(u'anonymous')
PyJs_Object_1403_ = Js({u'../../modules/_core':Js(144.0)})
@Js
def PyJs_anonymous_1404_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../modules/es6.object.to-string'))
    var.get(u'require')(Js(u'../modules/es6.string.iterator'))
    var.get(u'require')(Js(u'../modules/web.dom.iterable'))
    var.get(u'require')(Js(u'../modules/es6.map'))
    var.get(u'require')(Js(u'../modules/es7.map.to-json'))
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'../modules/_core')).get(u'Map'))
PyJs_anonymous_1404_._set_name(u'anonymous')
PyJs_Object_1405_ = Js({u'../modules/_core':Js(144.0),u'../modules/es6.map':Js(206.0),u'../modules/es6.object.to-string':Js(212.0),u'../modules/es6.string.iterator':Js(213.0),u'../modules/es7.map.to-json':Js(217.0),u'../modules/web.dom.iterable':Js(220.0)})
@Js
def PyJs_anonymous_1406_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../../modules/es6.number.max-safe-integer'))
    var.get(u'module').put(u'exports', Js(9007199254740991))
PyJs_anonymous_1406_._set_name(u'anonymous')
PyJs_Object_1407_ = Js({u'../../modules/es6.number.max-safe-integer':Js(207.0)})
@Js
def PyJs_anonymous_1408_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../../modules/es6.object.assign'))
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'../../modules/_core')).get(u'Object').get(u'assign'))
PyJs_anonymous_1408_._set_name(u'anonymous')
PyJs_Object_1409_ = Js({u'../../modules/_core':Js(144.0),u'../../modules/es6.object.assign':Js(208.0)})
@Js
def PyJs_anonymous_1410_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'$Object'])
    var.get(u'require')(Js(u'../../modules/es6.object.create'))
    var.put(u'$Object', var.get(u'require')(Js(u'../../modules/_core')).get(u'Object'))
    @Js
    def PyJs_create_1411_(P, D, this, arguments, var=var):
        var = Scope({u'this':this, u'P':P, u'create':PyJs_create_1411_, u'D':D, u'arguments':arguments}, var)
        var.registers([u'P', u'D'])
        return var.get(u'$Object').callprop(u'create', var.get(u'P'), var.get(u'D'))
    PyJs_create_1411_._set_name(u'create')
    var.get(u'module').put(u'exports', PyJs_create_1411_)
PyJs_anonymous_1410_._set_name(u'anonymous')
PyJs_Object_1412_ = Js({u'../../modules/_core':Js(144.0),u'../../modules/es6.object.create':Js(209.0)})
@Js
def PyJs_anonymous_1413_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../../modules/es6.symbol'))
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'../../modules/_core')).get(u'Object').get(u'getOwnPropertySymbols'))
PyJs_anonymous_1413_._set_name(u'anonymous')
PyJs_Object_1414_ = Js({u'../../modules/_core':Js(144.0),u'../../modules/es6.symbol':Js(214.0)})
@Js
def PyJs_anonymous_1415_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../../modules/es6.object.keys'))
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'../../modules/_core')).get(u'Object').get(u'keys'))
PyJs_anonymous_1415_._set_name(u'anonymous')
PyJs_Object_1416_ = Js({u'../../modules/_core':Js(144.0),u'../../modules/es6.object.keys':Js(210.0)})
@Js
def PyJs_anonymous_1417_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../../modules/es6.object.set-prototype-of'))
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'../../modules/_core')).get(u'Object').get(u'setPrototypeOf'))
PyJs_anonymous_1417_._set_name(u'anonymous')
PyJs_Object_1418_ = Js({u'../../modules/_core':Js(144.0),u'../../modules/es6.object.set-prototype-of':Js(211.0)})
@Js
def PyJs_anonymous_1419_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../../modules/es6.symbol'))
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'../../modules/_core')).get(u'Symbol').get(u'for'))
PyJs_anonymous_1419_._set_name(u'anonymous')
PyJs_Object_1420_ = Js({u'../../modules/_core':Js(144.0),u'../../modules/es6.symbol':Js(214.0)})
@Js
def PyJs_anonymous_1421_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../../modules/es6.symbol'))
    var.get(u'require')(Js(u'../../modules/es6.object.to-string'))
    var.get(u'require')(Js(u'../../modules/es7.symbol.async-iterator'))
    var.get(u'require')(Js(u'../../modules/es7.symbol.observable'))
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'../../modules/_core')).get(u'Symbol'))
PyJs_anonymous_1421_._set_name(u'anonymous')
PyJs_Object_1422_ = Js({u'../../modules/_core':Js(144.0),u'../../modules/es6.object.to-string':Js(212.0),u'../../modules/es6.symbol':Js(214.0),u'../../modules/es7.symbol.async-iterator':Js(218.0),u'../../modules/es7.symbol.observable':Js(219.0)})
@Js
def PyJs_anonymous_1423_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../../modules/es6.string.iterator'))
    var.get(u'require')(Js(u'../../modules/web.dom.iterable'))
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'../../modules/_wks-ext')).callprop(u'f', Js(u'iterator')))
PyJs_anonymous_1423_._set_name(u'anonymous')
PyJs_Object_1424_ = Js({u'../../modules/_wks-ext':Js(201.0),u'../../modules/es6.string.iterator':Js(213.0),u'../../modules/web.dom.iterable':Js(220.0)})
@Js
def PyJs_anonymous_1425_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../modules/es6.object.to-string'))
    var.get(u'require')(Js(u'../modules/web.dom.iterable'))
    var.get(u'require')(Js(u'../modules/es6.weak-map'))
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'../modules/_core')).get(u'WeakMap'))
PyJs_anonymous_1425_._set_name(u'anonymous')
PyJs_Object_1426_ = Js({u'../modules/_core':Js(144.0),u'../modules/es6.object.to-string':Js(212.0),u'../modules/es6.weak-map':Js(215.0),u'../modules/web.dom.iterable':Js(220.0)})
@Js
def PyJs_anonymous_1427_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'../modules/es6.object.to-string'))
    var.get(u'require')(Js(u'../modules/web.dom.iterable'))
    var.get(u'require')(Js(u'../modules/es6.weak-set'))
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'../modules/_core')).get(u'WeakSet'))
PyJs_anonymous_1427_._set_name(u'anonymous')
PyJs_Object_1428_ = Js({u'../modules/_core':Js(144.0),u'../modules/es6.object.to-string':Js(212.0),u'../modules/es6.weak-set':Js(216.0),u'../modules/web.dom.iterable':Js(220.0)})
@Js
def PyJs_anonymous_1429_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_1430_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        if (var.get(u'it',throw=False).typeof()!=Js(u'function')):
            PyJsTempException = JsToPyException(var.get(u'TypeError')((var.get(u'it')+Js(u' is not a function!'))))
            raise PyJsTempException
        return var.get(u'it')
    PyJs_anonymous_1430_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1430_)
PyJs_anonymous_1429_._set_name(u'anonymous')
PyJs_Object_1431_ = Js({})
@Js
def PyJs_anonymous_1432_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_1433_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        pass
    PyJs_anonymous_1433_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1433_)
PyJs_anonymous_1432_._set_name(u'anonymous')
PyJs_Object_1434_ = Js({})
@Js
def PyJs_anonymous_1435_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_1436_(it, Constructor, name, forbiddenField, this, arguments, var=var):
        var = Scope({u'name':name, u'Constructor':Constructor, u'this':this, u'arguments':arguments, u'it':it, u'forbiddenField':forbiddenField}, var)
        var.registers([u'forbiddenField', u'it', u'name', u'Constructor'])
        if (var.get(u'it').instanceof(var.get(u'Constructor')).neg() or (PyJsStrictNeq(var.get(u'forbiddenField'),var.get(u'undefined')) and var.get(u'it').contains(var.get(u'forbiddenField')))):
            PyJsTempException = JsToPyException(var.get(u'TypeError')((var.get(u'name')+Js(u': incorrect invocation!'))))
            raise PyJsTempException
        return var.get(u'it')
    PyJs_anonymous_1436_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1436_)
PyJs_anonymous_1435_._set_name(u'anonymous')
PyJs_Object_1437_ = Js({})
@Js
def PyJs_anonymous_1438_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'isObject', u'module'])
    var.put(u'isObject', var.get(u'require')(Js(u'./_is-object')))
    @Js
    def PyJs_anonymous_1439_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        if var.get(u'isObject')(var.get(u'it')).neg():
            PyJsTempException = JsToPyException(var.get(u'TypeError')((var.get(u'it')+Js(u' is not an object!'))))
            raise PyJsTempException
        return var.get(u'it')
    PyJs_anonymous_1439_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1439_)
PyJs_anonymous_1438_._set_name(u'anonymous')
PyJs_Object_1440_ = Js({u'./_is-object':Js(162.0)})
@Js
def PyJs_anonymous_1441_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'forOf', u'exports', u'module'])
    var.put(u'forOf', var.get(u'require')(Js(u'./_for-of')))
    @Js
    def PyJs_anonymous_1442_(iter, ITERATOR, this, arguments, var=var):
        var = Scope({u'this':this, u'ITERATOR':ITERATOR, u'iter':iter, u'arguments':arguments}, var)
        var.registers([u'ITERATOR', u'result', u'iter'])
        var.put(u'result', Js([]))
        var.get(u'forOf')(var.get(u'iter'), Js(False), var.get(u'result').get(u'push'), var.get(u'result'), var.get(u'ITERATOR'))
        return var.get(u'result')
    PyJs_anonymous_1442_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1442_)
PyJs_anonymous_1441_._set_name(u'anonymous')
PyJs_Object_1443_ = Js({u'./_for-of':Js(153.0)})
@Js
def PyJs_anonymous_1444_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'toLength', u'require', u'toIndex', u'module', u'toIObject'])
    var.put(u'toIObject', var.get(u'require')(Js(u'./_to-iobject')))
    var.put(u'toLength', var.get(u'require')(Js(u'./_to-length')))
    var.put(u'toIndex', var.get(u'require')(Js(u'./_to-index')))
    @Js
    def PyJs_anonymous_1445_(IS_INCLUDES, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'IS_INCLUDES':IS_INCLUDES}, var)
        var.registers([u'IS_INCLUDES'])
        @Js
        def PyJs_anonymous_1446_(PyJsArg_2474686973_, el, fromIndex, this, arguments, var=var):
            var = Scope({u'this':this, u'el':el, u'$this':PyJsArg_2474686973_, u'arguments':arguments, u'fromIndex':fromIndex}, var)
            var.registers([u'el', u'index', u'$this', u'value', u'fromIndex', u'length', u'O'])
            var.put(u'O', var.get(u'toIObject')(var.get(u'$this')))
            var.put(u'length', var.get(u'toLength')(var.get(u'O').get(u'length')))
            var.put(u'index', var.get(u'toIndex')(var.get(u'fromIndex'), var.get(u'length')))
            if (var.get(u'IS_INCLUDES') and (var.get(u'el')!=var.get(u'el'))):
                while (var.get(u'length')>var.get(u'index')):
                    var.put(u'value', var.get(u'O').get((var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1))))
                    if (var.get(u'value')!=var.get(u'value')):
                        return var.get(u'true')
            else:
                #for JS loop
                
                while (var.get(u'length')>var.get(u'index')):
                    try:
                        if (var.get(u'IS_INCLUDES') or var.get(u'O').contains(var.get(u'index'))):
                            if PyJsStrictEq(var.get(u'O').get(var.get(u'index')),var.get(u'el')):
                                return ((var.get(u'IS_INCLUDES') or var.get(u'index')) or Js(0.0))
                    finally:
                            (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1))
            return (var.get(u'IS_INCLUDES').neg() and (-Js(1.0)))
        PyJs_anonymous_1446_._set_name(u'anonymous')
        return PyJs_anonymous_1446_
    PyJs_anonymous_1445_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1445_)
PyJs_anonymous_1444_._set_name(u'anonymous')
PyJs_Object_1447_ = Js({u'./_to-index':Js(193.0),u'./_to-iobject':Js(195.0),u'./_to-length':Js(196.0)})
@Js
def PyJs_anonymous_1448_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'toLength', u'IObject', u'toObject', u'ctx', u'module', u'asc', u'require'])
    var.put(u'ctx', var.get(u'require')(Js(u'./_ctx')))
    var.put(u'IObject', var.get(u'require')(Js(u'./_iobject')))
    var.put(u'toObject', var.get(u'require')(Js(u'./_to-object')))
    var.put(u'toLength', var.get(u'require')(Js(u'./_to-length')))
    var.put(u'asc', var.get(u'require')(Js(u'./_array-species-create')))
    @Js
    def PyJs_anonymous_1449_(TYPE, PyJsArg_24637265617465_, this, arguments, var=var):
        var = Scope({u'this':this, u'TYPE':TYPE, u'arguments':arguments, u'$create':PyJsArg_24637265617465_}, var)
        var.registers([u'IS_FIND_INDEX', u'IS_SOME', u'IS_MAP', u'$create', u'NO_HOLES', u'IS_EVERY', u'IS_FILTER', u'TYPE', u'create'])
        var.put(u'IS_MAP', (var.get(u'TYPE')==Js(1.0)))
        var.put(u'IS_FILTER', (var.get(u'TYPE')==Js(2.0)))
        var.put(u'IS_SOME', (var.get(u'TYPE')==Js(3.0)))
        var.put(u'IS_EVERY', (var.get(u'TYPE')==Js(4.0)))
        var.put(u'IS_FIND_INDEX', (var.get(u'TYPE')==Js(6.0)))
        var.put(u'NO_HOLES', ((var.get(u'TYPE')==Js(5.0)) or var.get(u'IS_FIND_INDEX')))
        var.put(u'create', (var.get(u'$create') or var.get(u'asc')))
        @Js
        def PyJs_anonymous_1450_(PyJsArg_2474686973_, callbackfn, that, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'callbackfn':callbackfn, u'$this':PyJsArg_2474686973_, u'that':that}, var)
            var.registers([u'index', u'callbackfn', u'val', u'f', u'res', u'self', u'that', u'$this', u'O', u'length', u'result'])
            var.put(u'O', var.get(u'toObject')(var.get(u'$this')))
            var.put(u'self', var.get(u'IObject')(var.get(u'O')))
            var.put(u'f', var.get(u'ctx')(var.get(u'callbackfn'), var.get(u'that'), Js(3.0)))
            var.put(u'length', var.get(u'toLength')(var.get(u'self').get(u'length')))
            var.put(u'index', Js(0.0))
            var.put(u'result', (var.get(u'create')(var.get(u'$this'), var.get(u'length')) if var.get(u'IS_MAP') else (var.get(u'create')(var.get(u'$this'), Js(0.0)) if var.get(u'IS_FILTER') else var.get(u'undefined'))))
            #for JS loop
            
            while (var.get(u'length')>var.get(u'index')):
                try:
                    if (var.get(u'NO_HOLES') or var.get(u'self').contains(var.get(u'index'))):
                        var.put(u'val', var.get(u'self').get(var.get(u'index')))
                        var.put(u'res', var.get(u'f')(var.get(u'val'), var.get(u'index'), var.get(u'O')))
                        if var.get(u'TYPE'):
                            if var.get(u'IS_MAP'):
                                var.get(u'result').put(var.get(u'index'), var.get(u'res'))
                            else:
                                if var.get(u'res'):
                                    while 1:
                                        SWITCHED = False
                                        CONDITION = (var.get(u'TYPE'))
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js(3.0)):
                                            SWITCHED = True
                                            return var.get(u'true')
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js(5.0)):
                                            SWITCHED = True
                                            return var.get(u'val')
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js(6.0)):
                                            SWITCHED = True
                                            return var.get(u'index')
                                        if SWITCHED or PyJsStrictEq(CONDITION, Js(2.0)):
                                            SWITCHED = True
                                            var.get(u'result').callprop(u'push', var.get(u'val'))
                                        SWITCHED = True
                                        break
                                else:
                                    if var.get(u'IS_EVERY'):
                                        return Js(False)
                finally:
                        (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1))
            return ((-Js(1.0)) if var.get(u'IS_FIND_INDEX') else (var.get(u'IS_EVERY') if (var.get(u'IS_SOME') or var.get(u'IS_EVERY')) else var.get(u'result')))
        PyJs_anonymous_1450_._set_name(u'anonymous')
        return PyJs_anonymous_1450_
    PyJs_anonymous_1449_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1449_)
PyJs_anonymous_1448_._set_name(u'anonymous')
PyJs_Object_1451_ = Js({u'./_array-species-create':Js(137.0),u'./_ctx':Js(145.0),u'./_iobject':Js(159.0),u'./_to-length':Js(196.0),u'./_to-object':Js(197.0)})
@Js
def PyJs_anonymous_1452_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'exports', u'require', u'module', u'SPECIES', u'isObject'])
    var.put(u'isObject', var.get(u'require')(Js(u'./_is-object')))
    var.put(u'isArray', var.get(u'require')(Js(u'./_is-array')))
    var.put(u'SPECIES', var.get(u'require')(Js(u'./_wks'))(Js(u'species')))
    @Js
    def PyJs_anonymous_1453_(original, this, arguments, var=var):
        var = Scope({u'this':this, u'original':original, u'arguments':arguments}, var)
        var.registers([u'C', u'original'])
        pass
        if var.get(u'isArray')(var.get(u'original')):
            var.put(u'C', var.get(u'original').get(u'constructor'))
            if ((var.get(u'C',throw=False).typeof()==Js(u'function')) and (PyJsStrictEq(var.get(u'C'),var.get(u'Array')) or var.get(u'isArray')(var.get(u'C').get(u'prototype')))):
                var.put(u'C', var.get(u'undefined'))
            if var.get(u'isObject')(var.get(u'C')):
                var.put(u'C', var.get(u'C').get(var.get(u'SPECIES')))
                if PyJsStrictEq(var.get(u'C'),var.get(u"null")):
                    var.put(u'C', var.get(u'undefined'))
        return (var.get(u'Array') if PyJsStrictEq(var.get(u'C'),var.get(u'undefined')) else var.get(u'C'))
    PyJs_anonymous_1453_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1453_)
PyJs_anonymous_1452_._set_name(u'anonymous')
PyJs_Object_1454_ = Js({u'./_is-array':Js(161.0),u'./_is-object':Js(162.0),u'./_wks':Js(202.0)})
@Js
def PyJs_anonymous_1455_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'speciesConstructor', u'require', u'exports', u'module'])
    var.put(u'speciesConstructor', var.get(u'require')(Js(u'./_array-species-constructor')))
    @Js
    def PyJs_anonymous_1456_(original, length, this, arguments, var=var):
        var = Scope({u'this':this, u'length':length, u'original':original, u'arguments':arguments}, var)
        var.registers([u'length', u'original'])
        return var.get(u'speciesConstructor')(var.get(u'original')).create(var.get(u'length'))
    PyJs_anonymous_1456_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1456_)
PyJs_anonymous_1455_._set_name(u'anonymous')
PyJs_Object_1457_ = Js({u'./_array-species-constructor':Js(136.0)})
@Js
def PyJs_anonymous_1458_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'cof', u'module', u'tryGet', u'TAG', u'ARG'])
    var.put(u'cof', var.get(u'require')(Js(u'./_cof')))
    var.put(u'TAG', var.get(u'require')(Js(u'./_wks'))(Js(u'toStringTag')))
    @Js
    def PyJs_anonymous_1459_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u'arguments')
    PyJs_anonymous_1459_._set_name(u'anonymous')
    var.put(u'ARG', (var.get(u'cof')(PyJs_anonymous_1459_())==Js(u'Arguments')))
    @Js
    def PyJs_anonymous_1460_(it, key, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'key':key, u'arguments':arguments}, var)
        var.registers([u'it', u'key'])
        try:
            return var.get(u'it').get(var.get(u'key'))
        except PyJsException as PyJsTempException:
            PyJsHolder_65_48759406 = var.own.get(u'e')
            var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
            try:
                pass
            finally:
                if PyJsHolder_65_48759406 is not None:
                    var.own[u'e'] = PyJsHolder_65_48759406
                else:
                    del var.own[u'e']
                del PyJsHolder_65_48759406
    PyJs_anonymous_1460_._set_name(u'anonymous')
    var.put(u'tryGet', PyJs_anonymous_1460_)
    @Js
    def PyJs_anonymous_1461_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'B', u'T', u'O', u'it'])
        pass
        def PyJs_LONG_1462_(var=var):
            return (Js(u'Null') if PyJsStrictEq(var.get(u'it'),var.get(u"null")) else (var.get(u'T') if (var.put(u'T', var.get(u'tryGet')(var.put(u'O', var.get(u'Object')(var.get(u'it'))), var.get(u'TAG'))).typeof()==Js(u'string')) else (var.get(u'cof')(var.get(u'O')) if var.get(u'ARG') else (Js(u'Arguments') if ((var.put(u'B', var.get(u'cof')(var.get(u'O')))==Js(u'Object')) and (var.get(u'O').get(u'callee').typeof()==Js(u'function'))) else var.get(u'B')))))
        return (Js(u'Undefined') if PyJsStrictEq(var.get(u'it'),var.get(u'undefined')) else PyJs_LONG_1462_())
    PyJs_anonymous_1461_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1461_)
PyJs_anonymous_1458_._set_name(u'anonymous')
PyJs_Object_1463_ = Js({u'./_cof':Js(139.0),u'./_wks':Js(202.0)})
@Js
def PyJs_anonymous_1464_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'toString', u'exports', u'module'])
    PyJs_Object_1465_ = Js({})
    var.put(u'toString', PyJs_Object_1465_.get(u'toString'))
    @Js
    def PyJs_anonymous_1466_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        return var.get(u'toString').callprop(u'call', var.get(u'it')).callprop(u'slice', Js(8.0), (-Js(1.0)))
    PyJs_anonymous_1466_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1466_)
PyJs_anonymous_1464_._set_name(u'anonymous')
PyJs_Object_1467_ = Js({})
@Js
def PyJs_anonymous_1468_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'fastKey', u'exports', u'forOf', u'anInstance', u'defined', u'$iterDefine', u'create', u'ctx', u'module', u'setSpecies', u'getEntry', u'step', u'redefineAll', u'DESCRIPTORS', u'require', u'dP', u'SIZE'])
    Js(u'use strict')
    var.put(u'dP', var.get(u'require')(Js(u'./_object-dp')).get(u'f'))
    var.put(u'create', var.get(u'require')(Js(u'./_object-create')))
    var.put(u'redefineAll', var.get(u'require')(Js(u'./_redefine-all')))
    var.put(u'ctx', var.get(u'require')(Js(u'./_ctx')))
    var.put(u'anInstance', var.get(u'require')(Js(u'./_an-instance')))
    var.put(u'defined', var.get(u'require')(Js(u'./_defined')))
    var.put(u'forOf', var.get(u'require')(Js(u'./_for-of')))
    var.put(u'$iterDefine', var.get(u'require')(Js(u'./_iter-define')))
    var.put(u'step', var.get(u'require')(Js(u'./_iter-step')))
    var.put(u'setSpecies', var.get(u'require')(Js(u'./_set-species')))
    var.put(u'DESCRIPTORS', var.get(u'require')(Js(u'./_descriptors')))
    var.put(u'fastKey', var.get(u'require')(Js(u'./_meta')).get(u'fastKey'))
    var.put(u'SIZE', (Js(u'_s') if var.get(u'DESCRIPTORS') else Js(u'size')))
    @Js
    def PyJs_anonymous_1469_(that, key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key, u'that':that}, var)
        var.registers([u'index', u'that', u'key', u'entry'])
        var.put(u'index', var.get(u'fastKey')(var.get(u'key')))
        if PyJsStrictNeq(var.get(u'index'),Js(u'F')):
            return var.get(u'that').get(u'_i').get(var.get(u'index'))
        #for JS loop
        var.put(u'entry', var.get(u'that').get(u'_f'))
        while var.get(u'entry'):
            try:
                if (var.get(u'entry').get(u'k')==var.get(u'key')):
                    return var.get(u'entry')
            finally:
                    var.put(u'entry', var.get(u'entry').get(u'n'))
    PyJs_anonymous_1469_._set_name(u'anonymous')
    var.put(u'getEntry', PyJs_anonymous_1469_)
    @Js
    def PyJs_anonymous_1471_(wrapper, NAME, IS_MAP, ADDER, this, arguments, var=var):
        var = Scope({u'ADDER':ADDER, u'this':this, u'arguments':arguments, u'IS_MAP':IS_MAP, u'wrapper':wrapper, u'NAME':NAME}, var)
        var.registers([u'ADDER', u'C', u'NAME', u'wrapper', u'IS_MAP'])
        @Js
        def PyJs_anonymous_1472_(that, iterable, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'iterable':iterable, u'that':that}, var)
            var.registers([u'iterable', u'that'])
            var.get(u'anInstance')(var.get(u'that'), var.get(u'C'), var.get(u'NAME'), Js(u'_i'))
            var.get(u'that').put(u'_i', var.get(u'create')(var.get(u"null")))
            var.get(u'that').put(u'_f', var.get(u'undefined'))
            var.get(u'that').put(u'_l', var.get(u'undefined'))
            var.get(u'that').put(var.get(u'SIZE'), Js(0.0))
            if (var.get(u'iterable')!=var.get(u'undefined')):
                var.get(u'forOf')(var.get(u'iterable'), var.get(u'IS_MAP'), var.get(u'that').get(var.get(u'ADDER')), var.get(u'that'))
        PyJs_anonymous_1472_._set_name(u'anonymous')
        var.put(u'C', var.get(u'wrapper')(PyJs_anonymous_1472_))
        @Js
        def PyJs_clear_1474_(this, arguments, var=var):
            var = Scope({u'this':this, u'clear':PyJs_clear_1474_, u'arguments':arguments}, var)
            var.registers([u'entry', u'data', u'that'])
            #for JS loop
            var.put(u'that', var.get(u"this"))
            var.put(u'data', var.get(u'that').get(u'_i'))
            var.put(u'entry', var.get(u'that').get(u'_f'))
            while var.get(u'entry'):
                try:
                    var.get(u'entry').put(u'r', var.get(u'true'))
                    if var.get(u'entry').get(u'p'):
                        var.get(u'entry').put(u'p', var.get(u'entry').get(u'p').put(u'n', var.get(u'undefined')))
                    var.get(u'data').delete(var.get(u'entry').get(u'i'))
                finally:
                        var.put(u'entry', var.get(u'entry').get(u'n'))
            var.get(u'that').put(u'_f', var.get(u'that').put(u'_l', var.get(u'undefined')))
            var.get(u'that').put(var.get(u'SIZE'), Js(0.0))
        PyJs_clear_1474_._set_name(u'clear')
        @Js
        def PyJs_anonymous_1475_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
            var.registers([u'prev', u'entry', u'next', u'key', u'that'])
            var.put(u'that', var.get(u"this"))
            var.put(u'entry', var.get(u'getEntry')(var.get(u'that'), var.get(u'key')))
            if var.get(u'entry'):
                var.put(u'next', var.get(u'entry').get(u'n'))
                var.put(u'prev', var.get(u'entry').get(u'p'))
                var.get(u'that').get(u'_i').delete(var.get(u'entry').get(u'i'))
                var.get(u'entry').put(u'r', var.get(u'true'))
                if var.get(u'prev'):
                    var.get(u'prev').put(u'n', var.get(u'next'))
                if var.get(u'next'):
                    var.get(u'next').put(u'p', var.get(u'prev'))
                if (var.get(u'that').get(u'_f')==var.get(u'entry')):
                    var.get(u'that').put(u'_f', var.get(u'next'))
                if (var.get(u'that').get(u'_l')==var.get(u'entry')):
                    var.get(u'that').put(u'_l', var.get(u'prev'))
                (var.get(u'that').put(var.get(u'SIZE'),Js(var.get(u'that').get(var.get(u'SIZE')).to_number())-Js(1))+Js(1))
            return var.get(u'entry').neg().neg()
        PyJs_anonymous_1475_._set_name(u'anonymous')
        @Js
        def PyJs_forEach_1476_(callbackfn, this, arguments, var=var):
            var = Scope({u'this':this, u'callbackfn':callbackfn, u'arguments':arguments, u'forEach':PyJs_forEach_1476_}, var)
            var.registers([u'entry', u'callbackfn', u'f'])
            var.get(u'anInstance')(var.get(u"this"), var.get(u'C'), Js(u'forEach'))
            var.put(u'f', var.get(u'ctx')(var.get(u'callbackfn'), (var.get(u'arguments').get(u'1') if (var.get(u'arguments').get(u'length')>Js(1.0)) else var.get(u'undefined')), Js(3.0)))
            while var.put(u'entry', (var.get(u'entry').get(u'n') if var.get(u'entry') else var.get(u"this").get(u'_f'))):
                var.get(u'f')(var.get(u'entry').get(u'v'), var.get(u'entry').get(u'k'), var.get(u"this"))
                while (var.get(u'entry') and var.get(u'entry').get(u'r')):
                    var.put(u'entry', var.get(u'entry').get(u'p'))
        PyJs_forEach_1476_._set_name(u'forEach')
        @Js
        def PyJs_has_1477_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'has':PyJs_has_1477_, u'arguments':arguments, u'key':key}, var)
            var.registers([u'key'])
            return var.get(u'getEntry')(var.get(u"this"), var.get(u'key')).neg().neg()
        PyJs_has_1477_._set_name(u'has')
        PyJs_Object_1473_ = Js({u'clear':PyJs_clear_1474_,u'delete':PyJs_anonymous_1475_,u'forEach':PyJs_forEach_1476_,u'has':PyJs_has_1477_})
        var.get(u'redefineAll')(var.get(u'C').get(u'prototype'), PyJs_Object_1473_)
        if var.get(u'DESCRIPTORS'):
            @Js
            def PyJs_anonymous_1479_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return var.get(u'defined')(var.get(u"this").get(var.get(u'SIZE')))
            PyJs_anonymous_1479_._set_name(u'anonymous')
            PyJs_Object_1478_ = Js({u'get':PyJs_anonymous_1479_})
            var.get(u'dP')(var.get(u'C').get(u'prototype'), Js(u'size'), PyJs_Object_1478_)
        return var.get(u'C')
    PyJs_anonymous_1471_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1480_(that, key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value, u'key':key, u'that':that}, var)
        var.registers([u'index', u'that', u'value', u'key', u'entry', u'prev'])
        var.put(u'entry', var.get(u'getEntry')(var.get(u'that'), var.get(u'key')))
        if var.get(u'entry'):
            var.get(u'entry').put(u'v', var.get(u'value'))
        else:
            PyJs_Object_1481_ = Js({u'i':var.put(u'index', var.get(u'fastKey')(var.get(u'key'), var.get(u'true'))),u'k':var.get(u'key'),u'v':var.get(u'value'),u'p':var.put(u'prev', var.get(u'that').get(u'_l')),u'n':var.get(u'undefined'),u'r':Js(False)})
            var.get(u'that').put(u'_l', var.put(u'entry', PyJs_Object_1481_))
            if var.get(u'that').get(u'_f').neg():
                var.get(u'that').put(u'_f', var.get(u'entry'))
            if var.get(u'prev'):
                var.get(u'prev').put(u'n', var.get(u'entry'))
            (var.get(u'that').put(var.get(u'SIZE'),Js(var.get(u'that').get(var.get(u'SIZE')).to_number())+Js(1))-Js(1))
            if PyJsStrictNeq(var.get(u'index'),Js(u'F')):
                var.get(u'that').get(u'_i').put(var.get(u'index'), var.get(u'entry'))
        return var.get(u'that')
    PyJs_anonymous_1480_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1482_(C, NAME, IS_MAP, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'C':C, u'NAME':NAME, u'IS_MAP':IS_MAP}, var)
        var.registers([u'C', u'NAME', u'IS_MAP'])
        @Js
        def PyJs_anonymous_1483_(iterated, kind, this, arguments, var=var):
            var = Scope({u'this':this, u'kind':kind, u'arguments':arguments, u'iterated':iterated}, var)
            var.registers([u'kind', u'iterated'])
            var.get(u"this").put(u'_t', var.get(u'iterated'))
            var.get(u"this").put(u'_k', var.get(u'kind'))
            var.get(u"this").put(u'_l', var.get(u'undefined'))
        PyJs_anonymous_1483_._set_name(u'anonymous')
        @Js
        def PyJs_anonymous_1484_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'entry', u'kind', u'that'])
            var.put(u'that', var.get(u"this"))
            var.put(u'kind', var.get(u'that').get(u'_k'))
            var.put(u'entry', var.get(u'that').get(u'_l'))
            while (var.get(u'entry') and var.get(u'entry').get(u'r')):
                var.put(u'entry', var.get(u'entry').get(u'p'))
            if (var.get(u'that').get(u'_t').neg() or var.get(u'that').put(u'_l', var.put(u'entry', (var.get(u'entry').get(u'n') if var.get(u'entry') else var.get(u'that').get(u'_t').get(u'_f')))).neg()):
                var.get(u'that').put(u'_t', var.get(u'undefined'))
                return var.get(u'step')(Js(1.0))
            if (var.get(u'kind')==Js(u'keys')):
                return var.get(u'step')(Js(0.0), var.get(u'entry').get(u'k'))
            if (var.get(u'kind')==Js(u'values')):
                return var.get(u'step')(Js(0.0), var.get(u'entry').get(u'v'))
            return var.get(u'step')(Js(0.0), Js([var.get(u'entry').get(u'k'), var.get(u'entry').get(u'v')]))
        PyJs_anonymous_1484_._set_name(u'anonymous')
        var.get(u'$iterDefine')(var.get(u'C'), var.get(u'NAME'), PyJs_anonymous_1483_, PyJs_anonymous_1484_, (Js(u'entries') if var.get(u'IS_MAP') else Js(u'values')), var.get(u'IS_MAP').neg(), var.get(u'true'))
        var.get(u'setSpecies')(var.get(u'NAME'))
    PyJs_anonymous_1482_._set_name(u'anonymous')
    PyJs_Object_1470_ = Js({u'getConstructor':PyJs_anonymous_1471_,u'def':PyJs_anonymous_1480_,u'getEntry':var.get(u'getEntry'),u'setStrong':PyJs_anonymous_1482_})
    var.get(u'module').put(u'exports', PyJs_Object_1470_)
PyJs_anonymous_1468_._set_name(u'anonymous')
PyJs_Object_1485_ = Js({u'./_an-instance':Js(131.0),u'./_ctx':Js(145.0),u'./_defined':Js(146.0),u'./_descriptors':Js(147.0),u'./_for-of':Js(153.0),u'./_iter-define':Js(165.0),u'./_iter-step':Js(166.0),u'./_meta':Js(170.0),u'./_object-create':Js(172.0),u'./_object-dp':Js(173.0),u'./_redefine-all':Js(185.0),u'./_set-species':Js(188.0)})
@Js
def PyJs_anonymous_1486_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'from', u'require', u'classof', u'exports', u'module'])
    var.put(u'classof', var.get(u'require')(Js(u'./_classof')))
    var.put(u'from', var.get(u'require')(Js(u'./_array-from-iterable')))
    @Js
    def PyJs_anonymous_1487_(NAME, this, arguments, var=var):
        var = Scope({u'this':this, u'NAME':NAME, u'arguments':arguments}, var)
        var.registers([u'NAME'])
        @Js
        def PyJs_toJSON_1488_(this, arguments, var=var):
            var = Scope({u'this':this, u'toJSON':PyJs_toJSON_1488_, u'arguments':arguments}, var)
            var.registers([])
            if (var.get(u'classof')(var.get(u"this"))!=var.get(u'NAME')):
                PyJsTempException = JsToPyException(var.get(u'TypeError')((var.get(u'NAME')+Js(u"#toJSON isn't generic"))))
                raise PyJsTempException
            return var.get(u'from')(var.get(u"this"))
        PyJs_toJSON_1488_._set_name(u'toJSON')
        return PyJs_toJSON_1488_
    PyJs_anonymous_1487_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1487_)
PyJs_anonymous_1486_._set_name(u'anonymous')
PyJs_Object_1489_ = Js({u'./_array-from-iterable':Js(133.0),u'./_classof':Js(138.0)})
@Js
def PyJs_anonymous_1490_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'forOf', u'findUncaughtFrozen', u'createArrayMethod', u'anInstance', u'require', u'arrayFindIndex', u'module', u'id', u'$has', u'anObject', u'uncaughtFrozenStore', u'UncaughtFrozenStore', u'redefineAll', u'getWeak', u'isObject', u'arrayFind'])
    Js(u'use strict')
    var.put(u'redefineAll', var.get(u'require')(Js(u'./_redefine-all')))
    var.put(u'getWeak', var.get(u'require')(Js(u'./_meta')).get(u'getWeak'))
    var.put(u'anObject', var.get(u'require')(Js(u'./_an-object')))
    var.put(u'isObject', var.get(u'require')(Js(u'./_is-object')))
    var.put(u'anInstance', var.get(u'require')(Js(u'./_an-instance')))
    var.put(u'forOf', var.get(u'require')(Js(u'./_for-of')))
    var.put(u'createArrayMethod', var.get(u'require')(Js(u'./_array-methods')))
    var.put(u'$has', var.get(u'require')(Js(u'./_has')))
    var.put(u'arrayFind', var.get(u'createArrayMethod')(Js(5.0)))
    var.put(u'arrayFindIndex', var.get(u'createArrayMethod')(Js(6.0)))
    var.put(u'id', Js(0.0))
    @Js
    def PyJs_anonymous_1491_(that, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'that':that}, var)
        var.registers([u'that'])
        return (var.get(u'that').get(u'_l') or var.get(u'that').put(u'_l', var.get(u'UncaughtFrozenStore').create()))
    PyJs_anonymous_1491_._set_name(u'anonymous')
    var.put(u'uncaughtFrozenStore', PyJs_anonymous_1491_)
    @Js
    def PyJs_anonymous_1492_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").put(u'a', Js([]))
    PyJs_anonymous_1492_._set_name(u'anonymous')
    var.put(u'UncaughtFrozenStore', PyJs_anonymous_1492_)
    @Js
    def PyJs_anonymous_1493_(store, key, this, arguments, var=var):
        var = Scope({u'this':this, u'key':key, u'store':store, u'arguments':arguments}, var)
        var.registers([u'key', u'store'])
        @Js
        def PyJs_anonymous_1494_(it, this, arguments, var=var):
            var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
            var.registers([u'it'])
            return PyJsStrictEq(var.get(u'it').get(u'0'),var.get(u'key'))
        PyJs_anonymous_1494_._set_name(u'anonymous')
        return var.get(u'arrayFind')(var.get(u'store').get(u'a'), PyJs_anonymous_1494_)
    PyJs_anonymous_1493_._set_name(u'anonymous')
    var.put(u'findUncaughtFrozen', PyJs_anonymous_1493_)
    @Js
    def PyJs_anonymous_1496_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'entry', u'key'])
        var.put(u'entry', var.get(u'findUncaughtFrozen')(var.get(u"this"), var.get(u'key')))
        if var.get(u'entry'):
            return var.get(u'entry').get(u'1')
    PyJs_anonymous_1496_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1497_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return var.get(u'findUncaughtFrozen')(var.get(u"this"), var.get(u'key')).neg().neg()
    PyJs_anonymous_1497_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1498_(key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'entry', u'value', u'key'])
        var.put(u'entry', var.get(u'findUncaughtFrozen')(var.get(u"this"), var.get(u'key')))
        if var.get(u'entry'):
            var.get(u'entry').put(u'1', var.get(u'value'))
        else:
            var.get(u"this").get(u'a').callprop(u'push', Js([var.get(u'key'), var.get(u'value')]))
    PyJs_anonymous_1498_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1499_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'index', u'key'])
        @Js
        def PyJs_anonymous_1500_(it, this, arguments, var=var):
            var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
            var.registers([u'it'])
            return PyJsStrictEq(var.get(u'it').get(u'0'),var.get(u'key'))
        PyJs_anonymous_1500_._set_name(u'anonymous')
        var.put(u'index', var.get(u'arrayFindIndex')(var.get(u"this").get(u'a'), PyJs_anonymous_1500_))
        if (~var.get(u'index')):
            var.get(u"this").get(u'a').callprop(u'splice', var.get(u'index'), Js(1.0))
        return (~var.get(u'index')).neg().neg()
    PyJs_anonymous_1499_._set_name(u'anonymous')
    PyJs_Object_1495_ = Js({u'get':PyJs_anonymous_1496_,u'has':PyJs_anonymous_1497_,u'set':PyJs_anonymous_1498_,u'delete':PyJs_anonymous_1499_})
    var.get(u'UncaughtFrozenStore').put(u'prototype', PyJs_Object_1495_)
    @Js
    def PyJs_anonymous_1502_(wrapper, NAME, IS_MAP, ADDER, this, arguments, var=var):
        var = Scope({u'ADDER':ADDER, u'this':this, u'arguments':arguments, u'IS_MAP':IS_MAP, u'wrapper':wrapper, u'NAME':NAME}, var)
        var.registers([u'ADDER', u'C', u'NAME', u'wrapper', u'IS_MAP'])
        @Js
        def PyJs_anonymous_1503_(that, iterable, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'iterable':iterable, u'that':that}, var)
            var.registers([u'iterable', u'that'])
            var.get(u'anInstance')(var.get(u'that'), var.get(u'C'), var.get(u'NAME'), Js(u'_i'))
            var.get(u'that').put(u'_i', (var.put(u'id',Js(var.get(u'id').to_number())+Js(1))-Js(1)))
            var.get(u'that').put(u'_l', var.get(u'undefined'))
            if (var.get(u'iterable')!=var.get(u'undefined')):
                var.get(u'forOf')(var.get(u'iterable'), var.get(u'IS_MAP'), var.get(u'that').get(var.get(u'ADDER')), var.get(u'that'))
        PyJs_anonymous_1503_._set_name(u'anonymous')
        var.put(u'C', var.get(u'wrapper')(PyJs_anonymous_1503_))
        @Js
        def PyJs_anonymous_1505_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
            var.registers([u'data', u'key'])
            if var.get(u'isObject')(var.get(u'key')).neg():
                return Js(False)
            var.put(u'data', var.get(u'getWeak')(var.get(u'key')))
            if PyJsStrictEq(var.get(u'data'),var.get(u'true')):
                return var.get(u'uncaughtFrozenStore')(var.get(u"this")).callprop(u'delete', var.get(u'key'))
            return ((var.get(u'data') and var.get(u'$has')(var.get(u'data'), var.get(u"this").get(u'_i'))) and var.get(u'data').delete(var.get(u"this").get(u'_i')))
        PyJs_anonymous_1505_._set_name(u'anonymous')
        @Js
        def PyJs_has_1506_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'has':PyJs_has_1506_, u'arguments':arguments, u'key':key}, var)
            var.registers([u'data', u'key'])
            if var.get(u'isObject')(var.get(u'key')).neg():
                return Js(False)
            var.put(u'data', var.get(u'getWeak')(var.get(u'key')))
            if PyJsStrictEq(var.get(u'data'),var.get(u'true')):
                return var.get(u'uncaughtFrozenStore')(var.get(u"this")).callprop(u'has', var.get(u'key'))
            return (var.get(u'data') and var.get(u'$has')(var.get(u'data'), var.get(u"this").get(u'_i')))
        PyJs_has_1506_._set_name(u'has')
        PyJs_Object_1504_ = Js({u'delete':PyJs_anonymous_1505_,u'has':PyJs_has_1506_})
        var.get(u'redefineAll')(var.get(u'C').get(u'prototype'), PyJs_Object_1504_)
        return var.get(u'C')
    PyJs_anonymous_1502_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1507_(that, key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value, u'key':key, u'that':that}, var)
        var.registers([u'data', u'value', u'key', u'that'])
        var.put(u'data', var.get(u'getWeak')(var.get(u'anObject')(var.get(u'key')), var.get(u'true')))
        if PyJsStrictEq(var.get(u'data'),var.get(u'true')):
            var.get(u'uncaughtFrozenStore')(var.get(u'that')).callprop(u'set', var.get(u'key'), var.get(u'value'))
        else:
            var.get(u'data').put(var.get(u'that').get(u'_i'), var.get(u'value'))
        return var.get(u'that')
    PyJs_anonymous_1507_._set_name(u'anonymous')
    PyJs_Object_1501_ = Js({u'getConstructor':PyJs_anonymous_1502_,u'def':PyJs_anonymous_1507_,u'ufstore':var.get(u'uncaughtFrozenStore')})
    var.get(u'module').put(u'exports', PyJs_Object_1501_)
PyJs_anonymous_1490_._set_name(u'anonymous')
PyJs_Object_1508_ = Js({u'./_an-instance':Js(131.0),u'./_an-object':Js(132.0),u'./_array-methods':Js(135.0),u'./_for-of':Js(153.0),u'./_has':Js(155.0),u'./_is-object':Js(162.0),u'./_meta':Js(170.0),u'./_redefine-all':Js(185.0)})
@Js
def PyJs_anonymous_1509_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'fails', u'forOf', u'hide', u'anInstance', u'$export', u'setToStringTag', u'global', u'require', u'module', u'DESCRIPTORS', u'meta', u'redefineAll', u'each', u'isObject', u'dP'])
    Js(u'use strict')
    var.put(u'global', var.get(u'require')(Js(u'./_global')))
    var.put(u'$export', var.get(u'require')(Js(u'./_export')))
    var.put(u'meta', var.get(u'require')(Js(u'./_meta')))
    var.put(u'fails', var.get(u'require')(Js(u'./_fails')))
    var.put(u'hide', var.get(u'require')(Js(u'./_hide')))
    var.put(u'redefineAll', var.get(u'require')(Js(u'./_redefine-all')))
    var.put(u'forOf', var.get(u'require')(Js(u'./_for-of')))
    var.put(u'anInstance', var.get(u'require')(Js(u'./_an-instance')))
    var.put(u'isObject', var.get(u'require')(Js(u'./_is-object')))
    var.put(u'setToStringTag', var.get(u'require')(Js(u'./_set-to-string-tag')))
    var.put(u'dP', var.get(u'require')(Js(u'./_object-dp')).get(u'f'))
    var.put(u'each', var.get(u'require')(Js(u'./_array-methods'))(Js(0.0)))
    var.put(u'DESCRIPTORS', var.get(u'require')(Js(u'./_descriptors')))
    @Js
    def PyJs_anonymous_1510_(NAME, wrapper, methods, common, IS_MAP, IS_WEAK, this, arguments, var=var):
        var = Scope({u'NAME':NAME, u'this':this, u'arguments':arguments, u'IS_MAP':IS_MAP, u'wrapper':wrapper, u'IS_WEAK':IS_WEAK, u'common':common, u'methods':methods}, var)
        var.registers([u'C', u'wrapper', u'NAME', u'proto', u'IS_MAP', u'O', u'common', u'Base', u'IS_WEAK', u'ADDER', u'methods'])
        var.put(u'Base', var.get(u'global').get(var.get(u'NAME')))
        var.put(u'C', var.get(u'Base'))
        var.put(u'ADDER', (Js(u'set') if var.get(u'IS_MAP') else Js(u'add')))
        var.put(u'proto', (var.get(u'C') and var.get(u'C').get(u'prototype')))
        PyJs_Object_1511_ = Js({})
        var.put(u'O', PyJs_Object_1511_)
        @Js
        def PyJs_anonymous_1512_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            var.get(u'C').create().callprop(u'entries').callprop(u'next')
        PyJs_anonymous_1512_._set_name(u'anonymous')
        if ((var.get(u'DESCRIPTORS').neg() or (var.get(u'C',throw=False).typeof()!=Js(u'function'))) or (var.get(u'IS_WEAK') or (var.get(u'proto').get(u'forEach') and var.get(u'fails')(PyJs_anonymous_1512_).neg())).neg()):
            var.put(u'C', var.get(u'common').callprop(u'getConstructor', var.get(u'wrapper'), var.get(u'NAME'), var.get(u'IS_MAP'), var.get(u'ADDER')))
            var.get(u'redefineAll')(var.get(u'C').get(u'prototype'), var.get(u'methods'))
            var.get(u'meta').put(u'NEED', var.get(u'true'))
        else:
            @Js
            def PyJs_anonymous_1513_(target, iterable, this, arguments, var=var):
                var = Scope({u'this':this, u'target':target, u'iterable':iterable, u'arguments':arguments}, var)
                var.registers([u'target', u'iterable'])
                var.get(u'anInstance')(var.get(u'target'), var.get(u'C'), var.get(u'NAME'), Js(u'_c'))
                var.get(u'target').put(u'_c', var.get(u'Base').create())
                if (var.get(u'iterable')!=var.get(u'undefined')):
                    var.get(u'forOf')(var.get(u'iterable'), var.get(u'IS_MAP'), var.get(u'target').get(var.get(u'ADDER')), var.get(u'target'))
            PyJs_anonymous_1513_._set_name(u'anonymous')
            var.put(u'C', var.get(u'wrapper')(PyJs_anonymous_1513_))
            @Js
            def PyJs_anonymous_1514_(KEY, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'KEY':KEY}, var)
                var.registers([u'IS_ADDER', u'KEY'])
                var.put(u'IS_ADDER', ((var.get(u'KEY')==Js(u'add')) or (var.get(u'KEY')==Js(u'set'))))
                if (var.get(u'proto').contains(var.get(u'KEY')) and (var.get(u'IS_WEAK') and (var.get(u'KEY')==Js(u'clear'))).neg()):
                    @Js
                    def PyJs_anonymous_1515_(a, b, this, arguments, var=var):
                        var = Scope({u'a':a, u'this':this, u'b':b, u'arguments':arguments}, var)
                        var.registers([u'a', u'b', u'result'])
                        var.get(u'anInstance')(var.get(u"this"), var.get(u'C'), var.get(u'KEY'))
                        if ((var.get(u'IS_ADDER').neg() and var.get(u'IS_WEAK')) and var.get(u'isObject')(var.get(u'a')).neg()):
                            return (var.get(u'undefined') if (var.get(u'KEY')==Js(u'get')) else Js(False))
                        var.put(u'result', var.get(u"this").get(u'_c').callprop(var.get(u'KEY'), (Js(0.0) if PyJsStrictEq(var.get(u'a'),Js(0.0)) else var.get(u'a')), var.get(u'b')))
                        return (var.get(u"this") if var.get(u'IS_ADDER') else var.get(u'result'))
                    PyJs_anonymous_1515_._set_name(u'anonymous')
                    var.get(u'hide')(var.get(u'C').get(u'prototype'), var.get(u'KEY'), PyJs_anonymous_1515_)
            PyJs_anonymous_1514_._set_name(u'anonymous')
            var.get(u'each')(Js(u'add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON').callprop(u'split', Js(u',')), PyJs_anonymous_1514_)
            if var.get(u'proto').contains(Js(u'size')):
                @Js
                def PyJs_anonymous_1517_(this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments}, var)
                    var.registers([])
                    return var.get(u"this").get(u'_c').get(u'size')
                PyJs_anonymous_1517_._set_name(u'anonymous')
                PyJs_Object_1516_ = Js({u'get':PyJs_anonymous_1517_})
                var.get(u'dP')(var.get(u'C').get(u'prototype'), Js(u'size'), PyJs_Object_1516_)
        var.get(u'setToStringTag')(var.get(u'C'), var.get(u'NAME'))
        var.get(u'O').put(var.get(u'NAME'), var.get(u'C'))
        var.get(u'$export')(((var.get(u'$export').get(u'G')+var.get(u'$export').get(u'W'))+var.get(u'$export').get(u'F')), var.get(u'O'))
        if var.get(u'IS_WEAK').neg():
            var.get(u'common').callprop(u'setStrong', var.get(u'C'), var.get(u'NAME'), var.get(u'IS_MAP'))
        return var.get(u'C')
    PyJs_anonymous_1510_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1510_)
PyJs_anonymous_1509_._set_name(u'anonymous')
PyJs_Object_1518_ = Js({u'./_an-instance':Js(131.0),u'./_array-methods':Js(135.0),u'./_descriptors':Js(147.0),u'./_export':Js(151.0),u'./_fails':Js(152.0),u'./_for-of':Js(153.0),u'./_global':Js(154.0),u'./_hide':Js(156.0),u'./_is-object':Js(162.0),u'./_meta':Js(170.0),u'./_object-dp':Js(173.0),u'./_redefine-all':Js(185.0),u'./_set-to-string-tag':Js(189.0)})
@Js
def PyJs_anonymous_1519_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'core', u'require', u'exports', u'module'])
    PyJs_Object_1520_ = Js({u'version':Js(u'2.4.0')})
    var.put(u'core', var.get(u'module').put(u'exports', PyJs_Object_1520_))
    if (var.get(u'__e',throw=False).typeof()==Js(u'number')):
        var.put(u'__e', var.get(u'core'))
PyJs_anonymous_1519_._set_name(u'anonymous')
PyJs_Object_1521_ = Js({})
@Js
def PyJs_anonymous_1522_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'aFunction', u'require', u'exports', u'module'])
    var.put(u'aFunction', var.get(u'require')(Js(u'./_a-function')))
    @Js
    def PyJs_anonymous_1523_(fn, that, length, this, arguments, var=var):
        var = Scope({u'this':this, u'length':length, u'arguments':arguments, u'fn':fn, u'that':that}, var)
        var.registers([u'length', u'fn', u'that'])
        var.get(u'aFunction')(var.get(u'fn'))
        if PyJsStrictEq(var.get(u'that'),var.get(u'undefined')):
            return var.get(u'fn')
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'length'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(1.0)):
                SWITCHED = True
                @Js
                def PyJs_anonymous_1524_(a, this, arguments, var=var):
                    var = Scope({u'a':a, u'this':this, u'arguments':arguments}, var)
                    var.registers([u'a'])
                    return var.get(u'fn').callprop(u'call', var.get(u'that'), var.get(u'a'))
                PyJs_anonymous_1524_._set_name(u'anonymous')
                return PyJs_anonymous_1524_
            if SWITCHED or PyJsStrictEq(CONDITION, Js(2.0)):
                SWITCHED = True
                @Js
                def PyJs_anonymous_1525_(a, b, this, arguments, var=var):
                    var = Scope({u'a':a, u'this':this, u'b':b, u'arguments':arguments}, var)
                    var.registers([u'a', u'b'])
                    return var.get(u'fn').callprop(u'call', var.get(u'that'), var.get(u'a'), var.get(u'b'))
                PyJs_anonymous_1525_._set_name(u'anonymous')
                return PyJs_anonymous_1525_
            if SWITCHED or PyJsStrictEq(CONDITION, Js(3.0)):
                SWITCHED = True
                @Js
                def PyJs_anonymous_1526_(a, b, c, this, arguments, var=var):
                    var = Scope({u'a':a, u'this':this, u'c':c, u'b':b, u'arguments':arguments}, var)
                    var.registers([u'a', u'c', u'b'])
                    return var.get(u'fn').callprop(u'call', var.get(u'that'), var.get(u'a'), var.get(u'b'), var.get(u'c'))
                PyJs_anonymous_1526_._set_name(u'anonymous')
                return PyJs_anonymous_1526_
            SWITCHED = True
            break
        @Js
        def PyJs_anonymous_1527_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return var.get(u'fn').callprop(u'apply', var.get(u'that'), var.get(u'arguments'))
        PyJs_anonymous_1527_._set_name(u'anonymous')
        return PyJs_anonymous_1527_
    PyJs_anonymous_1523_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1523_)
PyJs_anonymous_1522_._set_name(u'anonymous')
PyJs_Object_1528_ = Js({u'./_a-function':Js(129.0)})
@Js
def PyJs_anonymous_1529_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_1530_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        if (var.get(u'it')==var.get(u'undefined')):
            PyJsTempException = JsToPyException(var.get(u'TypeError')((Js(u"Can't call method on  ")+var.get(u'it'))))
            raise PyJsTempException
        return var.get(u'it')
    PyJs_anonymous_1530_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1530_)
PyJs_anonymous_1529_._set_name(u'anonymous')
PyJs_Object_1531_ = Js({})
@Js
def PyJs_anonymous_1532_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_1533_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        PyJs_Object_1534_ = Js({})
        @Js
        def PyJs_anonymous_1536_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return Js(7.0)
        PyJs_anonymous_1536_._set_name(u'anonymous')
        PyJs_Object_1535_ = Js({u'get':PyJs_anonymous_1536_})
        return (var.get(u'Object').callprop(u'defineProperty', PyJs_Object_1534_, Js(u'a'), PyJs_Object_1535_).get(u'a')!=Js(7.0))
    PyJs_anonymous_1533_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./_fails'))(PyJs_anonymous_1533_).neg())
PyJs_anonymous_1532_._set_name(u'anonymous')
PyJs_Object_1537_ = Js({u'./_fails':Js(152.0)})
@Js
def PyJs_anonymous_1538_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'is', u'module', u'isObject', u'document', u'require'])
    var.put(u'isObject', var.get(u'require')(Js(u'./_is-object')))
    var.put(u'document', var.get(u'require')(Js(u'./_global')).get(u'document'))
    var.put(u'is', (var.get(u'isObject')(var.get(u'document')) and var.get(u'isObject')(var.get(u'document').get(u'createElement'))))
    @Js
    def PyJs_anonymous_1539_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        PyJs_Object_1540_ = Js({})
        return (var.get(u'document').callprop(u'createElement', var.get(u'it')) if var.get(u'is') else PyJs_Object_1540_)
    PyJs_anonymous_1539_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1539_)
PyJs_anonymous_1538_._set_name(u'anonymous')
PyJs_Object_1541_ = Js({u'./_global':Js(154.0),u'./_is-object':Js(162.0)})
@Js
def PyJs_anonymous_1542_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'module').put(u'exports', Js(u'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf').callprop(u'split', Js(u',')))
PyJs_anonymous_1542_._set_name(u'anonymous')
PyJs_Object_1543_ = Js({})
@Js
def PyJs_anonymous_1544_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'pIE', u'module', u'gOPS', u'getKeys'])
    var.put(u'getKeys', var.get(u'require')(Js(u'./_object-keys')))
    var.put(u'gOPS', var.get(u'require')(Js(u'./_object-gops')))
    var.put(u'pIE', var.get(u'require')(Js(u'./_object-pie')))
    @Js
    def PyJs_anonymous_1545_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'getSymbols', u'i', u'it', u'symbols', u'isEnum', u'result', u'key'])
        var.put(u'result', var.get(u'getKeys')(var.get(u'it')))
        var.put(u'getSymbols', var.get(u'gOPS').get(u'f'))
        if var.get(u'getSymbols'):
            var.put(u'symbols', var.get(u'getSymbols')(var.get(u'it')))
            var.put(u'isEnum', var.get(u'pIE').get(u'f'))
            var.put(u'i', Js(0.0))
            while (var.get(u'symbols').get(u'length')>var.get(u'i')):
                if var.get(u'isEnum').callprop(u'call', var.get(u'it'), var.put(u'key', var.get(u'symbols').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))):
                    var.get(u'result').callprop(u'push', var.get(u'key'))
        return var.get(u'result')
    PyJs_anonymous_1545_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1545_)
PyJs_anonymous_1544_._set_name(u'anonymous')
PyJs_Object_1546_ = Js({u'./_object-gops':Js(178.0),u'./_object-keys':Js(181.0),u'./_object-pie':Js(182.0)})
@Js
def PyJs_anonymous_1547_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'core', u'exports', u'hide', u'$export', u'require', u'global', u'ctx', u'module', u'PROTOTYPE'])
    var.put(u'global', var.get(u'require')(Js(u'./_global')))
    var.put(u'core', var.get(u'require')(Js(u'./_core')))
    var.put(u'ctx', var.get(u'require')(Js(u'./_ctx')))
    var.put(u'hide', var.get(u'require')(Js(u'./_hide')))
    var.put(u'PROTOTYPE', Js(u'prototype'))
    @Js
    def PyJs_anonymous_1548_(type, name, source, this, arguments, var=var):
        var = Scope({u'this':this, u'source':source, u'type':type, u'name':name, u'arguments':arguments}, var)
        var.registers([u'IS_STATIC', u'IS_WRAP', u'exports', u'IS_GLOBAL', u'target', u'expProto', u'name', u'source', u'IS_PROTO', u'key', u'own', u'IS_FORCED', u'type', u'IS_BIND', u'out'])
        var.put(u'IS_FORCED', (var.get(u'type')&var.get(u'$export').get(u'F')))
        var.put(u'IS_GLOBAL', (var.get(u'type')&var.get(u'$export').get(u'G')))
        var.put(u'IS_STATIC', (var.get(u'type')&var.get(u'$export').get(u'S')))
        var.put(u'IS_PROTO', (var.get(u'type')&var.get(u'$export').get(u'P')))
        var.put(u'IS_BIND', (var.get(u'type')&var.get(u'$export').get(u'B')))
        var.put(u'IS_WRAP', (var.get(u'type')&var.get(u'$export').get(u'W')))
        PyJs_Object_1549_ = Js({})
        var.put(u'exports', (var.get(u'core') if var.get(u'IS_GLOBAL') else (var.get(u'core').get(var.get(u'name')) or var.get(u'core').put(var.get(u'name'), PyJs_Object_1549_))))
        var.put(u'expProto', var.get(u'exports').get(var.get(u'PROTOTYPE')))
        PyJs_Object_1550_ = Js({})
        var.put(u'target', (var.get(u'global') if var.get(u'IS_GLOBAL') else (var.get(u'global').get(var.get(u'name')) if var.get(u'IS_STATIC') else (var.get(u'global').get(var.get(u'name')) or PyJs_Object_1550_).get(var.get(u'PROTOTYPE')))))
        if var.get(u'IS_GLOBAL'):
            var.put(u'source', var.get(u'name'))
        for PyJsTemp in var.get(u'source'):
            var.put(u'key', PyJsTemp)
            var.put(u'own', ((var.get(u'IS_FORCED').neg() and var.get(u'target')) and PyJsStrictNeq(var.get(u'target').get(var.get(u'key')),var.get(u'undefined'))))
            if (var.get(u'own') and var.get(u'exports').contains(var.get(u'key'))):
                continue
            var.put(u'out', (var.get(u'target').get(var.get(u'key')) if var.get(u'own') else var.get(u'source').get(var.get(u'key'))))
            def PyJs_LONG_1553_(var=var):
                @Js
                def PyJs_anonymous_1551_(C, this, arguments, var=var):
                    var = Scope({u'this':this, u'C':C, u'arguments':arguments}, var)
                    var.registers([u'C', u'F'])
                    @Js
                    def PyJs_anonymous_1552_(a, b, c, this, arguments, var=var):
                        var = Scope({u'a':a, u'this':this, u'c':c, u'b':b, u'arguments':arguments}, var)
                        var.registers([u'a', u'c', u'b'])
                        if var.get(u"this").instanceof(var.get(u'C')):
                            while 1:
                                SWITCHED = False
                                CONDITION = (var.get(u'arguments').get(u'length'))
                                if SWITCHED or PyJsStrictEq(CONDITION, Js(0.0)):
                                    SWITCHED = True
                                    return var.get(u'C').create()
                                if SWITCHED or PyJsStrictEq(CONDITION, Js(1.0)):
                                    SWITCHED = True
                                    return var.get(u'C').create(var.get(u'a'))
                                if SWITCHED or PyJsStrictEq(CONDITION, Js(2.0)):
                                    SWITCHED = True
                                    return var.get(u'C').create(var.get(u'a'), var.get(u'b'))
                                SWITCHED = True
                                break
                            return var.get(u'C').create(var.get(u'a'), var.get(u'b'), var.get(u'c'))
                        return var.get(u'C').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))
                    PyJs_anonymous_1552_._set_name(u'anonymous')
                    var.put(u'F', PyJs_anonymous_1552_)
                    var.get(u'F').put(var.get(u'PROTOTYPE'), var.get(u'C').get(var.get(u'PROTOTYPE')))
                    return var.get(u'F')
                PyJs_anonymous_1551_._set_name(u'anonymous')
                return (var.get(u'ctx')(var.get(u'out'), var.get(u'global')) if (var.get(u'IS_BIND') and var.get(u'own')) else (PyJs_anonymous_1551_(var.get(u'out')) if (var.get(u'IS_WRAP') and (var.get(u'target').get(var.get(u'key'))==var.get(u'out'))) else (var.get(u'ctx')(var.get(u'Function').get(u'call'), var.get(u'out')) if (var.get(u'IS_PROTO') and (var.get(u'out',throw=False).typeof()==Js(u'function'))) else var.get(u'out'))))
            var.get(u'exports').put(var.get(u'key'), (var.get(u'source').get(var.get(u'key')) if (var.get(u'IS_GLOBAL') and (var.get(u'target').get(var.get(u'key')).typeof()!=Js(u'function'))) else PyJs_LONG_1553_()))
            if var.get(u'IS_PROTO'):
                PyJs_Object_1554_ = Js({})
                (var.get(u'exports').get(u'virtual') or var.get(u'exports').put(u'virtual', PyJs_Object_1554_)).put(var.get(u'key'), var.get(u'out'))
                if (((var.get(u'type')&var.get(u'$export').get(u'R')) and var.get(u'expProto')) and var.get(u'expProto').get(var.get(u'key')).neg()):
                    var.get(u'hide')(var.get(u'expProto'), var.get(u'key'), var.get(u'out'))
    PyJs_anonymous_1548_._set_name(u'anonymous')
    var.put(u'$export', PyJs_anonymous_1548_)
    var.get(u'$export').put(u'F', Js(1.0))
    var.get(u'$export').put(u'G', Js(2.0))
    var.get(u'$export').put(u'S', Js(4.0))
    var.get(u'$export').put(u'P', Js(8.0))
    var.get(u'$export').put(u'B', Js(16.0))
    var.get(u'$export').put(u'W', Js(32.0))
    var.get(u'$export').put(u'U', Js(64.0))
    var.get(u'$export').put(u'R', Js(128.0))
    var.get(u'module').put(u'exports', var.get(u'$export'))
PyJs_anonymous_1547_._set_name(u'anonymous')
PyJs_Object_1555_ = Js({u'./_core':Js(144.0),u'./_ctx':Js(145.0),u'./_global':Js(154.0),u'./_hide':Js(156.0)})
@Js
def PyJs_anonymous_1556_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_1557_(PyJsArg_65786563_, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'exec':PyJsArg_65786563_}, var)
        var.registers([u'exec'])
        try:
            return var.get(u'exec')().neg().neg()
        except PyJsException as PyJsTempException:
            PyJsHolder_65_66067223 = var.own.get(u'e')
            var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
            try:
                return var.get(u'true')
            finally:
                if PyJsHolder_65_66067223 is not None:
                    var.own[u'e'] = PyJsHolder_65_66067223
                else:
                    del var.own[u'e']
                del PyJsHolder_65_66067223
    PyJs_anonymous_1557_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1557_)
PyJs_anonymous_1556_._set_name(u'anonymous')
PyJs_Object_1558_ = Js({})
@Js
def PyJs_anonymous_1559_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'getIterFn', u'RETURN', u'require', u'ctx', u'module', u'BREAK', u'toLength', u'call', u'isArrayIter', u'anObject'])
    var.put(u'ctx', var.get(u'require')(Js(u'./_ctx')))
    var.put(u'call', var.get(u'require')(Js(u'./_iter-call')))
    var.put(u'isArrayIter', var.get(u'require')(Js(u'./_is-array-iter')))
    var.put(u'anObject', var.get(u'require')(Js(u'./_an-object')))
    var.put(u'toLength', var.get(u'require')(Js(u'./_to-length')))
    var.put(u'getIterFn', var.get(u'require')(Js(u'./core.get-iterator-method')))
    PyJs_Object_1560_ = Js({})
    var.put(u'BREAK', PyJs_Object_1560_)
    PyJs_Object_1561_ = Js({})
    var.put(u'RETURN', PyJs_Object_1561_)
    @Js
    def PyJs_anonymous_1562_(iterable, entries, fn, that, ITERATOR, this, arguments, var=var):
        var = Scope({u'iterable':iterable, u'ITERATOR':ITERATOR, u'that':that, u'this':this, u'entries':entries, u'fn':fn, u'arguments':arguments}, var)
        var.registers([u'iterFn', u'index', u'ITERATOR', u'iterator', u'f', u'that', u'step', u'length', u'result', u'entries', u'fn', u'iterable'])
        @Js
        def PyJs_anonymous_1563_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return var.get(u'iterable')
        PyJs_anonymous_1563_._set_name(u'anonymous')
        var.put(u'iterFn', (PyJs_anonymous_1563_ if var.get(u'ITERATOR') else var.get(u'getIterFn')(var.get(u'iterable'))))
        var.put(u'f', var.get(u'ctx')(var.get(u'fn'), var.get(u'that'), (Js(2.0) if var.get(u'entries') else Js(1.0))))
        var.put(u'index', Js(0.0))
        if (var.get(u'iterFn',throw=False).typeof()!=Js(u'function')):
            PyJsTempException = JsToPyException(var.get(u'TypeError')((var.get(u'iterable')+Js(u' is not iterable!'))))
            raise PyJsTempException
        if var.get(u'isArrayIter')(var.get(u'iterFn')):
            #for JS loop
            var.put(u'length', var.get(u'toLength')(var.get(u'iterable').get(u'length')))
            while (var.get(u'length')>var.get(u'index')):
                try:
                    var.put(u'result', (var.get(u'f')(var.get(u'anObject')(var.put(u'step', var.get(u'iterable').get(var.get(u'index')))).get(u'0'), var.get(u'step').get(u'1')) if var.get(u'entries') else var.get(u'f')(var.get(u'iterable').get(var.get(u'index')))))
                    if (PyJsStrictEq(var.get(u'result'),var.get(u'BREAK')) or PyJsStrictEq(var.get(u'result'),var.get(u'RETURN'))):
                        return var.get(u'result')
                finally:
                        (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1))
        else:
            #for JS loop
            var.put(u'iterator', var.get(u'iterFn').callprop(u'call', var.get(u'iterable')))
            while var.put(u'step', var.get(u'iterator').callprop(u'next')).get(u'done').neg():
                var.put(u'result', var.get(u'call')(var.get(u'iterator'), var.get(u'f'), var.get(u'step').get(u'value'), var.get(u'entries')))
                if (PyJsStrictEq(var.get(u'result'),var.get(u'BREAK')) or PyJsStrictEq(var.get(u'result'),var.get(u'RETURN'))):
                    return var.get(u'result')
            
    PyJs_anonymous_1562_._set_name(u'anonymous')
    var.put(u'exports', var.get(u'module').put(u'exports', PyJs_anonymous_1562_))
    var.get(u'exports').put(u'BREAK', var.get(u'BREAK'))
    var.get(u'exports').put(u'RETURN', var.get(u'RETURN'))
PyJs_anonymous_1559_._set_name(u'anonymous')
PyJs_Object_1564_ = Js({u'./_an-object':Js(132.0),u'./_ctx':Js(145.0),u'./_is-array-iter':Js(160.0),u'./_iter-call':Js(163.0),u'./_to-length':Js(196.0),u'./core.get-iterator-method':Js(203.0)})
@Js
def PyJs_anonymous_1565_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'global', u'exports', u'module'])
    var.put(u'global', var.get(u'module').put(u'exports', (var.get(u'window') if ((var.get(u'window',throw=False).typeof()!=Js(u'undefined')) and (var.get(u'window').get(u'Math')==var.get(u'Math'))) else (var.get(u'self') if ((var.get(u'self',throw=False).typeof()!=Js(u'undefined')) and (var.get(u'self').get(u'Math')==var.get(u'Math'))) else var.get(u'Function')(Js(u'return this'))()))))
    if (var.get(u'__g',throw=False).typeof()==Js(u'number')):
        var.put(u'__g', var.get(u'global'))
PyJs_anonymous_1565_._set_name(u'anonymous')
PyJs_Object_1566_ = Js({})
@Js
def PyJs_anonymous_1567_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'hasOwnProperty', u'module'])
    PyJs_Object_1568_ = Js({})
    var.put(u'hasOwnProperty', PyJs_Object_1568_.get(u'hasOwnProperty'))
    @Js
    def PyJs_anonymous_1569_(it, key, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'key':key, u'arguments':arguments}, var)
        var.registers([u'it', u'key'])
        return var.get(u'hasOwnProperty').callprop(u'call', var.get(u'it'), var.get(u'key'))
    PyJs_anonymous_1569_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1569_)
PyJs_anonymous_1567_._set_name(u'anonymous')
PyJs_Object_1570_ = Js({})
@Js
def PyJs_anonymous_1571_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'module', u'require', u'exports', u'createDesc', u'dP'])
    var.put(u'dP', var.get(u'require')(Js(u'./_object-dp')))
    var.put(u'createDesc', var.get(u'require')(Js(u'./_property-desc')))
    @Js
    def PyJs_anonymous_1572_(object, key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'object', u'value', u'key'])
        return var.get(u'dP').callprop(u'f', var.get(u'object'), var.get(u'key'), var.get(u'createDesc')(Js(1.0), var.get(u'value')))
    PyJs_anonymous_1572_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1573_(object, key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'object', u'value', u'key'])
        var.get(u'object').put(var.get(u'key'), var.get(u'value'))
        return var.get(u'object')
    PyJs_anonymous_1573_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', (PyJs_anonymous_1572_ if var.get(u'require')(Js(u'./_descriptors')) else PyJs_anonymous_1573_))
PyJs_anonymous_1571_._set_name(u'anonymous')
PyJs_Object_1574_ = Js({u'./_descriptors':Js(147.0),u'./_object-dp':Js(173.0),u'./_property-desc':Js(184.0)})
@Js
def PyJs_anonymous_1575_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'module').put(u'exports', (var.get(u'require')(Js(u'./_global')).get(u'document') and var.get(u'document').get(u'documentElement')))
PyJs_anonymous_1575_._set_name(u'anonymous')
PyJs_Object_1576_ = Js({u'./_global':Js(154.0)})
@Js
def PyJs_anonymous_1577_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_1578_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_anonymous_1580_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return Js(7.0)
        PyJs_anonymous_1580_._set_name(u'anonymous')
        PyJs_Object_1579_ = Js({u'get':PyJs_anonymous_1580_})
        return (var.get(u'Object').callprop(u'defineProperty', var.get(u'require')(Js(u'./_dom-create'))(Js(u'div')), Js(u'a'), PyJs_Object_1579_).get(u'a')!=Js(7.0))
    PyJs_anonymous_1578_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', (var.get(u'require')(Js(u'./_descriptors')).neg() and var.get(u'require')(Js(u'./_fails'))(PyJs_anonymous_1578_).neg()))
PyJs_anonymous_1577_._set_name(u'anonymous')
PyJs_Object_1581_ = Js({u'./_descriptors':Js(147.0),u'./_dom-create':Js(148.0),u'./_fails':Js(152.0)})
@Js
def PyJs_anonymous_1582_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'cof'])
    var.put(u'cof', var.get(u'require')(Js(u'./_cof')))
    @Js
    def PyJs_anonymous_1583_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        return (var.get(u'it').callprop(u'split', Js(u'')) if (var.get(u'cof')(var.get(u'it'))==Js(u'String')) else var.get(u'Object')(var.get(u'it')))
    PyJs_anonymous_1583_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', (var.get(u'Object') if var.get(u'Object')(Js(u'z')).callprop(u'propertyIsEnumerable', Js(0.0)) else PyJs_anonymous_1583_))
PyJs_anonymous_1582_._set_name(u'anonymous')
PyJs_Object_1584_ = Js({u'./_cof':Js(139.0)})
@Js
def PyJs_anonymous_1585_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'ITERATOR', u'ArrayProto', u'require', u'module', u'Iterators'])
    var.put(u'Iterators', var.get(u'require')(Js(u'./_iterators')))
    var.put(u'ITERATOR', var.get(u'require')(Js(u'./_wks'))(Js(u'iterator')))
    var.put(u'ArrayProto', var.get(u'Array').get(u'prototype'))
    @Js
    def PyJs_anonymous_1586_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        return (PyJsStrictNeq(var.get(u'it'),var.get(u'undefined')) and (PyJsStrictEq(var.get(u'Iterators').get(u'Array'),var.get(u'it')) or PyJsStrictEq(var.get(u'ArrayProto').get(var.get(u'ITERATOR')),var.get(u'it'))))
    PyJs_anonymous_1586_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1586_)
PyJs_anonymous_1585_._set_name(u'anonymous')
PyJs_Object_1587_ = Js({u'./_iterators':Js(167.0),u'./_wks':Js(202.0)})
@Js
def PyJs_anonymous_1588_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'cof'])
    var.put(u'cof', var.get(u'require')(Js(u'./_cof')))
    @Js
    def PyJs_isArray_1589_(arg, this, arguments, var=var):
        var = Scope({u'this':this, u'isArray':PyJs_isArray_1589_, u'arguments':arguments, u'arg':arg}, var)
        var.registers([u'arg'])
        return (var.get(u'cof')(var.get(u'arg'))==Js(u'Array'))
    PyJs_isArray_1589_._set_name(u'isArray')
    var.get(u'module').put(u'exports', (var.get(u'Array').get(u'isArray') or PyJs_isArray_1589_))
PyJs_anonymous_1588_._set_name(u'anonymous')
PyJs_Object_1590_ = Js({u'./_cof':Js(139.0)})
@Js
def PyJs_anonymous_1591_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_1592_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        return (PyJsStrictNeq(var.get(u'it'),var.get(u"null")) if PyJsStrictEq(var.get(u'it',throw=False).typeof(),Js(u'object')) else PyJsStrictEq(var.get(u'it',throw=False).typeof(),Js(u'function')))
    PyJs_anonymous_1592_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1592_)
PyJs_anonymous_1591_._set_name(u'anonymous')
PyJs_Object_1593_ = Js({})
@Js
def PyJs_anonymous_1594_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'anObject', u'exports', u'module'])
    var.put(u'anObject', var.get(u'require')(Js(u'./_an-object')))
    @Js
    def PyJs_anonymous_1595_(iterator, fn, value, entries, this, arguments, var=var):
        var = Scope({u'fn':fn, u'iterator':iterator, u'entries':entries, u'this':this, u'value':value, u'arguments':arguments}, var)
        var.registers([u'fn', u'value', u'iterator', u'ret', u'entries'])
        try:
            return (var.get(u'fn')(var.get(u'anObject')(var.get(u'value')).get(u'0'), var.get(u'value').get(u'1')) if var.get(u'entries') else var.get(u'fn')(var.get(u'value')))
        except PyJsException as PyJsTempException:
            PyJsHolder_65_64523188 = var.own.get(u'e')
            var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
            try:
                var.put(u'ret', var.get(u'iterator').get(u'return'))
                if PyJsStrictNeq(var.get(u'ret'),var.get(u'undefined')):
                    var.get(u'anObject')(var.get(u'ret').callprop(u'call', var.get(u'iterator')))
                PyJsTempException = JsToPyException(var.get(u'e'))
                raise PyJsTempException
            finally:
                if PyJsHolder_65_64523188 is not None:
                    var.own[u'e'] = PyJsHolder_65_64523188
                else:
                    del var.own[u'e']
                del PyJsHolder_65_64523188
    PyJs_anonymous_1595_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1595_)
PyJs_anonymous_1594_._set_name(u'anonymous')
PyJs_Object_1596_ = Js({u'./_an-object':Js(132.0)})
@Js
def PyJs_anonymous_1597_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'setToStringTag', u'exports', u'IteratorPrototype', u'create', u'module', u'descriptor', u'require'])
    Js(u'use strict')
    var.put(u'create', var.get(u'require')(Js(u'./_object-create')))
    var.put(u'descriptor', var.get(u'require')(Js(u'./_property-desc')))
    var.put(u'setToStringTag', var.get(u'require')(Js(u'./_set-to-string-tag')))
    PyJs_Object_1598_ = Js({})
    var.put(u'IteratorPrototype', PyJs_Object_1598_)
    @Js
    def PyJs_anonymous_1599_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this")
    PyJs_anonymous_1599_._set_name(u'anonymous')
    var.get(u'require')(Js(u'./_hide'))(var.get(u'IteratorPrototype'), var.get(u'require')(Js(u'./_wks'))(Js(u'iterator')), PyJs_anonymous_1599_)
    @Js
    def PyJs_anonymous_1600_(Constructor, NAME, next, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'next':next, u'NAME':NAME, u'Constructor':Constructor}, var)
        var.registers([u'next', u'NAME', u'Constructor'])
        PyJs_Object_1601_ = Js({u'next':var.get(u'descriptor')(Js(1.0), var.get(u'next'))})
        var.get(u'Constructor').put(u'prototype', var.get(u'create')(var.get(u'IteratorPrototype'), PyJs_Object_1601_))
        var.get(u'setToStringTag')(var.get(u'Constructor'), (var.get(u'NAME')+Js(u' Iterator')))
    PyJs_anonymous_1600_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1600_)
PyJs_anonymous_1597_._set_name(u'anonymous')
PyJs_Object_1602_ = Js({u'./_hide':Js(156.0),u'./_object-create':Js(172.0),u'./_property-desc':Js(184.0),u'./_set-to-string-tag':Js(189.0),u'./_wks':Js(202.0)})
@Js
def PyJs_anonymous_1603_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'returnThis', u'$iterCreate', u'redefine', u'hide', u'ITERATOR', u'KEYS', u'$export', u'setToStringTag', u'BUGGY', u'require', u'LIBRARY', u'getPrototypeOf', u'Iterators', u'VALUES', u'module', u'has', u'FF_ITERATOR', u'exports'])
    Js(u'use strict')
    var.put(u'LIBRARY', var.get(u'require')(Js(u'./_library')))
    var.put(u'$export', var.get(u'require')(Js(u'./_export')))
    var.put(u'redefine', var.get(u'require')(Js(u'./_redefine')))
    var.put(u'hide', var.get(u'require')(Js(u'./_hide')))
    var.put(u'has', var.get(u'require')(Js(u'./_has')))
    var.put(u'Iterators', var.get(u'require')(Js(u'./_iterators')))
    var.put(u'$iterCreate', var.get(u'require')(Js(u'./_iter-create')))
    var.put(u'setToStringTag', var.get(u'require')(Js(u'./_set-to-string-tag')))
    var.put(u'getPrototypeOf', var.get(u'require')(Js(u'./_object-gpo')))
    var.put(u'ITERATOR', var.get(u'require')(Js(u'./_wks'))(Js(u'iterator')))
    var.put(u'BUGGY', (Js([]).get(u'keys') and Js([]).callprop(u'keys').contains(Js(u'next'))).neg())
    var.put(u'FF_ITERATOR', Js(u'@@iterator'))
    var.put(u'KEYS', Js(u'keys'))
    var.put(u'VALUES', Js(u'values'))
    @Js
    def PyJs_anonymous_1604_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this")
    PyJs_anonymous_1604_._set_name(u'anonymous')
    var.put(u'returnThis', PyJs_anonymous_1604_)
    @Js
    def PyJs_anonymous_1605_(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED, this, arguments, var=var):
        var = Scope({u'FORCED':FORCED, u'NAME':NAME, u'DEFAULT':DEFAULT, u'Constructor':Constructor, u'next':next, u'this':this, u'Base':Base, u'arguments':arguments, u'IS_SET':IS_SET}, var)
        var.registers([u'DEF_VALUES', u'Base', u'$entries', u'methods', u'$default', u'proto', u'DEFAULT', u'IteratorPrototype', u'Constructor', u'getMethod', u'next', u'IS_SET', u'$anyNative', u'TAG', u'key', u'VALUES_BUG', u'$native', u'FORCED', u'NAME'])
        var.get(u'$iterCreate')(var.get(u'Constructor'), var.get(u'NAME'), var.get(u'next'))
        @Js
        def PyJs_anonymous_1606_(kind, this, arguments, var=var):
            var = Scope({u'this':this, u'kind':kind, u'arguments':arguments}, var)
            var.registers([u'kind'])
            if (var.get(u'BUGGY').neg() and var.get(u'proto').contains(var.get(u'kind'))):
                return var.get(u'proto').get(var.get(u'kind'))
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'kind'))
                if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'KEYS')):
                    SWITCHED = True
                    @Js
                    def PyJs_keys_1607_(this, arguments, var=var):
                        var = Scope({u'this':this, u'keys':PyJs_keys_1607_, u'arguments':arguments}, var)
                        var.registers([])
                        return var.get(u'Constructor').create(var.get(u"this"), var.get(u'kind'))
                    PyJs_keys_1607_._set_name(u'keys')
                    return PyJs_keys_1607_
                if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'VALUES')):
                    SWITCHED = True
                    @Js
                    def PyJs_values_1608_(this, arguments, var=var):
                        var = Scope({u'this':this, u'values':PyJs_values_1608_, u'arguments':arguments}, var)
                        var.registers([])
                        return var.get(u'Constructor').create(var.get(u"this"), var.get(u'kind'))
                    PyJs_values_1608_._set_name(u'values')
                    return PyJs_values_1608_
                SWITCHED = True
                break
            @Js
            def PyJs_entries_1609_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'entries':PyJs_entries_1609_}, var)
                var.registers([])
                return var.get(u'Constructor').create(var.get(u"this"), var.get(u'kind'))
            PyJs_entries_1609_._set_name(u'entries')
            return PyJs_entries_1609_
        PyJs_anonymous_1606_._set_name(u'anonymous')
        var.put(u'getMethod', PyJs_anonymous_1606_)
        var.put(u'TAG', (var.get(u'NAME')+Js(u' Iterator')))
        var.put(u'DEF_VALUES', (var.get(u'DEFAULT')==var.get(u'VALUES')))
        var.put(u'VALUES_BUG', Js(False))
        var.put(u'proto', var.get(u'Base').get(u'prototype'))
        var.put(u'$native', ((var.get(u'proto').get(var.get(u'ITERATOR')) or var.get(u'proto').get(var.get(u'FF_ITERATOR'))) or (var.get(u'DEFAULT') and var.get(u'proto').get(var.get(u'DEFAULT')))))
        var.put(u'$default', (var.get(u'$native') or var.get(u'getMethod')(var.get(u'DEFAULT'))))
        var.put(u'$entries', ((var.get(u'$default') if var.get(u'DEF_VALUES').neg() else var.get(u'getMethod')(Js(u'entries'))) if var.get(u'DEFAULT') else var.get(u'undefined')))
        var.put(u'$anyNative', ((var.get(u'proto').get(u'entries') or var.get(u'$native')) if (var.get(u'NAME')==Js(u'Array')) else var.get(u'$native')))
        if var.get(u'$anyNative'):
            var.put(u'IteratorPrototype', var.get(u'getPrototypeOf')(var.get(u'$anyNative').callprop(u'call', var.get(u'Base').create())))
            if PyJsStrictNeq(var.get(u'IteratorPrototype'),var.get(u'Object').get(u'prototype')):
                var.get(u'setToStringTag')(var.get(u'IteratorPrototype'), var.get(u'TAG'), var.get(u'true'))
                if (var.get(u'LIBRARY').neg() and var.get(u'has')(var.get(u'IteratorPrototype'), var.get(u'ITERATOR')).neg()):
                    var.get(u'hide')(var.get(u'IteratorPrototype'), var.get(u'ITERATOR'), var.get(u'returnThis'))
        if ((var.get(u'DEF_VALUES') and var.get(u'$native')) and PyJsStrictNeq(var.get(u'$native').get(u'name'),var.get(u'VALUES'))):
            var.put(u'VALUES_BUG', var.get(u'true'))
            @Js
            def PyJs_values_1610_(this, arguments, var=var):
                var = Scope({u'this':this, u'values':PyJs_values_1610_, u'arguments':arguments}, var)
                var.registers([])
                return var.get(u'$native').callprop(u'call', var.get(u"this"))
            PyJs_values_1610_._set_name(u'values')
            var.put(u'$default', PyJs_values_1610_)
        if ((var.get(u'LIBRARY').neg() or var.get(u'FORCED')) and ((var.get(u'BUGGY') or var.get(u'VALUES_BUG')) or var.get(u'proto').get(var.get(u'ITERATOR')).neg())):
            var.get(u'hide')(var.get(u'proto'), var.get(u'ITERATOR'), var.get(u'$default'))
        var.get(u'Iterators').put(var.get(u'NAME'), var.get(u'$default'))
        var.get(u'Iterators').put(var.get(u'TAG'), var.get(u'returnThis'))
        if var.get(u'DEFAULT'):
            PyJs_Object_1611_ = Js({u'values':(var.get(u'$default') if var.get(u'DEF_VALUES') else var.get(u'getMethod')(var.get(u'VALUES'))),u'keys':(var.get(u'$default') if var.get(u'IS_SET') else var.get(u'getMethod')(var.get(u'KEYS'))),u'entries':var.get(u'$entries')})
            var.put(u'methods', PyJs_Object_1611_)
            if var.get(u'FORCED'):
                for PyJsTemp in var.get(u'methods'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'proto').contains(var.get(u'key')).neg():
                        var.get(u'redefine')(var.get(u'proto'), var.get(u'key'), var.get(u'methods').get(var.get(u'key')))
            else:
                var.get(u'$export')((var.get(u'$export').get(u'P')+(var.get(u'$export').get(u'F')*(var.get(u'BUGGY') or var.get(u'VALUES_BUG')))), var.get(u'NAME'), var.get(u'methods'))
        return var.get(u'methods')
    PyJs_anonymous_1605_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1605_)
PyJs_anonymous_1603_._set_name(u'anonymous')
PyJs_Object_1612_ = Js({u'./_export':Js(151.0),u'./_has':Js(155.0),u'./_hide':Js(156.0),u'./_iter-create':Js(164.0),u'./_iterators':Js(167.0),u'./_library':Js(169.0),u'./_object-gpo':Js(179.0),u'./_redefine':Js(186.0),u'./_set-to-string-tag':Js(189.0),u'./_wks':Js(202.0)})
@Js
def PyJs_anonymous_1613_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_1614_(done, value, this, arguments, var=var):
        var = Scope({u'this':this, u'done':done, u'arguments':arguments, u'value':value}, var)
        var.registers([u'done', u'value'])
        PyJs_Object_1615_ = Js({u'value':var.get(u'value'),u'done':var.get(u'done').neg().neg()})
        return PyJs_Object_1615_
    PyJs_anonymous_1614_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1614_)
PyJs_anonymous_1613_._set_name(u'anonymous')
PyJs_Object_1616_ = Js({})
@Js
def PyJs_anonymous_1617_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1618_ = Js({})
    var.get(u'module').put(u'exports', PyJs_Object_1618_)
PyJs_anonymous_1617_._set_name(u'anonymous')
PyJs_Object_1619_ = Js({})
@Js
def PyJs_anonymous_1620_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'toIObject', u'exports', u'module', u'getKeys'])
    var.put(u'getKeys', var.get(u'require')(Js(u'./_object-keys')))
    var.put(u'toIObject', var.get(u'require')(Js(u'./_to-iobject')))
    @Js
    def PyJs_anonymous_1621_(object, el, this, arguments, var=var):
        var = Scope({u'this':this, u'el':el, u'object':object, u'arguments':arguments}, var)
        var.registers([u'index', u'el', u'keys', u'object', u'O', u'length', u'key'])
        var.put(u'O', var.get(u'toIObject')(var.get(u'object')))
        var.put(u'keys', var.get(u'getKeys')(var.get(u'O')))
        var.put(u'length', var.get(u'keys').get(u'length'))
        var.put(u'index', Js(0.0))
        while (var.get(u'length')>var.get(u'index')):
            if PyJsStrictEq(var.get(u'O').get(var.put(u'key', var.get(u'keys').get((var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1))))),var.get(u'el')):
                return var.get(u'key')
    PyJs_anonymous_1621_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1621_)
PyJs_anonymous_1620_._set_name(u'anonymous')
PyJs_Object_1622_ = Js({u'./_object-keys':Js(181.0),u'./_to-iobject':Js(195.0)})
@Js
def PyJs_anonymous_1623_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'module').put(u'exports', var.get(u'true'))
PyJs_anonymous_1623_._set_name(u'anonymous')
PyJs_Object_1624_ = Js({})
@Js
def PyJs_anonymous_1625_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'fastKey', u'FREEZE', u'getWeak', u'require', u'isExtensible', u'exports', u'module', u'id', u'setMeta', u'META', u'meta', u'onFreeze', u'has', u'setDesc', u'isObject'])
    var.put(u'META', var.get(u'require')(Js(u'./_uid'))(Js(u'meta')))
    var.put(u'isObject', var.get(u'require')(Js(u'./_is-object')))
    var.put(u'has', var.get(u'require')(Js(u'./_has')))
    var.put(u'setDesc', var.get(u'require')(Js(u'./_object-dp')).get(u'f'))
    var.put(u'id', Js(0.0))
    @Js
    def PyJs_anonymous_1626_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u'true')
    PyJs_anonymous_1626_._set_name(u'anonymous')
    var.put(u'isExtensible', (var.get(u'Object').get(u'isExtensible') or PyJs_anonymous_1626_))
    @Js
    def PyJs_anonymous_1627_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        PyJs_Object_1628_ = Js({})
        return var.get(u'isExtensible')(var.get(u'Object').callprop(u'preventExtensions', PyJs_Object_1628_))
    PyJs_anonymous_1627_._set_name(u'anonymous')
    var.put(u'FREEZE', var.get(u'require')(Js(u'./_fails'))(PyJs_anonymous_1627_).neg())
    @Js
    def PyJs_anonymous_1629_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        PyJs_Object_1632_ = Js({})
        PyJs_Object_1631_ = Js({u'i':(Js(u'O')+var.put(u'id',Js(var.get(u'id').to_number())+Js(1))),u'w':PyJs_Object_1632_})
        PyJs_Object_1630_ = Js({u'value':PyJs_Object_1631_})
        var.get(u'setDesc')(var.get(u'it'), var.get(u'META'), PyJs_Object_1630_)
    PyJs_anonymous_1629_._set_name(u'anonymous')
    var.put(u'setMeta', PyJs_anonymous_1629_)
    @Js
    def PyJs_anonymous_1633_(it, create, this, arguments, var=var):
        var = Scope({u'this':this, u'create':create, u'it':it, u'arguments':arguments}, var)
        var.registers([u'create', u'it'])
        if var.get(u'isObject')(var.get(u'it')).neg():
            return (var.get(u'it') if (var.get(u'it',throw=False).typeof()==Js(u'symbol')) else ((Js(u'S') if (var.get(u'it',throw=False).typeof()==Js(u'string')) else Js(u'P'))+var.get(u'it')))
        if var.get(u'has')(var.get(u'it'), var.get(u'META')).neg():
            if var.get(u'isExtensible')(var.get(u'it')).neg():
                return Js(u'F')
            if var.get(u'create').neg():
                return Js(u'E')
            var.get(u'setMeta')(var.get(u'it'))
        return var.get(u'it').get(var.get(u'META')).get(u'i')
    PyJs_anonymous_1633_._set_name(u'anonymous')
    var.put(u'fastKey', PyJs_anonymous_1633_)
    @Js
    def PyJs_anonymous_1634_(it, create, this, arguments, var=var):
        var = Scope({u'this':this, u'create':create, u'it':it, u'arguments':arguments}, var)
        var.registers([u'create', u'it'])
        if var.get(u'has')(var.get(u'it'), var.get(u'META')).neg():
            if var.get(u'isExtensible')(var.get(u'it')).neg():
                return var.get(u'true')
            if var.get(u'create').neg():
                return Js(False)
            var.get(u'setMeta')(var.get(u'it'))
        return var.get(u'it').get(var.get(u'META')).get(u'w')
    PyJs_anonymous_1634_._set_name(u'anonymous')
    var.put(u'getWeak', PyJs_anonymous_1634_)
    @Js
    def PyJs_anonymous_1635_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        if (((var.get(u'FREEZE') and var.get(u'meta').get(u'NEED')) and var.get(u'isExtensible')(var.get(u'it'))) and var.get(u'has')(var.get(u'it'), var.get(u'META')).neg()):
            var.get(u'setMeta')(var.get(u'it'))
        return var.get(u'it')
    PyJs_anonymous_1635_._set_name(u'anonymous')
    var.put(u'onFreeze', PyJs_anonymous_1635_)
    PyJs_Object_1636_ = Js({u'KEY':var.get(u'META'),u'NEED':Js(False),u'fastKey':var.get(u'fastKey'),u'getWeak':var.get(u'getWeak'),u'onFreeze':var.get(u'onFreeze')})
    var.put(u'meta', var.get(u'module').put(u'exports', PyJs_Object_1636_))
PyJs_anonymous_1625_._set_name(u'anonymous')
PyJs_Object_1637_ = Js({u'./_fails':Js(152.0),u'./_has':Js(155.0),u'./_is-object':Js(162.0),u'./_object-dp':Js(173.0),u'./_uid':Js(199.0)})
@Js
def PyJs_anonymous_1638_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'IObject', u'$assign', u'toObject', u'pIE', u'module', u'gOPS', u'getKeys', u'require'])
    Js(u'use strict')
    var.put(u'getKeys', var.get(u'require')(Js(u'./_object-keys')))
    var.put(u'gOPS', var.get(u'require')(Js(u'./_object-gops')))
    var.put(u'pIE', var.get(u'require')(Js(u'./_object-pie')))
    var.put(u'toObject', var.get(u'require')(Js(u'./_to-object')))
    var.put(u'IObject', var.get(u'require')(Js(u'./_iobject')))
    var.put(u'$assign', var.get(u'Object').get(u'assign'))
    @Js
    def PyJs_assign_1639_(target, source, this, arguments, var=var):
        var = Scope({u'this':this, u'source':source, u'assign':PyJs_assign_1639_, u'target':target, u'arguments':arguments}, var)
        var.registers([u'index', u'target', u'getSymbols', u'keys', u'j', u'S', u'isEnum', u'aLen', u'T', u'key', u'length', u'source'])
        var.put(u'T', var.get(u'toObject')(var.get(u'target')))
        var.put(u'aLen', var.get(u'arguments').get(u'length'))
        var.put(u'index', Js(1.0))
        var.put(u'getSymbols', var.get(u'gOPS').get(u'f'))
        var.put(u'isEnum', var.get(u'pIE').get(u'f'))
        while (var.get(u'aLen')>var.get(u'index')):
            var.put(u'S', var.get(u'IObject')(var.get(u'arguments').get((var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1)))))
            var.put(u'keys', (var.get(u'getKeys')(var.get(u'S')).callprop(u'concat', var.get(u'getSymbols')(var.get(u'S'))) if var.get(u'getSymbols') else var.get(u'getKeys')(var.get(u'S'))))
            var.put(u'length', var.get(u'keys').get(u'length'))
            var.put(u'j', Js(0.0))
            while (var.get(u'length')>var.get(u'j')):
                if var.get(u'isEnum').callprop(u'call', var.get(u'S'), var.put(u'key', var.get(u'keys').get((var.put(u'j',Js(var.get(u'j').to_number())+Js(1))-Js(1))))):
                    var.get(u'T').put(var.get(u'key'), var.get(u'S').get(var.get(u'key')))
        return var.get(u'T')
    PyJs_assign_1639_._set_name(u'assign')
    @Js
    def PyJs_anonymous_1640_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'A', u'S', u'B', u'K'])
        PyJs_Object_1641_ = Js({})
        var.put(u'A', PyJs_Object_1641_)
        PyJs_Object_1642_ = Js({})
        var.put(u'B', PyJs_Object_1642_)
        var.put(u'S', var.get(u'Symbol')())
        var.put(u'K', Js(u'abcdefghijklmnopqrst'))
        var.get(u'A').put(var.get(u'S'), Js(7.0))
        @Js
        def PyJs_anonymous_1643_(k, this, arguments, var=var):
            var = Scope({u'this':this, u'k':k, u'arguments':arguments}, var)
            var.registers([u'k'])
            var.get(u'B').put(var.get(u'k'), var.get(u'k'))
        PyJs_anonymous_1643_._set_name(u'anonymous')
        var.get(u'K').callprop(u'split', Js(u'')).callprop(u'forEach', PyJs_anonymous_1643_)
        PyJs_Object_1644_ = Js({})
        PyJs_Object_1645_ = Js({})
        return ((var.get(u'$assign')(PyJs_Object_1644_, var.get(u'A')).get(var.get(u'S'))!=Js(7.0)) or (var.get(u'Object').callprop(u'keys', var.get(u'$assign')(PyJs_Object_1645_, var.get(u'B'))).callprop(u'join', Js(u''))!=var.get(u'K')))
    PyJs_anonymous_1640_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', (PyJs_assign_1639_ if (var.get(u'$assign').neg() or var.get(u'require')(Js(u'./_fails'))(PyJs_anonymous_1640_)) else var.get(u'$assign')))
PyJs_anonymous_1638_._set_name(u'anonymous')
PyJs_Object_1646_ = Js({u'./_fails':Js(152.0),u'./_iobject':Js(159.0),u'./_object-gops':Js(178.0),u'./_object-keys':Js(181.0),u'./_object-pie':Js(182.0),u'./_to-object':Js(197.0)})
@Js
def PyJs_anonymous_1647_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'dPs', u'require', u'enumBugKeys', u'module', u'IE_PROTO', u'anObject', u'createDict', u'PROTOTYPE', u'Empty'])
    var.put(u'anObject', var.get(u'require')(Js(u'./_an-object')))
    var.put(u'dPs', var.get(u'require')(Js(u'./_object-dps')))
    var.put(u'enumBugKeys', var.get(u'require')(Js(u'./_enum-bug-keys')))
    var.put(u'IE_PROTO', var.get(u'require')(Js(u'./_shared-key'))(Js(u'IE_PROTO')))
    @Js
    def PyJs_anonymous_1648_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        pass
    PyJs_anonymous_1648_._set_name(u'anonymous')
    var.put(u'Empty', PyJs_anonymous_1648_)
    var.put(u'PROTOTYPE', Js(u'prototype'))
    @Js
    def PyJs_anonymous_1649_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'i', u'lt', u'gt', u'iframeDocument', u'iframe'])
        var.put(u'iframe', var.get(u'require')(Js(u'./_dom-create'))(Js(u'iframe')))
        var.put(u'i', var.get(u'enumBugKeys').get(u'length'))
        var.put(u'lt', Js(u'<'))
        var.put(u'gt', Js(u'>'))
        var.get(u'iframe').get(u'style').put(u'display', Js(u'none'))
        var.get(u'require')(Js(u'./_html')).callprop(u'appendChild', var.get(u'iframe'))
        var.get(u'iframe').put(u'src', Js(u'javascript:'))
        var.put(u'iframeDocument', var.get(u'iframe').get(u'contentWindow').get(u'document'))
        var.get(u'iframeDocument').callprop(u'open')
        var.get(u'iframeDocument').callprop(u'write', ((((((var.get(u'lt')+Js(u'script'))+var.get(u'gt'))+Js(u'document.F=Object'))+var.get(u'lt'))+Js(u'/script'))+var.get(u'gt')))
        var.get(u'iframeDocument').callprop(u'close')
        var.put(u'createDict', var.get(u'iframeDocument').get(u'F'))
        while (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1)):
            var.get(u'createDict').get(var.get(u'PROTOTYPE')).delete(var.get(u'enumBugKeys').get(var.get(u'i')))
        return var.get(u'createDict')()
    PyJs_anonymous_1649_._set_name(u'anonymous')
    var.put(u'createDict', PyJs_anonymous_1649_)
    @Js
    def PyJs_create_1650_(O, Properties, this, arguments, var=var):
        var = Scope({u'this':this, u'create':PyJs_create_1650_, u'Properties':Properties, u'O':O, u'arguments':arguments}, var)
        var.registers([u'result', u'O', u'Properties'])
        pass
        if PyJsStrictNeq(var.get(u'O'),var.get(u"null")):
            var.get(u'Empty').put(var.get(u'PROTOTYPE'), var.get(u'anObject')(var.get(u'O')))
            var.put(u'result', var.get(u'Empty').create())
            var.get(u'Empty').put(var.get(u'PROTOTYPE'), var.get(u"null"))
            var.get(u'result').put(var.get(u'IE_PROTO'), var.get(u'O'))
        else:
            var.put(u'result', var.get(u'createDict')())
        return (var.get(u'result') if PyJsStrictEq(var.get(u'Properties'),var.get(u'undefined')) else var.get(u'dPs')(var.get(u'result'), var.get(u'Properties')))
    PyJs_create_1650_._set_name(u'create')
    var.get(u'module').put(u'exports', (var.get(u'Object').get(u'create') or PyJs_create_1650_))
PyJs_anonymous_1647_._set_name(u'anonymous')
PyJs_Object_1651_ = Js({u'./_an-object':Js(132.0),u'./_dom-create':Js(148.0),u'./_enum-bug-keys':Js(149.0),u'./_html':Js(157.0),u'./_object-dps':Js(174.0),u'./_shared-key':Js(190.0)})
@Js
def PyJs_anonymous_1652_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'toPrimitive', u'module', u'anObject', u'IE8_DOM_DEFINE', u'dP'])
    var.put(u'anObject', var.get(u'require')(Js(u'./_an-object')))
    var.put(u'IE8_DOM_DEFINE', var.get(u'require')(Js(u'./_ie8-dom-define')))
    var.put(u'toPrimitive', var.get(u'require')(Js(u'./_to-primitive')))
    var.put(u'dP', var.get(u'Object').get(u'defineProperty'))
    @Js
    def PyJs_defineProperty_1653_(O, P, Attributes, this, arguments, var=var):
        var = Scope({u'this':this, u'O':O, u'P':P, u'arguments':arguments, u'defineProperty':PyJs_defineProperty_1653_, u'Attributes':Attributes}, var)
        var.registers([u'P', u'O', u'Attributes'])
        var.get(u'anObject')(var.get(u'O'))
        var.put(u'P', var.get(u'toPrimitive')(var.get(u'P'), var.get(u'true')))
        var.get(u'anObject')(var.get(u'Attributes'))
        if var.get(u'IE8_DOM_DEFINE'):
            try:
                return var.get(u'dP')(var.get(u'O'), var.get(u'P'), var.get(u'Attributes'))
            except PyJsException as PyJsTempException:
                PyJsHolder_65_75205354 = var.own.get(u'e')
                var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
                try:
                    pass
                finally:
                    if PyJsHolder_65_75205354 is not None:
                        var.own[u'e'] = PyJsHolder_65_75205354
                    else:
                        del var.own[u'e']
                    del PyJsHolder_65_75205354
        if (var.get(u'Attributes').contains(Js(u'get')) or var.get(u'Attributes').contains(Js(u'set'))):
            PyJsTempException = JsToPyException(var.get(u'TypeError')(Js(u'Accessors not supported!')))
            raise PyJsTempException
        if var.get(u'Attributes').contains(Js(u'value')):
            var.get(u'O').put(var.get(u'P'), var.get(u'Attributes').get(u'value'))
        return var.get(u'O')
    PyJs_defineProperty_1653_._set_name(u'defineProperty')
    var.get(u'exports').put(u'f', (var.get(u'Object').get(u'defineProperty') if var.get(u'require')(Js(u'./_descriptors')) else PyJs_defineProperty_1653_))
PyJs_anonymous_1652_._set_name(u'anonymous')
PyJs_Object_1654_ = Js({u'./_an-object':Js(132.0),u'./_descriptors':Js(147.0),u'./_ie8-dom-define':Js(158.0),u'./_to-primitive':Js(198.0)})
@Js
def PyJs_anonymous_1655_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'getKeys', u'anObject', u'dP'])
    var.put(u'dP', var.get(u'require')(Js(u'./_object-dp')))
    var.put(u'anObject', var.get(u'require')(Js(u'./_an-object')))
    var.put(u'getKeys', var.get(u'require')(Js(u'./_object-keys')))
    @Js
    def PyJs_defineProperties_1656_(O, Properties, this, arguments, var=var):
        var = Scope({u'this':this, u'defineProperties':PyJs_defineProperties_1656_, u'Properties':Properties, u'O':O, u'arguments':arguments}, var)
        var.registers([u'P', u'keys', u'O', u'i', u'length', u'Properties'])
        var.get(u'anObject')(var.get(u'O'))
        var.put(u'keys', var.get(u'getKeys')(var.get(u'Properties')))
        var.put(u'length', var.get(u'keys').get(u'length'))
        var.put(u'i', Js(0.0))
        while (var.get(u'length')>var.get(u'i')):
            var.get(u'dP').callprop(u'f', var.get(u'O'), var.put(u'P', var.get(u'keys').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1)))), var.get(u'Properties').get(var.get(u'P')))
        return var.get(u'O')
    PyJs_defineProperties_1656_._set_name(u'defineProperties')
    var.get(u'module').put(u'exports', (var.get(u'Object').get(u'defineProperties') if var.get(u'require')(Js(u'./_descriptors')) else PyJs_defineProperties_1656_))
PyJs_anonymous_1655_._set_name(u'anonymous')
PyJs_Object_1657_ = Js({u'./_an-object':Js(132.0),u'./_descriptors':Js(147.0),u'./_object-dp':Js(173.0),u'./_object-keys':Js(181.0)})
@Js
def PyJs_anonymous_1658_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'toPrimitive', u'module', u'pIE', u'toIObject', u'IE8_DOM_DEFINE', u'gOPD', u'has', u'createDesc'])
    var.put(u'pIE', var.get(u'require')(Js(u'./_object-pie')))
    var.put(u'createDesc', var.get(u'require')(Js(u'./_property-desc')))
    var.put(u'toIObject', var.get(u'require')(Js(u'./_to-iobject')))
    var.put(u'toPrimitive', var.get(u'require')(Js(u'./_to-primitive')))
    var.put(u'has', var.get(u'require')(Js(u'./_has')))
    var.put(u'IE8_DOM_DEFINE', var.get(u'require')(Js(u'./_ie8-dom-define')))
    var.put(u'gOPD', var.get(u'Object').get(u'getOwnPropertyDescriptor'))
    @Js
    def PyJs_getOwnPropertyDescriptor_1659_(O, P, this, arguments, var=var):
        var = Scope({u'this':this, u'P':P, u'getOwnPropertyDescriptor':PyJs_getOwnPropertyDescriptor_1659_, u'arguments':arguments, u'O':O}, var)
        var.registers([u'P', u'O'])
        var.put(u'O', var.get(u'toIObject')(var.get(u'O')))
        var.put(u'P', var.get(u'toPrimitive')(var.get(u'P'), var.get(u'true')))
        if var.get(u'IE8_DOM_DEFINE'):
            try:
                return var.get(u'gOPD')(var.get(u'O'), var.get(u'P'))
            except PyJsException as PyJsTempException:
                PyJsHolder_65_6934147 = var.own.get(u'e')
                var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
                try:
                    pass
                finally:
                    if PyJsHolder_65_6934147 is not None:
                        var.own[u'e'] = PyJsHolder_65_6934147
                    else:
                        del var.own[u'e']
                    del PyJsHolder_65_6934147
        if var.get(u'has')(var.get(u'O'), var.get(u'P')):
            return var.get(u'createDesc')(var.get(u'pIE').get(u'f').callprop(u'call', var.get(u'O'), var.get(u'P')).neg(), var.get(u'O').get(var.get(u'P')))
    PyJs_getOwnPropertyDescriptor_1659_._set_name(u'getOwnPropertyDescriptor')
    var.get(u'exports').put(u'f', (var.get(u'gOPD') if var.get(u'require')(Js(u'./_descriptors')) else PyJs_getOwnPropertyDescriptor_1659_))
PyJs_anonymous_1658_._set_name(u'anonymous')
PyJs_Object_1660_ = Js({u'./_descriptors':Js(147.0),u'./_has':Js(155.0),u'./_ie8-dom-define':Js(158.0),u'./_object-pie':Js(182.0),u'./_property-desc':Js(184.0),u'./_to-iobject':Js(195.0),u'./_to-primitive':Js(198.0)})
@Js
def PyJs_anonymous_1661_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'getWindowNames', u'windowNames', u'gOPN', u'toString', u'module', u'toIObject'])
    var.put(u'toIObject', var.get(u'require')(Js(u'./_to-iobject')))
    var.put(u'gOPN', var.get(u'require')(Js(u'./_object-gopn')).get(u'f'))
    PyJs_Object_1662_ = Js({})
    var.put(u'toString', PyJs_Object_1662_.get(u'toString'))
    var.put(u'windowNames', (var.get(u'Object').callprop(u'getOwnPropertyNames', var.get(u'window')) if (((var.get(u'window',throw=False).typeof()==Js(u'object')) and var.get(u'window')) and var.get(u'Object').get(u'getOwnPropertyNames')) else Js([])))
    @Js
    def PyJs_anonymous_1663_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        try:
            return var.get(u'gOPN')(var.get(u'it'))
        except PyJsException as PyJsTempException:
            PyJsHolder_65_72290655 = var.own.get(u'e')
            var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
            try:
                return var.get(u'windowNames').callprop(u'slice')
            finally:
                if PyJsHolder_65_72290655 is not None:
                    var.own[u'e'] = PyJsHolder_65_72290655
                else:
                    del var.own[u'e']
                del PyJsHolder_65_72290655
    PyJs_anonymous_1663_._set_name(u'anonymous')
    var.put(u'getWindowNames', PyJs_anonymous_1663_)
    @Js
    def PyJs_getOwnPropertyNames_1664_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'getOwnPropertyNames':PyJs_getOwnPropertyNames_1664_, u'arguments':arguments}, var)
        var.registers([u'it'])
        return (var.get(u'getWindowNames')(var.get(u'it')) if (var.get(u'windowNames') and (var.get(u'toString').callprop(u'call', var.get(u'it'))==Js(u'[object Window]'))) else var.get(u'gOPN')(var.get(u'toIObject')(var.get(u'it'))))
    PyJs_getOwnPropertyNames_1664_._set_name(u'getOwnPropertyNames')
    var.get(u'module').get(u'exports').put(u'f', PyJs_getOwnPropertyNames_1664_)
PyJs_anonymous_1661_._set_name(u'anonymous')
PyJs_Object_1665_ = Js({u'./_object-gopn':Js(177.0),u'./_to-iobject':Js(195.0)})
@Js
def PyJs_anonymous_1666_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'hiddenKeys', u'require', u'$keys', u'module'])
    var.put(u'$keys', var.get(u'require')(Js(u'./_object-keys-internal')))
    var.put(u'hiddenKeys', var.get(u'require')(Js(u'./_enum-bug-keys')).callprop(u'concat', Js(u'length'), Js(u'prototype')))
    @Js
    def PyJs_getOwnPropertyNames_1667_(O, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'O':O, u'getOwnPropertyNames':PyJs_getOwnPropertyNames_1667_}, var)
        var.registers([u'O'])
        return var.get(u'$keys')(var.get(u'O'), var.get(u'hiddenKeys'))
    PyJs_getOwnPropertyNames_1667_._set_name(u'getOwnPropertyNames')
    var.get(u'exports').put(u'f', (var.get(u'Object').get(u'getOwnPropertyNames') or PyJs_getOwnPropertyNames_1667_))
PyJs_anonymous_1666_._set_name(u'anonymous')
PyJs_Object_1668_ = Js({u'./_enum-bug-keys':Js(149.0),u'./_object-keys-internal':Js(180.0)})
@Js
def PyJs_anonymous_1669_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'exports').put(u'f', var.get(u'Object').get(u'getOwnPropertySymbols'))
PyJs_anonymous_1669_._set_name(u'anonymous')
PyJs_Object_1670_ = Js({})
@Js
def PyJs_anonymous_1671_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'toObject', u'module', u'IE_PROTO', u'ObjectProto', u'has', u'require'])
    var.put(u'has', var.get(u'require')(Js(u'./_has')))
    var.put(u'toObject', var.get(u'require')(Js(u'./_to-object')))
    var.put(u'IE_PROTO', var.get(u'require')(Js(u'./_shared-key'))(Js(u'IE_PROTO')))
    var.put(u'ObjectProto', var.get(u'Object').get(u'prototype'))
    @Js
    def PyJs_anonymous_1672_(O, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'O':O}, var)
        var.registers([u'O'])
        var.put(u'O', var.get(u'toObject')(var.get(u'O')))
        if var.get(u'has')(var.get(u'O'), var.get(u'IE_PROTO')):
            return var.get(u'O').get(var.get(u'IE_PROTO'))
        if ((var.get(u'O').get(u'constructor').typeof()==Js(u'function')) and var.get(u'O').instanceof(var.get(u'O').get(u'constructor'))):
            return var.get(u'O').get(u'constructor').get(u'prototype')
        return (var.get(u'ObjectProto') if var.get(u'O').instanceof(var.get(u'Object')) else var.get(u"null"))
    PyJs_anonymous_1672_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', (var.get(u'Object').get(u'getPrototypeOf') or PyJs_anonymous_1672_))
PyJs_anonymous_1671_._set_name(u'anonymous')
PyJs_Object_1673_ = Js({u'./_has':Js(155.0),u'./_shared-key':Js(190.0),u'./_to-object':Js(197.0)})
@Js
def PyJs_anonymous_1674_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'IE_PROTO', u'toIObject', u'arrayIndexOf', u'has'])
    var.put(u'has', var.get(u'require')(Js(u'./_has')))
    var.put(u'toIObject', var.get(u'require')(Js(u'./_to-iobject')))
    var.put(u'arrayIndexOf', var.get(u'require')(Js(u'./_array-includes'))(Js(False)))
    var.put(u'IE_PROTO', var.get(u'require')(Js(u'./_shared-key'))(Js(u'IE_PROTO')))
    @Js
    def PyJs_anonymous_1675_(object, names, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'names':names, u'arguments':arguments}, var)
        var.registers([u'i', u'object', u'O', u'result', u'key', u'names'])
        var.put(u'O', var.get(u'toIObject')(var.get(u'object')))
        var.put(u'i', Js(0.0))
        var.put(u'result', Js([]))
        for PyJsTemp in var.get(u'O'):
            var.put(u'key', PyJsTemp)
            if (var.get(u'key')!=var.get(u'IE_PROTO')):
                (var.get(u'has')(var.get(u'O'), var.get(u'key')) and var.get(u'result').callprop(u'push', var.get(u'key')))
        while (var.get(u'names').get(u'length')>var.get(u'i')):
            if var.get(u'has')(var.get(u'O'), var.put(u'key', var.get(u'names').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))):
                ((~var.get(u'arrayIndexOf')(var.get(u'result'), var.get(u'key'))) or var.get(u'result').callprop(u'push', var.get(u'key')))
        return var.get(u'result')
    PyJs_anonymous_1675_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1675_)
PyJs_anonymous_1674_._set_name(u'anonymous')
PyJs_Object_1676_ = Js({u'./_array-includes':Js(134.0),u'./_has':Js(155.0),u'./_shared-key':Js(190.0),u'./_to-iobject':Js(195.0)})
@Js
def PyJs_anonymous_1677_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'enumBugKeys', u'$keys', u'module'])
    var.put(u'$keys', var.get(u'require')(Js(u'./_object-keys-internal')))
    var.put(u'enumBugKeys', var.get(u'require')(Js(u'./_enum-bug-keys')))
    @Js
    def PyJs_keys_1678_(O, this, arguments, var=var):
        var = Scope({u'this':this, u'keys':PyJs_keys_1678_, u'arguments':arguments, u'O':O}, var)
        var.registers([u'O'])
        return var.get(u'$keys')(var.get(u'O'), var.get(u'enumBugKeys'))
    PyJs_keys_1678_._set_name(u'keys')
    var.get(u'module').put(u'exports', (var.get(u'Object').get(u'keys') or PyJs_keys_1678_))
PyJs_anonymous_1677_._set_name(u'anonymous')
PyJs_Object_1679_ = Js({u'./_enum-bug-keys':Js(149.0),u'./_object-keys-internal':Js(180.0)})
@Js
def PyJs_anonymous_1680_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1681_ = Js({})
    var.get(u'exports').put(u'f', PyJs_Object_1681_.get(u'propertyIsEnumerable'))
PyJs_anonymous_1680_._set_name(u'anonymous')
PyJs_Object_1682_ = Js({})
@Js
def PyJs_anonymous_1683_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'core', u'fails', u'$export', u'require', u'exports', u'module'])
    var.put(u'$export', var.get(u'require')(Js(u'./_export')))
    var.put(u'core', var.get(u'require')(Js(u'./_core')))
    var.put(u'fails', var.get(u'require')(Js(u'./_fails')))
    @Js
    def PyJs_anonymous_1684_(KEY, PyJsArg_65786563_, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'KEY':KEY, u'exec':PyJsArg_65786563_}, var)
        var.registers([u'KEY', u'exp', u'fn', u'exec'])
        PyJs_Object_1685_ = Js({})
        var.put(u'fn', ((var.get(u'core').get(u'Object') or PyJs_Object_1685_).get(var.get(u'KEY')) or var.get(u'Object').get(var.get(u'KEY'))))
        PyJs_Object_1686_ = Js({})
        var.put(u'exp', PyJs_Object_1686_)
        var.get(u'exp').put(var.get(u'KEY'), var.get(u'exec')(var.get(u'fn')))
        @Js
        def PyJs_anonymous_1687_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            var.get(u'fn')(Js(1.0))
        PyJs_anonymous_1687_._set_name(u'anonymous')
        var.get(u'$export')((var.get(u'$export').get(u'S')+(var.get(u'$export').get(u'F')*var.get(u'fails')(PyJs_anonymous_1687_))), Js(u'Object'), var.get(u'exp'))
    PyJs_anonymous_1684_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1684_)
PyJs_anonymous_1683_._set_name(u'anonymous')
PyJs_Object_1688_ = Js({u'./_core':Js(144.0),u'./_export':Js(151.0),u'./_fails':Js(152.0)})
@Js
def PyJs_anonymous_1689_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_1690_(bitmap, value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value, u'bitmap':bitmap}, var)
        var.registers([u'value', u'bitmap'])
        PyJs_Object_1691_ = Js({u'enumerable':(var.get(u'bitmap')&Js(1.0)).neg(),u'configurable':(var.get(u'bitmap')&Js(2.0)).neg(),u'writable':(var.get(u'bitmap')&Js(4.0)).neg(),u'value':var.get(u'value')})
        return PyJs_Object_1691_
    PyJs_anonymous_1690_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1690_)
PyJs_anonymous_1689_._set_name(u'anonymous')
PyJs_Object_1692_ = Js({})
@Js
def PyJs_anonymous_1693_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'hide', u'exports', u'module'])
    var.put(u'hide', var.get(u'require')(Js(u'./_hide')))
    @Js
    def PyJs_anonymous_1694_(target, src, safe, this, arguments, var=var):
        var = Scope({u'this':this, u'src':src, u'safe':safe, u'target':target, u'arguments':arguments}, var)
        var.registers([u'src', u'safe', u'target', u'key'])
        for PyJsTemp in var.get(u'src'):
            var.put(u'key', PyJsTemp)
            if (var.get(u'safe') and var.get(u'target').get(var.get(u'key'))):
                var.get(u'target').put(var.get(u'key'), var.get(u'src').get(var.get(u'key')))
            else:
                var.get(u'hide')(var.get(u'target'), var.get(u'key'), var.get(u'src').get(var.get(u'key')))
        return var.get(u'target')
    PyJs_anonymous_1694_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1694_)
PyJs_anonymous_1693_._set_name(u'anonymous')
PyJs_Object_1695_ = Js({u'./_hide':Js(156.0)})
@Js
def PyJs_anonymous_1696_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./_hide')))
PyJs_anonymous_1696_._set_name(u'anonymous')
PyJs_Object_1697_ = Js({u'./_hide':Js(156.0)})
@Js
def PyJs_anonymous_1698_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'check', u'anObject', u'isObject'])
    var.put(u'isObject', var.get(u'require')(Js(u'./_is-object')))
    var.put(u'anObject', var.get(u'require')(Js(u'./_an-object')))
    @Js
    def PyJs_anonymous_1699_(O, proto, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'O':O, u'proto':proto}, var)
        var.registers([u'O', u'proto'])
        var.get(u'anObject')(var.get(u'O'))
        if (var.get(u'isObject')(var.get(u'proto')).neg() and PyJsStrictNeq(var.get(u'proto'),var.get(u"null"))):
            PyJsTempException = JsToPyException(var.get(u'TypeError')((var.get(u'proto')+Js(u": can't set as prototype!"))))
            raise PyJsTempException
    PyJs_anonymous_1699_._set_name(u'anonymous')
    var.put(u'check', PyJs_anonymous_1699_)
    PyJs_Object_1701_ = Js({})
    @Js
    def PyJs_anonymous_1702_(test, buggy, set, this, arguments, var=var):
        var = Scope({u'test':test, u'this':this, u'buggy':buggy, u'set':set, u'arguments':arguments}, var)
        var.registers([u'test', u'buggy', u'set'])
        try:
            var.put(u'set', var.get(u'require')(Js(u'./_ctx'))(var.get(u'Function').get(u'call'), var.get(u'require')(Js(u'./_object-gopd')).callprop(u'f', var.get(u'Object').get(u'prototype'), Js(u'__proto__')).get(u'set'), Js(2.0)))
            var.get(u'set')(var.get(u'test'), Js([]))
            var.put(u'buggy', var.get(u'test').instanceof(var.get(u'Array')).neg())
        except PyJsException as PyJsTempException:
            PyJsHolder_65_30361003 = var.own.get(u'e')
            var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
            try:
                var.put(u'buggy', var.get(u'true'))
            finally:
                if PyJsHolder_65_30361003 is not None:
                    var.own[u'e'] = PyJsHolder_65_30361003
                else:
                    del var.own[u'e']
                del PyJsHolder_65_30361003
        @Js
        def PyJs_setPrototypeOf_1703_(O, proto, this, arguments, var=var):
            var = Scope({u'this':this, u'setPrototypeOf':PyJs_setPrototypeOf_1703_, u'arguments':arguments, u'O':O, u'proto':proto}, var)
            var.registers([u'O', u'proto'])
            var.get(u'check')(var.get(u'O'), var.get(u'proto'))
            if var.get(u'buggy'):
                var.get(u'O').put(u'__proto__', var.get(u'proto'))
            else:
                var.get(u'set')(var.get(u'O'), var.get(u'proto'))
            return var.get(u'O')
        PyJs_setPrototypeOf_1703_._set_name(u'setPrototypeOf')
        return PyJs_setPrototypeOf_1703_
    PyJs_anonymous_1702_._set_name(u'anonymous')
    PyJs_Object_1704_ = Js({})
    PyJs_Object_1700_ = Js({u'set':(var.get(u'Object').get(u'setPrototypeOf') or (PyJs_anonymous_1702_(PyJs_Object_1701_, Js(False)) if PyJs_Object_1704_.contains(Js(u'__proto__')) else var.get(u'undefined'))),u'check':var.get(u'check')})
    var.get(u'module').put(u'exports', PyJs_Object_1700_)
PyJs_anonymous_1698_._set_name(u'anonymous')
PyJs_Object_1705_ = Js({u'./_an-object':Js(132.0),u'./_ctx':Js(145.0),u'./_is-object':Js(162.0),u'./_object-gopd':Js(175.0)})
@Js
def PyJs_anonymous_1706_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'core', u'exports', u'DESCRIPTORS', u'require', u'global', u'module', u'SPECIES', u'dP'])
    Js(u'use strict')
    var.put(u'global', var.get(u'require')(Js(u'./_global')))
    var.put(u'core', var.get(u'require')(Js(u'./_core')))
    var.put(u'dP', var.get(u'require')(Js(u'./_object-dp')))
    var.put(u'DESCRIPTORS', var.get(u'require')(Js(u'./_descriptors')))
    var.put(u'SPECIES', var.get(u'require')(Js(u'./_wks'))(Js(u'species')))
    @Js
    def PyJs_anonymous_1707_(KEY, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'KEY':KEY}, var)
        var.registers([u'C', u'KEY'])
        var.put(u'C', (var.get(u'core').get(var.get(u'KEY')) if (var.get(u'core').get(var.get(u'KEY')).typeof()==Js(u'function')) else var.get(u'global').get(var.get(u'KEY'))))
        if ((var.get(u'DESCRIPTORS') and var.get(u'C')) and var.get(u'C').get(var.get(u'SPECIES')).neg()):
            @Js
            def PyJs_anonymous_1709_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return var.get(u"this")
            PyJs_anonymous_1709_._set_name(u'anonymous')
            PyJs_Object_1708_ = Js({u'configurable':var.get(u'true'),u'get':PyJs_anonymous_1709_})
            var.get(u'dP').callprop(u'f', var.get(u'C'), var.get(u'SPECIES'), PyJs_Object_1708_)
    PyJs_anonymous_1707_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1707_)
PyJs_anonymous_1706_._set_name(u'anonymous')
PyJs_Object_1710_ = Js({u'./_core':Js(144.0),u'./_descriptors':Js(147.0),u'./_global':Js(154.0),u'./_object-dp':Js(173.0),u'./_wks':Js(202.0)})
@Js
def PyJs_anonymous_1711_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'TAG', u'has', u'def'])
    var.put(u'def', var.get(u'require')(Js(u'./_object-dp')).get(u'f'))
    var.put(u'has', var.get(u'require')(Js(u'./_has')))
    var.put(u'TAG', var.get(u'require')(Js(u'./_wks'))(Js(u'toStringTag')))
    @Js
    def PyJs_anonymous_1712_(it, tag, stat, this, arguments, var=var):
        var = Scope({u'this':this, u'stat':stat, u'tag':tag, u'it':it, u'arguments':arguments}, var)
        var.registers([u'stat', u'tag', u'it'])
        if (var.get(u'it') and var.get(u'has')(var.put(u'it', (var.get(u'it') if var.get(u'stat') else var.get(u'it').get(u'prototype'))), var.get(u'TAG')).neg()):
            PyJs_Object_1713_ = Js({u'configurable':var.get(u'true'),u'value':var.get(u'tag')})
            var.get(u'def')(var.get(u'it'), var.get(u'TAG'), PyJs_Object_1713_)
    PyJs_anonymous_1712_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1712_)
PyJs_anonymous_1711_._set_name(u'anonymous')
PyJs_Object_1714_ = Js({u'./_has':Js(155.0),u'./_object-dp':Js(173.0),u'./_wks':Js(202.0)})
@Js
def PyJs_anonymous_1715_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'shared', u'require', u'exports', u'uid', u'module'])
    var.put(u'shared', var.get(u'require')(Js(u'./_shared'))(Js(u'keys')))
    var.put(u'uid', var.get(u'require')(Js(u'./_uid')))
    @Js
    def PyJs_anonymous_1716_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return (var.get(u'shared').get(var.get(u'key')) or var.get(u'shared').put(var.get(u'key'), var.get(u'uid')(var.get(u'key'))))
    PyJs_anonymous_1716_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1716_)
PyJs_anonymous_1715_._set_name(u'anonymous')
PyJs_Object_1717_ = Js({u'./_shared':Js(191.0),u'./_uid':Js(199.0)})
@Js
def PyJs_anonymous_1718_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'global', u'module', u'SHARED', u'store'])
    var.put(u'global', var.get(u'require')(Js(u'./_global')))
    var.put(u'SHARED', Js(u'__core-js_shared__'))
    PyJs_Object_1719_ = Js({})
    var.put(u'store', (var.get(u'global').get(var.get(u'SHARED')) or var.get(u'global').put(var.get(u'SHARED'), PyJs_Object_1719_)))
    @Js
    def PyJs_anonymous_1720_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        PyJs_Object_1721_ = Js({})
        return (var.get(u'store').get(var.get(u'key')) or var.get(u'store').put(var.get(u'key'), PyJs_Object_1721_))
    PyJs_anonymous_1720_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1720_)
PyJs_anonymous_1718_._set_name(u'anonymous')
PyJs_Object_1722_ = Js({u'./_global':Js(154.0)})
@Js
def PyJs_anonymous_1723_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'defined', u'toInteger', u'exports', u'require', u'module'])
    var.put(u'toInteger', var.get(u'require')(Js(u'./_to-integer')))
    var.put(u'defined', var.get(u'require')(Js(u'./_defined')))
    @Js
    def PyJs_anonymous_1724_(TO_STRING, this, arguments, var=var):
        var = Scope({u'TO_STRING':TO_STRING, u'this':this, u'arguments':arguments}, var)
        var.registers([u'TO_STRING'])
        @Js
        def PyJs_anonymous_1725_(that, pos, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'pos':pos, u'that':that}, var)
            var.registers([u'a', u'b', u'that', u'i', u'l', u'pos', u's'])
            var.put(u's', var.get(u'String')(var.get(u'defined')(var.get(u'that'))))
            var.put(u'i', var.get(u'toInteger')(var.get(u'pos')))
            var.put(u'l', var.get(u's').get(u'length'))
            if ((var.get(u'i')<Js(0.0)) or (var.get(u'i')>=var.get(u'l'))):
                return (Js(u'') if var.get(u'TO_STRING') else var.get(u'undefined'))
            var.put(u'a', var.get(u's').callprop(u'charCodeAt', var.get(u'i')))
            def PyJs_LONG_1726_(var=var):
                return ((var.get(u's').callprop(u'charAt', var.get(u'i')) if var.get(u'TO_STRING') else var.get(u'a')) if (((((var.get(u'a')<Js(55296)) or (var.get(u'a')>Js(56319))) or PyJsStrictEq((var.get(u'i')+Js(1.0)),var.get(u'l'))) or (var.put(u'b', var.get(u's').callprop(u'charCodeAt', (var.get(u'i')+Js(1.0))))<Js(56320))) or (var.get(u'b')>Js(57343))) else (var.get(u's').callprop(u'slice', var.get(u'i'), (var.get(u'i')+Js(2.0))) if var.get(u'TO_STRING') else ((((var.get(u'a')-Js(55296))<<Js(10.0))+(var.get(u'b')-Js(56320)))+Js(65536))))
            return PyJs_LONG_1726_()
        PyJs_anonymous_1725_._set_name(u'anonymous')
        return PyJs_anonymous_1725_
    PyJs_anonymous_1724_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1724_)
PyJs_anonymous_1723_._set_name(u'anonymous')
PyJs_Object_1727_ = Js({u'./_defined':Js(146.0),u'./_to-integer':Js(194.0)})
@Js
def PyJs_anonymous_1728_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'min', u'max', u'toInteger', u'module', u'require'])
    var.put(u'toInteger', var.get(u'require')(Js(u'./_to-integer')))
    var.put(u'max', var.get(u'Math').get(u'max'))
    var.put(u'min', var.get(u'Math').get(u'min'))
    @Js
    def PyJs_anonymous_1729_(index, length, this, arguments, var=var):
        var = Scope({u'this':this, u'index':index, u'length':length, u'arguments':arguments}, var)
        var.registers([u'index', u'length'])
        var.put(u'index', var.get(u'toInteger')(var.get(u'index')))
        return (var.get(u'max')((var.get(u'index')+var.get(u'length')), Js(0.0)) if (var.get(u'index')<Js(0.0)) else var.get(u'min')(var.get(u'index'), var.get(u'length')))
    PyJs_anonymous_1729_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1729_)
PyJs_anonymous_1728_._set_name(u'anonymous')
PyJs_Object_1730_ = Js({u'./_to-integer':Js(194.0)})
@Js
def PyJs_anonymous_1731_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'floor', u'exports', u'module', u'ceil'])
    var.put(u'ceil', var.get(u'Math').get(u'ceil'))
    var.put(u'floor', var.get(u'Math').get(u'floor'))
    @Js
    def PyJs_anonymous_1732_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        return (Js(0.0) if var.get(u'isNaN')(var.put(u'it', (+var.get(u'it')))) else (var.get(u'floor') if (var.get(u'it')>Js(0.0)) else var.get(u'ceil'))(var.get(u'it')))
    PyJs_anonymous_1732_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1732_)
PyJs_anonymous_1731_._set_name(u'anonymous')
PyJs_Object_1733_ = Js({})
@Js
def PyJs_anonymous_1734_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'defined', u'require', u'exports', u'module', u'IObject'])
    var.put(u'IObject', var.get(u'require')(Js(u'./_iobject')))
    var.put(u'defined', var.get(u'require')(Js(u'./_defined')))
    @Js
    def PyJs_anonymous_1735_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        return var.get(u'IObject')(var.get(u'defined')(var.get(u'it')))
    PyJs_anonymous_1735_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1735_)
PyJs_anonymous_1734_._set_name(u'anonymous')
PyJs_Object_1736_ = Js({u'./_defined':Js(146.0),u'./_iobject':Js(159.0)})
@Js
def PyJs_anonymous_1737_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'toInteger', u'exports', u'require', u'module', u'min'])
    var.put(u'toInteger', var.get(u'require')(Js(u'./_to-integer')))
    var.put(u'min', var.get(u'Math').get(u'min'))
    @Js
    def PyJs_anonymous_1738_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        return (var.get(u'min')(var.get(u'toInteger')(var.get(u'it')), Js(9007199254740991)) if (var.get(u'it')>Js(0.0)) else Js(0.0))
    PyJs_anonymous_1738_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1738_)
PyJs_anonymous_1737_._set_name(u'anonymous')
PyJs_Object_1739_ = Js({u'./_to-integer':Js(194.0)})
@Js
def PyJs_anonymous_1740_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'defined', u'require', u'exports', u'module'])
    var.put(u'defined', var.get(u'require')(Js(u'./_defined')))
    @Js
    def PyJs_anonymous_1741_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        return var.get(u'Object')(var.get(u'defined')(var.get(u'it')))
    PyJs_anonymous_1741_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1741_)
PyJs_anonymous_1740_._set_name(u'anonymous')
PyJs_Object_1742_ = Js({u'./_defined':Js(146.0)})
@Js
def PyJs_anonymous_1743_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'isObject', u'module'])
    var.put(u'isObject', var.get(u'require')(Js(u'./_is-object')))
    @Js
    def PyJs_anonymous_1744_(it, S, this, arguments, var=var):
        var = Scope({u'this':this, u'S':S, u'it':it, u'arguments':arguments}, var)
        var.registers([u'S', u'val', u'fn', u'it'])
        if var.get(u'isObject')(var.get(u'it')).neg():
            return var.get(u'it')
        pass
        if ((var.get(u'S') and (var.put(u'fn', var.get(u'it').get(u'toString')).typeof()==Js(u'function'))) and var.get(u'isObject')(var.put(u'val', var.get(u'fn').callprop(u'call', var.get(u'it')))).neg()):
            return var.get(u'val')
        if ((var.put(u'fn', var.get(u'it').get(u'valueOf')).typeof()==Js(u'function')) and var.get(u'isObject')(var.put(u'val', var.get(u'fn').callprop(u'call', var.get(u'it')))).neg()):
            return var.get(u'val')
        if ((var.get(u'S').neg() and (var.put(u'fn', var.get(u'it').get(u'toString')).typeof()==Js(u'function'))) and var.get(u'isObject')(var.put(u'val', var.get(u'fn').callprop(u'call', var.get(u'it')))).neg()):
            return var.get(u'val')
        PyJsTempException = JsToPyException(var.get(u'TypeError')(Js(u"Can't convert object to primitive value")))
        raise PyJsTempException
    PyJs_anonymous_1744_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1744_)
PyJs_anonymous_1743_._set_name(u'anonymous')
PyJs_Object_1745_ = Js({u'./_is-object':Js(162.0)})
@Js
def PyJs_anonymous_1746_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'px', u'require', u'id', u'module'])
    var.put(u'id', Js(0.0))
    var.put(u'px', var.get(u'Math').callprop(u'random'))
    @Js
    def PyJs_anonymous_1747_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return Js(u'Symbol(').callprop(u'concat', (Js(u'') if PyJsStrictEq(var.get(u'key'),var.get(u'undefined')) else var.get(u'key')), Js(u')_'), (var.put(u'id',Js(var.get(u'id').to_number())+Js(1))+var.get(u'px')).callprop(u'toString', Js(36.0)))
    PyJs_anonymous_1747_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1747_)
PyJs_anonymous_1746_._set_name(u'anonymous')
PyJs_Object_1748_ = Js({})
@Js
def PyJs_anonymous_1749_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'core', u'exports', u'wksExt', u'require', u'global', u'LIBRARY', u'module', u'defineProperty'])
    var.put(u'global', var.get(u'require')(Js(u'./_global')))
    var.put(u'core', var.get(u'require')(Js(u'./_core')))
    var.put(u'LIBRARY', var.get(u'require')(Js(u'./_library')))
    var.put(u'wksExt', var.get(u'require')(Js(u'./_wks-ext')))
    var.put(u'defineProperty', var.get(u'require')(Js(u'./_object-dp')).get(u'f'))
    @Js
    def PyJs_anonymous_1750_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name', u'$Symbol'])
        PyJs_Object_1751_ = Js({})
        PyJs_Object_1752_ = Js({})
        var.put(u'$Symbol', (var.get(u'core').get(u'Symbol') or var.get(u'core').put(u'Symbol', (PyJs_Object_1751_ if var.get(u'LIBRARY') else (var.get(u'global').get(u'Symbol') or PyJs_Object_1752_)))))
        if ((var.get(u'name').callprop(u'charAt', Js(0.0))!=Js(u'_')) and var.get(u'$Symbol').contains(var.get(u'name')).neg()):
            PyJs_Object_1753_ = Js({u'value':var.get(u'wksExt').callprop(u'f', var.get(u'name'))})
            var.get(u'defineProperty')(var.get(u'$Symbol'), var.get(u'name'), PyJs_Object_1753_)
    PyJs_anonymous_1750_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_1750_)
PyJs_anonymous_1749_._set_name(u'anonymous')
PyJs_Object_1754_ = Js({u'./_core':Js(144.0),u'./_global':Js(154.0),u'./_library':Js(169.0),u'./_object-dp':Js(173.0),u'./_wks-ext':Js(201.0)})
@Js
def PyJs_anonymous_1755_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'exports').put(u'f', var.get(u'require')(Js(u'./_wks')))
PyJs_anonymous_1755_._set_name(u'anonymous')
PyJs_Object_1756_ = Js({u'./_wks':Js(202.0)})
@Js
def PyJs_anonymous_1757_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'uid', u'Symbol', u'module', u'$exports', u'require', u'store', u'USE_SYMBOL'])
    var.put(u'store', var.get(u'require')(Js(u'./_shared'))(Js(u'wks')))
    var.put(u'uid', var.get(u'require')(Js(u'./_uid')))
    var.put(u'Symbol', var.get(u'require')(Js(u'./_global')).get(u'Symbol'))
    var.put(u'USE_SYMBOL', (var.get(u'Symbol',throw=False).typeof()==Js(u'function')))
    @Js
    def PyJs_anonymous_1758_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name'])
        return (var.get(u'store').get(var.get(u'name')) or var.get(u'store').put(var.get(u'name'), ((var.get(u'USE_SYMBOL') and var.get(u'Symbol').get(var.get(u'name'))) or (var.get(u'Symbol') if var.get(u'USE_SYMBOL') else var.get(u'uid'))((Js(u'Symbol.')+var.get(u'name'))))))
    PyJs_anonymous_1758_._set_name(u'anonymous')
    var.put(u'$exports', var.get(u'module').put(u'exports', PyJs_anonymous_1758_))
    var.get(u'$exports').put(u'store', var.get(u'store'))
PyJs_anonymous_1757_._set_name(u'anonymous')
PyJs_Object_1759_ = Js({u'./_global':Js(154.0),u'./_shared':Js(191.0),u'./_uid':Js(199.0)})
@Js
def PyJs_anonymous_1760_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'ITERATOR', u'require', u'module', u'Iterators', u'classof'])
    var.put(u'classof', var.get(u'require')(Js(u'./_classof')))
    var.put(u'ITERATOR', var.get(u'require')(Js(u'./_wks'))(Js(u'iterator')))
    var.put(u'Iterators', var.get(u'require')(Js(u'./_iterators')))
    @Js
    def PyJs_anonymous_1761_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        if (var.get(u'it')!=var.get(u'undefined')):
            return ((var.get(u'it').get(var.get(u'ITERATOR')) or var.get(u'it').get(u'@@iterator')) or var.get(u'Iterators').get(var.get(u'classof')(var.get(u'it'))))
    PyJs_anonymous_1761_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./_core')).put(u'getIteratorMethod', PyJs_anonymous_1761_))
PyJs_anonymous_1760_._set_name(u'anonymous')
PyJs_Object_1762_ = Js({u'./_classof':Js(138.0),u'./_core':Js(144.0),u'./_iterators':Js(167.0),u'./_wks':Js(202.0)})
@Js
def PyJs_anonymous_1763_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'anObject', u'exports', u'module', u'get'])
    var.put(u'anObject', var.get(u'require')(Js(u'./_an-object')))
    var.put(u'get', var.get(u'require')(Js(u'./core.get-iterator-method')))
    @Js
    def PyJs_anonymous_1764_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'iterFn', u'it'])
        var.put(u'iterFn', var.get(u'get')(var.get(u'it')))
        if (var.get(u'iterFn',throw=False).typeof()!=Js(u'function')):
            PyJsTempException = JsToPyException(var.get(u'TypeError')((var.get(u'it')+Js(u' is not iterable!'))))
            raise PyJsTempException
        return var.get(u'anObject')(var.get(u'iterFn').callprop(u'call', var.get(u'it')))
    PyJs_anonymous_1764_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./_core')).put(u'getIterator', PyJs_anonymous_1764_))
PyJs_anonymous_1763_._set_name(u'anonymous')
PyJs_Object_1765_ = Js({u'./_an-object':Js(132.0),u'./_core':Js(144.0),u'./core.get-iterator-method':Js(203.0)})
@Js
def PyJs_anonymous_1766_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'addToUnscopables', u'Iterators', u'step', u'toIObject'])
    Js(u'use strict')
    var.put(u'addToUnscopables', var.get(u'require')(Js(u'./_add-to-unscopables')))
    var.put(u'step', var.get(u'require')(Js(u'./_iter-step')))
    var.put(u'Iterators', var.get(u'require')(Js(u'./_iterators')))
    var.put(u'toIObject', var.get(u'require')(Js(u'./_to-iobject')))
    @Js
    def PyJs_anonymous_1767_(iterated, kind, this, arguments, var=var):
        var = Scope({u'this':this, u'kind':kind, u'arguments':arguments, u'iterated':iterated}, var)
        var.registers([u'kind', u'iterated'])
        var.get(u"this").put(u'_t', var.get(u'toIObject')(var.get(u'iterated')))
        var.get(u"this").put(u'_i', Js(0.0))
        var.get(u"this").put(u'_k', var.get(u'kind'))
    PyJs_anonymous_1767_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1768_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'index', u'kind', u'O'])
        var.put(u'O', var.get(u"this").get(u'_t'))
        var.put(u'kind', var.get(u"this").get(u'_k'))
        var.put(u'index', (var.get(u"this").put(u'_i',Js(var.get(u"this").get(u'_i').to_number())+Js(1))-Js(1)))
        if (var.get(u'O').neg() or (var.get(u'index')>=var.get(u'O').get(u'length'))):
            var.get(u"this").put(u'_t', var.get(u'undefined'))
            return var.get(u'step')(Js(1.0))
        if (var.get(u'kind')==Js(u'keys')):
            return var.get(u'step')(Js(0.0), var.get(u'index'))
        if (var.get(u'kind')==Js(u'values')):
            return var.get(u'step')(Js(0.0), var.get(u'O').get(var.get(u'index')))
        return var.get(u'step')(Js(0.0), Js([var.get(u'index'), var.get(u'O').get(var.get(u'index'))]))
    PyJs_anonymous_1768_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./_iter-define'))(var.get(u'Array'), Js(u'Array'), PyJs_anonymous_1767_, PyJs_anonymous_1768_, Js(u'values')))
    var.get(u'Iterators').put(u'Arguments', var.get(u'Iterators').get(u'Array'))
    var.get(u'addToUnscopables')(Js(u'keys'))
    var.get(u'addToUnscopables')(Js(u'values'))
    var.get(u'addToUnscopables')(Js(u'entries'))
PyJs_anonymous_1766_._set_name(u'anonymous')
PyJs_Object_1769_ = Js({u'./_add-to-unscopables':Js(130.0),u'./_iter-define':Js(165.0),u'./_iter-step':Js(166.0),u'./_iterators':Js(167.0),u'./_to-iobject':Js(195.0)})
@Js
def PyJs_anonymous_1770_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'strong', u'exports', u'module'])
    Js(u'use strict')
    var.put(u'strong', var.get(u'require')(Js(u'./_collection-strong')))
    @Js
    def PyJs_anonymous_1771_(get, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':get}, var)
        var.registers([u'get'])
        @Js
        def PyJs_Map_1772_(this, arguments, var=var):
            var = Scope({u'this':this, u'Map':PyJs_Map_1772_, u'arguments':arguments}, var)
            var.registers([])
            return var.get(u'get')(var.get(u"this"), (var.get(u'arguments').get(u'0') if (var.get(u'arguments').get(u'length')>Js(0.0)) else var.get(u'undefined')))
        PyJs_Map_1772_._set_name(u'Map')
        return PyJs_Map_1772_
    PyJs_anonymous_1771_._set_name(u'anonymous')
    @Js
    def PyJs_get_1774_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key, u'get':PyJs_get_1774_}, var)
        var.registers([u'entry', u'key'])
        var.put(u'entry', var.get(u'strong').callprop(u'getEntry', var.get(u"this"), var.get(u'key')))
        return (var.get(u'entry') and var.get(u'entry').get(u'v'))
    PyJs_get_1774_._set_name(u'get')
    @Js
    def PyJs_set_1775_(key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'set':PyJs_set_1775_, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'value', u'key'])
        return var.get(u'strong').callprop(u'def', var.get(u"this"), (Js(0.0) if PyJsStrictEq(var.get(u'key'),Js(0.0)) else var.get(u'key')), var.get(u'value'))
    PyJs_set_1775_._set_name(u'set')
    PyJs_Object_1773_ = Js({u'get':PyJs_get_1774_,u'set':PyJs_set_1775_})
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./_collection'))(Js(u'Map'), PyJs_anonymous_1771_, PyJs_Object_1773_, var.get(u'strong'), var.get(u'true')))
PyJs_anonymous_1770_._set_name(u'anonymous')
PyJs_Object_1776_ = Js({u'./_collection':Js(143.0),u'./_collection-strong':Js(140.0)})
@Js
def PyJs_anonymous_1777_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'$export', u'require', u'exports', u'module'])
    var.put(u'$export', var.get(u'require')(Js(u'./_export')))
    PyJs_Object_1778_ = Js({u'MAX_SAFE_INTEGER':Js(9007199254740991)})
    var.get(u'$export')(var.get(u'$export').get(u'S'), Js(u'Number'), PyJs_Object_1778_)
PyJs_anonymous_1777_._set_name(u'anonymous')
PyJs_Object_1779_ = Js({u'./_export':Js(151.0)})
@Js
def PyJs_anonymous_1780_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'$export', u'require', u'exports', u'module'])
    var.put(u'$export', var.get(u'require')(Js(u'./_export')))
    PyJs_Object_1781_ = Js({u'assign':var.get(u'require')(Js(u'./_object-assign'))})
    var.get(u'$export')((var.get(u'$export').get(u'S')+var.get(u'$export').get(u'F')), Js(u'Object'), PyJs_Object_1781_)
PyJs_anonymous_1780_._set_name(u'anonymous')
PyJs_Object_1782_ = Js({u'./_export':Js(151.0),u'./_object-assign':Js(171.0)})
@Js
def PyJs_anonymous_1783_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'$export', u'require', u'exports', u'module'])
    var.put(u'$export', var.get(u'require')(Js(u'./_export')))
    PyJs_Object_1784_ = Js({u'create':var.get(u'require')(Js(u'./_object-create'))})
    var.get(u'$export')(var.get(u'$export').get(u'S'), Js(u'Object'), PyJs_Object_1784_)
PyJs_anonymous_1783_._set_name(u'anonymous')
PyJs_Object_1785_ = Js({u'./_export':Js(151.0),u'./_object-create':Js(172.0)})
@Js
def PyJs_anonymous_1786_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'toObject', u'require', u'$keys', u'module'])
    var.put(u'toObject', var.get(u'require')(Js(u'./_to-object')))
    var.put(u'$keys', var.get(u'require')(Js(u'./_object-keys')))
    @Js
    def PyJs_anonymous_1787_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_keys_1788_(it, this, arguments, var=var):
            var = Scope({u'this':this, u'keys':PyJs_keys_1788_, u'it':it, u'arguments':arguments}, var)
            var.registers([u'it'])
            return var.get(u'$keys')(var.get(u'toObject')(var.get(u'it')))
        PyJs_keys_1788_._set_name(u'keys')
        return PyJs_keys_1788_
    PyJs_anonymous_1787_._set_name(u'anonymous')
    var.get(u'require')(Js(u'./_object-sap'))(Js(u'keys'), PyJs_anonymous_1787_)
PyJs_anonymous_1786_._set_name(u'anonymous')
PyJs_Object_1789_ = Js({u'./_object-keys':Js(181.0),u'./_object-sap':Js(183.0),u'./_to-object':Js(197.0)})
@Js
def PyJs_anonymous_1790_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'$export', u'require', u'exports', u'module'])
    var.put(u'$export', var.get(u'require')(Js(u'./_export')))
    PyJs_Object_1791_ = Js({u'setPrototypeOf':var.get(u'require')(Js(u'./_set-proto')).get(u'set')})
    var.get(u'$export')(var.get(u'$export').get(u'S'), Js(u'Object'), PyJs_Object_1791_)
PyJs_anonymous_1790_._set_name(u'anonymous')
PyJs_Object_1792_ = Js({u'./_export':Js(151.0),u'./_set-proto':Js(187.0)})
@Js
def PyJs_anonymous_1793_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    pass
PyJs_anonymous_1793_._set_name(u'anonymous')
PyJs_Object_1794_ = Js({})
@Js
def PyJs_anonymous_1795_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'$at', u'require', u'exports', u'module'])
    Js(u'use strict')
    var.put(u'$at', var.get(u'require')(Js(u'./_string-at'))(var.get(u'true')))
    @Js
    def PyJs_anonymous_1796_(iterated, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'iterated':iterated}, var)
        var.registers([u'iterated'])
        var.get(u"this").put(u'_t', var.get(u'String')(var.get(u'iterated')))
        var.get(u"this").put(u'_i', Js(0.0))
    PyJs_anonymous_1796_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1797_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'index', u'O', u'point'])
        var.put(u'O', var.get(u"this").get(u'_t'))
        var.put(u'index', var.get(u"this").get(u'_i'))
        if (var.get(u'index')>=var.get(u'O').get(u'length')):
            PyJs_Object_1798_ = Js({u'value':var.get(u'undefined'),u'done':var.get(u'true')})
            return PyJs_Object_1798_
        var.put(u'point', var.get(u'$at')(var.get(u'O'), var.get(u'index')))
        var.get(u"this").put(u'_i', var.get(u'point').get(u'length'), u'+')
        PyJs_Object_1799_ = Js({u'value':var.get(u'point'),u'done':Js(False)})
        return PyJs_Object_1799_
    PyJs_anonymous_1797_._set_name(u'anonymous')
    var.get(u'require')(Js(u'./_iter-define'))(var.get(u'String'), Js(u'String'), PyJs_anonymous_1796_, PyJs_anonymous_1797_)
PyJs_anonymous_1795_._set_name(u'anonymous')
PyJs_Object_1800_ = Js({u'./_iter-define':Js(165.0),u'./_string-at':Js(192.0)})
@Js
def PyJs_anonymous_1801_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_create', u'redefine', u'uid', u'setter', u'global', u'$keys', u'$create', u'$JSON', u'$getOwnPropertySymbols', u'META', u'toIObject', u'$defineProperty', u'wrap', u'wks', u'PROTOTYPE', u'$propertyIsEnumerable', u'ObjectProto', u'OPSymbols', u'$export', u'gOPNExt', u'$DP', u'toPrimitive', u'$GOPD', u'gOPN', u'isEnum', u'keyOf', u'shared', u'gOPD', u'has', u'isArray', u'exports', u'wksExt', u'$fails', u'TO_PRIMITIVE', u'setToStringTag', u'enumKeys', u'SymbolRegistry', u'$defineProperties', u'anObject', u'module', u'$getOwnPropertyDescriptor', u'AllSymbols', u'USE_NATIVE', u'symbols', u'setSymbolDesc', u'i', u'DESCRIPTORS', u'require', u'$getOwnPropertyNames', u'$Symbol', u'_stringify', u'wksDefine', u'HIDDEN', u'isSymbol', u'createDesc', u'dP', u'QObject'])
    Js(u'use strict')
    var.put(u'global', var.get(u'require')(Js(u'./_global')))
    var.put(u'has', var.get(u'require')(Js(u'./_has')))
    var.put(u'DESCRIPTORS', var.get(u'require')(Js(u'./_descriptors')))
    var.put(u'$export', var.get(u'require')(Js(u'./_export')))
    var.put(u'redefine', var.get(u'require')(Js(u'./_redefine')))
    var.put(u'META', var.get(u'require')(Js(u'./_meta')).get(u'KEY'))
    var.put(u'$fails', var.get(u'require')(Js(u'./_fails')))
    var.put(u'shared', var.get(u'require')(Js(u'./_shared')))
    var.put(u'setToStringTag', var.get(u'require')(Js(u'./_set-to-string-tag')))
    var.put(u'uid', var.get(u'require')(Js(u'./_uid')))
    var.put(u'wks', var.get(u'require')(Js(u'./_wks')))
    var.put(u'wksExt', var.get(u'require')(Js(u'./_wks-ext')))
    var.put(u'wksDefine', var.get(u'require')(Js(u'./_wks-define')))
    var.put(u'keyOf', var.get(u'require')(Js(u'./_keyof')))
    var.put(u'enumKeys', var.get(u'require')(Js(u'./_enum-keys')))
    var.put(u'isArray', var.get(u'require')(Js(u'./_is-array')))
    var.put(u'anObject', var.get(u'require')(Js(u'./_an-object')))
    var.put(u'toIObject', var.get(u'require')(Js(u'./_to-iobject')))
    var.put(u'toPrimitive', var.get(u'require')(Js(u'./_to-primitive')))
    var.put(u'createDesc', var.get(u'require')(Js(u'./_property-desc')))
    var.put(u'_create', var.get(u'require')(Js(u'./_object-create')))
    var.put(u'gOPNExt', var.get(u'require')(Js(u'./_object-gopn-ext')))
    var.put(u'$GOPD', var.get(u'require')(Js(u'./_object-gopd')))
    var.put(u'$DP', var.get(u'require')(Js(u'./_object-dp')))
    var.put(u'$keys', var.get(u'require')(Js(u'./_object-keys')))
    var.put(u'gOPD', var.get(u'$GOPD').get(u'f'))
    var.put(u'dP', var.get(u'$DP').get(u'f'))
    var.put(u'gOPN', var.get(u'gOPNExt').get(u'f'))
    var.put(u'$Symbol', var.get(u'global').get(u'Symbol'))
    var.put(u'$JSON', var.get(u'global').get(u'JSON'))
    var.put(u'_stringify', (var.get(u'$JSON') and var.get(u'$JSON').get(u'stringify')))
    var.put(u'PROTOTYPE', Js(u'prototype'))
    var.put(u'HIDDEN', var.get(u'wks')(Js(u'_hidden')))
    var.put(u'TO_PRIMITIVE', var.get(u'wks')(Js(u'toPrimitive')))
    PyJs_Object_1802_ = Js({})
    var.put(u'isEnum', PyJs_Object_1802_.get(u'propertyIsEnumerable'))
    var.put(u'SymbolRegistry', var.get(u'shared')(Js(u'symbol-registry')))
    var.put(u'AllSymbols', var.get(u'shared')(Js(u'symbols')))
    var.put(u'OPSymbols', var.get(u'shared')(Js(u'op-symbols')))
    var.put(u'ObjectProto', var.get(u'Object').get(var.get(u'PROTOTYPE')))
    var.put(u'USE_NATIVE', (var.get(u'$Symbol',throw=False).typeof()==Js(u'function')))
    var.put(u'QObject', var.get(u'global').get(u'QObject'))
    var.put(u'setter', ((var.get(u'QObject').neg() or var.get(u'QObject').get(var.get(u'PROTOTYPE')).neg()) or var.get(u'QObject').get(var.get(u'PROTOTYPE')).get(u'findChild').neg()))
    @Js
    def PyJs_anonymous_1803_(it, key, D, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'it':it, u'key':key, u'D':D}, var)
        var.registers([u'protoDesc', u'it', u'key', u'D'])
        var.put(u'protoDesc', var.get(u'gOPD')(var.get(u'ObjectProto'), var.get(u'key')))
        if var.get(u'protoDesc'):
            var.get(u'ObjectProto').delete(var.get(u'key'))
        var.get(u'dP')(var.get(u'it'), var.get(u'key'), var.get(u'D'))
        if (var.get(u'protoDesc') and PyJsStrictNeq(var.get(u'it'),var.get(u'ObjectProto'))):
            var.get(u'dP')(var.get(u'ObjectProto'), var.get(u'key'), var.get(u'protoDesc'))
    PyJs_anonymous_1803_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1804_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        PyJs_Object_1805_ = Js({})
        @Js
        def PyJs_anonymous_1807_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            PyJs_Object_1808_ = Js({u'value':Js(7.0)})
            return var.get(u'dP')(var.get(u"this"), Js(u'a'), PyJs_Object_1808_).get(u'a')
        PyJs_anonymous_1807_._set_name(u'anonymous')
        PyJs_Object_1806_ = Js({u'get':PyJs_anonymous_1807_})
        return (var.get(u'_create')(var.get(u'dP')(PyJs_Object_1805_, Js(u'a'), PyJs_Object_1806_)).get(u'a')!=Js(7.0))
    PyJs_anonymous_1804_._set_name(u'anonymous')
    var.put(u'setSymbolDesc', (PyJs_anonymous_1803_ if (var.get(u'DESCRIPTORS') and var.get(u'$fails')(PyJs_anonymous_1804_)) else var.get(u'dP')))
    @Js
    def PyJs_anonymous_1809_(tag, this, arguments, var=var):
        var = Scope({u'this':this, u'tag':tag, u'arguments':arguments}, var)
        var.registers([u'tag', u'sym'])
        var.put(u'sym', var.get(u'AllSymbols').put(var.get(u'tag'), var.get(u'_create')(var.get(u'$Symbol').get(var.get(u'PROTOTYPE')))))
        var.get(u'sym').put(u'_k', var.get(u'tag'))
        return var.get(u'sym')
    PyJs_anonymous_1809_._set_name(u'anonymous')
    var.put(u'wrap', PyJs_anonymous_1809_)
    @Js
    def PyJs_anonymous_1810_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        return (var.get(u'it',throw=False).typeof()==Js(u'symbol'))
    PyJs_anonymous_1810_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1811_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'arguments':arguments}, var)
        var.registers([u'it'])
        return var.get(u'it').instanceof(var.get(u'$Symbol'))
    PyJs_anonymous_1811_._set_name(u'anonymous')
    var.put(u'isSymbol', (PyJs_anonymous_1810_ if (var.get(u'USE_NATIVE') and (var.get(u'$Symbol').get(u'iterator').typeof()==Js(u'symbol'))) else PyJs_anonymous_1811_))
    @Js
    def PyJs_defineProperty_1812_(it, key, D, this, arguments, var=var):
        var = Scope({u'D':D, u'this':this, u'it':it, u'arguments':arguments, u'key':key, u'defineProperty':PyJs_defineProperty_1812_}, var)
        var.registers([u'it', u'key', u'D'])
        if PyJsStrictEq(var.get(u'it'),var.get(u'ObjectProto')):
            var.get(u'$defineProperty')(var.get(u'OPSymbols'), var.get(u'key'), var.get(u'D'))
        var.get(u'anObject')(var.get(u'it'))
        var.put(u'key', var.get(u'toPrimitive')(var.get(u'key'), var.get(u'true')))
        var.get(u'anObject')(var.get(u'D'))
        if var.get(u'has')(var.get(u'AllSymbols'), var.get(u'key')):
            if var.get(u'D').get(u'enumerable').neg():
                if var.get(u'has')(var.get(u'it'), var.get(u'HIDDEN')).neg():
                    PyJs_Object_1813_ = Js({})
                    var.get(u'dP')(var.get(u'it'), var.get(u'HIDDEN'), var.get(u'createDesc')(Js(1.0), PyJs_Object_1813_))
                var.get(u'it').get(var.get(u'HIDDEN')).put(var.get(u'key'), var.get(u'true'))
            else:
                if (var.get(u'has')(var.get(u'it'), var.get(u'HIDDEN')) and var.get(u'it').get(var.get(u'HIDDEN')).get(var.get(u'key'))):
                    var.get(u'it').get(var.get(u'HIDDEN')).put(var.get(u'key'), Js(False))
                PyJs_Object_1814_ = Js({u'enumerable':var.get(u'createDesc')(Js(0.0), Js(False))})
                var.put(u'D', var.get(u'_create')(var.get(u'D'), PyJs_Object_1814_))
            return var.get(u'setSymbolDesc')(var.get(u'it'), var.get(u'key'), var.get(u'D'))
        return var.get(u'dP')(var.get(u'it'), var.get(u'key'), var.get(u'D'))
    PyJs_defineProperty_1812_._set_name(u'defineProperty')
    var.put(u'$defineProperty', PyJs_defineProperty_1812_)
    @Js
    def PyJs_defineProperties_1815_(it, P, this, arguments, var=var):
        var = Scope({u'this':this, u'P':P, u'it':it, u'defineProperties':PyJs_defineProperties_1815_, u'arguments':arguments}, var)
        var.registers([u'P', u'keys', u'l', u'it', u'i', u'key'])
        var.get(u'anObject')(var.get(u'it'))
        var.put(u'keys', var.get(u'enumKeys')(var.put(u'P', var.get(u'toIObject')(var.get(u'P')))))
        var.put(u'i', Js(0.0))
        var.put(u'l', var.get(u'keys').get(u'length'))
        while (var.get(u'l')>var.get(u'i')):
            var.get(u'$defineProperty')(var.get(u'it'), var.put(u'key', var.get(u'keys').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1)))), var.get(u'P').get(var.get(u'key')))
        return var.get(u'it')
    PyJs_defineProperties_1815_._set_name(u'defineProperties')
    var.put(u'$defineProperties', PyJs_defineProperties_1815_)
    @Js
    def PyJs_create_1816_(it, P, this, arguments, var=var):
        var = Scope({u'this':this, u'P':P, u'create':PyJs_create_1816_, u'it':it, u'arguments':arguments}, var)
        var.registers([u'P', u'it'])
        return (var.get(u'_create')(var.get(u'it')) if PyJsStrictEq(var.get(u'P'),var.get(u'undefined')) else var.get(u'$defineProperties')(var.get(u'_create')(var.get(u'it')), var.get(u'P')))
    PyJs_create_1816_._set_name(u'create')
    var.put(u'$create', PyJs_create_1816_)
    @Js
    def PyJs_propertyIsEnumerable_1817_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'propertyIsEnumerable':PyJs_propertyIsEnumerable_1817_, u'arguments':arguments, u'key':key}, var)
        var.registers([u'E', u'key'])
        var.put(u'E', var.get(u'isEnum').callprop(u'call', var.get(u"this"), var.put(u'key', var.get(u'toPrimitive')(var.get(u'key'), var.get(u'true')))))
        if ((PyJsStrictEq(var.get(u"this"),var.get(u'ObjectProto')) and var.get(u'has')(var.get(u'AllSymbols'), var.get(u'key'))) and var.get(u'has')(var.get(u'OPSymbols'), var.get(u'key')).neg()):
            return Js(False)
        return (var.get(u'E') if (((var.get(u'E') or var.get(u'has')(var.get(u"this"), var.get(u'key')).neg()) or var.get(u'has')(var.get(u'AllSymbols'), var.get(u'key')).neg()) or (var.get(u'has')(var.get(u"this"), var.get(u'HIDDEN')) and var.get(u"this").get(var.get(u'HIDDEN')).get(var.get(u'key')))) else var.get(u'true'))
    PyJs_propertyIsEnumerable_1817_._set_name(u'propertyIsEnumerable')
    var.put(u'$propertyIsEnumerable', PyJs_propertyIsEnumerable_1817_)
    @Js
    def PyJs_getOwnPropertyDescriptor_1818_(it, key, this, arguments, var=var):
        var = Scope({u'this':this, u'getOwnPropertyDescriptor':PyJs_getOwnPropertyDescriptor_1818_, u'it':it, u'key':key, u'arguments':arguments}, var)
        var.registers([u'D', u'key', u'it'])
        var.put(u'it', var.get(u'toIObject')(var.get(u'it')))
        var.put(u'key', var.get(u'toPrimitive')(var.get(u'key'), var.get(u'true')))
        if ((PyJsStrictEq(var.get(u'it'),var.get(u'ObjectProto')) and var.get(u'has')(var.get(u'AllSymbols'), var.get(u'key'))) and var.get(u'has')(var.get(u'OPSymbols'), var.get(u'key')).neg()):
            return var.get('undefined')
        var.put(u'D', var.get(u'gOPD')(var.get(u'it'), var.get(u'key')))
        if ((var.get(u'D') and var.get(u'has')(var.get(u'AllSymbols'), var.get(u'key'))) and (var.get(u'has')(var.get(u'it'), var.get(u'HIDDEN')) and var.get(u'it').get(var.get(u'HIDDEN')).get(var.get(u'key'))).neg()):
            var.get(u'D').put(u'enumerable', var.get(u'true'))
        return var.get(u'D')
    PyJs_getOwnPropertyDescriptor_1818_._set_name(u'getOwnPropertyDescriptor')
    var.put(u'$getOwnPropertyDescriptor', PyJs_getOwnPropertyDescriptor_1818_)
    @Js
    def PyJs_getOwnPropertyNames_1819_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'it':it, u'getOwnPropertyNames':PyJs_getOwnPropertyNames_1819_, u'arguments':arguments}, var)
        var.registers([u'i', u'it', u'names', u'key', u'result'])
        var.put(u'names', var.get(u'gOPN')(var.get(u'toIObject')(var.get(u'it'))))
        var.put(u'result', Js([]))
        var.put(u'i', Js(0.0))
        while (var.get(u'names').get(u'length')>var.get(u'i')):
            if ((var.get(u'has')(var.get(u'AllSymbols'), var.put(u'key', var.get(u'names').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))).neg() and (var.get(u'key')!=var.get(u'HIDDEN'))) and (var.get(u'key')!=var.get(u'META'))):
                var.get(u'result').callprop(u'push', var.get(u'key'))
        return var.get(u'result')
    PyJs_getOwnPropertyNames_1819_._set_name(u'getOwnPropertyNames')
    var.put(u'$getOwnPropertyNames', PyJs_getOwnPropertyNames_1819_)
    @Js
    def PyJs_getOwnPropertySymbols_1820_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'getOwnPropertySymbols':PyJs_getOwnPropertySymbols_1820_, u'it':it, u'arguments':arguments}, var)
        var.registers([u'i', u'it', u'names', u'key', u'IS_OP', u'result'])
        var.put(u'IS_OP', PyJsStrictEq(var.get(u'it'),var.get(u'ObjectProto')))
        var.put(u'names', var.get(u'gOPN')((var.get(u'OPSymbols') if var.get(u'IS_OP') else var.get(u'toIObject')(var.get(u'it')))))
        var.put(u'result', Js([]))
        var.put(u'i', Js(0.0))
        while (var.get(u'names').get(u'length')>var.get(u'i')):
            if (var.get(u'has')(var.get(u'AllSymbols'), var.put(u'key', var.get(u'names').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))) and (var.get(u'has')(var.get(u'ObjectProto'), var.get(u'key')) if var.get(u'IS_OP') else var.get(u'true'))):
                var.get(u'result').callprop(u'push', var.get(u'AllSymbols').get(var.get(u'key')))
        return var.get(u'result')
    PyJs_getOwnPropertySymbols_1820_._set_name(u'getOwnPropertySymbols')
    var.put(u'$getOwnPropertySymbols', PyJs_getOwnPropertySymbols_1820_)
    if var.get(u'USE_NATIVE').neg():
        @Js
        def PyJs_Symbol_1821_(this, arguments, var=var):
            var = Scope({u'this':this, u'Symbol':PyJs_Symbol_1821_, u'arguments':arguments}, var)
            var.registers([u'$set', u'tag'])
            if var.get(u"this").instanceof(var.get(u'$Symbol')):
                PyJsTempException = JsToPyException(var.get(u'TypeError')(Js(u'Symbol is not a constructor!')))
                raise PyJsTempException
            var.put(u'tag', var.get(u'uid')((var.get(u'arguments').get(u'0') if (var.get(u'arguments').get(u'length')>Js(0.0)) else var.get(u'undefined'))))
            @Js
            def PyJs_anonymous_1822_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                if PyJsStrictEq(var.get(u"this"),var.get(u'ObjectProto')):
                    var.get(u'$set').callprop(u'call', var.get(u'OPSymbols'), var.get(u'value'))
                if (var.get(u'has')(var.get(u"this"), var.get(u'HIDDEN')) and var.get(u'has')(var.get(u"this").get(var.get(u'HIDDEN')), var.get(u'tag'))):
                    var.get(u"this").get(var.get(u'HIDDEN')).put(var.get(u'tag'), Js(False))
                var.get(u'setSymbolDesc')(var.get(u"this"), var.get(u'tag'), var.get(u'createDesc')(Js(1.0), var.get(u'value')))
            PyJs_anonymous_1822_._set_name(u'anonymous')
            var.put(u'$set', PyJs_anonymous_1822_)
            if (var.get(u'DESCRIPTORS') and var.get(u'setter')):
                PyJs_Object_1823_ = Js({u'configurable':var.get(u'true'),u'set':var.get(u'$set')})
                var.get(u'setSymbolDesc')(var.get(u'ObjectProto'), var.get(u'tag'), PyJs_Object_1823_)
            return var.get(u'wrap')(var.get(u'tag'))
        PyJs_Symbol_1821_._set_name(u'Symbol')
        var.put(u'$Symbol', PyJs_Symbol_1821_)
        @Js
        def PyJs_toString_1824_(this, arguments, var=var):
            var = Scope({u'this':this, u'toString':PyJs_toString_1824_, u'arguments':arguments}, var)
            var.registers([])
            return var.get(u"this").get(u'_k')
        PyJs_toString_1824_._set_name(u'toString')
        var.get(u'redefine')(var.get(u'$Symbol').get(var.get(u'PROTOTYPE')), Js(u'toString'), PyJs_toString_1824_)
        var.get(u'$GOPD').put(u'f', var.get(u'$getOwnPropertyDescriptor'))
        var.get(u'$DP').put(u'f', var.get(u'$defineProperty'))
        var.get(u'require')(Js(u'./_object-gopn')).put(u'f', var.get(u'gOPNExt').put(u'f', var.get(u'$getOwnPropertyNames')))
        var.get(u'require')(Js(u'./_object-pie')).put(u'f', var.get(u'$propertyIsEnumerable'))
        var.get(u'require')(Js(u'./_object-gops')).put(u'f', var.get(u'$getOwnPropertySymbols'))
        if (var.get(u'DESCRIPTORS') and var.get(u'require')(Js(u'./_library')).neg()):
            var.get(u'redefine')(var.get(u'ObjectProto'), Js(u'propertyIsEnumerable'), var.get(u'$propertyIsEnumerable'), var.get(u'true'))
        @Js
        def PyJs_anonymous_1825_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
            var.registers([u'name'])
            return var.get(u'wrap')(var.get(u'wks')(var.get(u'name')))
        PyJs_anonymous_1825_._set_name(u'anonymous')
        var.get(u'wksExt').put(u'f', PyJs_anonymous_1825_)
    PyJs_Object_1826_ = Js({u'Symbol':var.get(u'$Symbol')})
    var.get(u'$export')(((var.get(u'$export').get(u'G')+var.get(u'$export').get(u'W'))+(var.get(u'$export').get(u'F')*var.get(u'USE_NATIVE').neg())), PyJs_Object_1826_)
    #for JS loop
    var.put(u'symbols', Js(u'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables').callprop(u'split', Js(u',')))
    var.put(u'i', Js(0.0))
    while (var.get(u'symbols').get(u'length')>var.get(u'i')):
        var.get(u'wks')(var.get(u'symbols').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))
    
    #for JS loop
    var.put(u'symbols', var.get(u'$keys')(var.get(u'wks').get(u'store')))
    var.put(u'i', Js(0.0))
    while (var.get(u'symbols').get(u'length')>var.get(u'i')):
        var.get(u'wksDefine')(var.get(u'symbols').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))
    
    @Js
    def PyJs_anonymous_1828_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return (var.get(u'SymbolRegistry').get(var.get(u'key')) if var.get(u'has')(var.get(u'SymbolRegistry'), var.put(u'key', Js(u''), u'+')) else var.get(u'SymbolRegistry').put(var.get(u'key'), var.get(u'$Symbol')(var.get(u'key'))))
    PyJs_anonymous_1828_._set_name(u'anonymous')
    @Js
    def PyJs_keyFor_1829_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'keyFor':PyJs_keyFor_1829_, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        if var.get(u'isSymbol')(var.get(u'key')):
            return var.get(u'keyOf')(var.get(u'SymbolRegistry'), var.get(u'key'))
        PyJsTempException = JsToPyException(var.get(u'TypeError')((var.get(u'key')+Js(u' is not a symbol!'))))
        raise PyJsTempException
    PyJs_keyFor_1829_._set_name(u'keyFor')
    @Js
    def PyJs_anonymous_1830_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.put(u'setter', var.get(u'true'))
    PyJs_anonymous_1830_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_1831_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.put(u'setter', Js(False))
    PyJs_anonymous_1831_._set_name(u'anonymous')
    PyJs_Object_1827_ = Js({u'for':PyJs_anonymous_1828_,u'keyFor':PyJs_keyFor_1829_,u'useSetter':PyJs_anonymous_1830_,u'useSimple':PyJs_anonymous_1831_})
    var.get(u'$export')((var.get(u'$export').get(u'S')+(var.get(u'$export').get(u'F')*var.get(u'USE_NATIVE').neg())), Js(u'Symbol'), PyJs_Object_1827_)
    PyJs_Object_1832_ = Js({u'create':var.get(u'$create'),u'defineProperty':var.get(u'$defineProperty'),u'defineProperties':var.get(u'$defineProperties'),u'getOwnPropertyDescriptor':var.get(u'$getOwnPropertyDescriptor'),u'getOwnPropertyNames':var.get(u'$getOwnPropertyNames'),u'getOwnPropertySymbols':var.get(u'$getOwnPropertySymbols')})
    var.get(u'$export')((var.get(u'$export').get(u'S')+(var.get(u'$export').get(u'F')*var.get(u'USE_NATIVE').neg())), Js(u'Object'), PyJs_Object_1832_)
    @Js
    def PyJs_anonymous_1833_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'S'])
        var.put(u'S', var.get(u'$Symbol')())
        PyJs_Object_1834_ = Js({u'a':var.get(u'S')})
        return (((var.get(u'_stringify')(Js([var.get(u'S')]))!=Js(u'[null]')) or (var.get(u'_stringify')(PyJs_Object_1834_)!=Js(u'{}'))) or (var.get(u'_stringify')(var.get(u'Object')(var.get(u'S')))!=Js(u'{}')))
    PyJs_anonymous_1833_._set_name(u'anonymous')
    @Js
    def PyJs_stringify_1836_(it, this, arguments, var=var):
        var = Scope({u'this':this, u'stringify':PyJs_stringify_1836_, u'it':it, u'arguments':arguments}, var)
        var.registers([u'i', u'replacer', u'args', u'it', u'$replacer'])
        if (PyJsStrictEq(var.get(u'it'),var.get(u'undefined')) or var.get(u'isSymbol')(var.get(u'it'))):
            return var.get('undefined')
        var.put(u'args', Js([var.get(u'it')]))
        var.put(u'i', Js(1.0))
        while (var.get(u'arguments').get(u'length')>var.get(u'i')):
            var.get(u'args').callprop(u'push', var.get(u'arguments').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))
        var.put(u'replacer', var.get(u'args').get(u'1'))
        if (var.get(u'replacer',throw=False).typeof()==Js(u'function')):
            var.put(u'$replacer', var.get(u'replacer'))
        if (var.get(u'$replacer') or var.get(u'isArray')(var.get(u'replacer')).neg()):
            @Js
            def PyJs_anonymous_1837_(key, value, this, arguments, var=var):
                var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
                var.registers([u'value', u'key'])
                if var.get(u'$replacer'):
                    var.put(u'value', var.get(u'$replacer').callprop(u'call', var.get(u"this"), var.get(u'key'), var.get(u'value')))
                if var.get(u'isSymbol')(var.get(u'value')).neg():
                    return var.get(u'value')
            PyJs_anonymous_1837_._set_name(u'anonymous')
            var.put(u'replacer', PyJs_anonymous_1837_)
        var.get(u'args').put(u'1', var.get(u'replacer'))
        return var.get(u'_stringify').callprop(u'apply', var.get(u'$JSON'), var.get(u'args'))
    PyJs_stringify_1836_._set_name(u'stringify')
    PyJs_Object_1835_ = Js({u'stringify':PyJs_stringify_1836_})
    (var.get(u'$JSON') and var.get(u'$export')((var.get(u'$export').get(u'S')+(var.get(u'$export').get(u'F')*(var.get(u'USE_NATIVE').neg() or var.get(u'$fails')(PyJs_anonymous_1833_)))), Js(u'JSON'), PyJs_Object_1835_))
    (var.get(u'$Symbol').get(var.get(u'PROTOTYPE')).get(var.get(u'TO_PRIMITIVE')) or var.get(u'require')(Js(u'./_hide'))(var.get(u'$Symbol').get(var.get(u'PROTOTYPE')), var.get(u'TO_PRIMITIVE'), var.get(u'$Symbol').get(var.get(u'PROTOTYPE')).get(u'valueOf')))
    var.get(u'setToStringTag')(var.get(u'$Symbol'), Js(u'Symbol'))
    var.get(u'setToStringTag')(var.get(u'Math'), Js(u'Math'), var.get(u'true'))
    var.get(u'setToStringTag')(var.get(u'global').get(u'JSON'), Js(u'JSON'), var.get(u'true'))
PyJs_anonymous_1801_._set_name(u'anonymous')
PyJs_Object_1838_ = Js({u'./_an-object':Js(132.0),u'./_descriptors':Js(147.0),u'./_enum-keys':Js(150.0),u'./_export':Js(151.0),u'./_fails':Js(152.0),u'./_global':Js(154.0),u'./_has':Js(155.0),u'./_hide':Js(156.0),u'./_is-array':Js(161.0),u'./_keyof':Js(168.0),u'./_library':Js(169.0),u'./_meta':Js(170.0),u'./_object-create':Js(172.0),u'./_object-dp':Js(173.0),u'./_object-gopd':Js(175.0),u'./_object-gopn':Js(177.0),u'./_object-gopn-ext':Js(176.0),u'./_object-gops':Js(178.0),u'./_object-keys':Js(181.0),u'./_object-pie':Js(182.0),u'./_property-desc':Js(184.0),u'./_redefine':Js(186.0),u'./_set-to-string-tag':Js(189.0),u'./_shared':Js(191.0),u'./_to-iobject':Js(195.0),u'./_to-primitive':Js(198.0),u'./_uid':Js(199.0),u'./_wks':Js(202.0),u'./_wks-define':Js(200.0),u'./_wks-ext':Js(201.0)})
@Js
def PyJs_anonymous_1839_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'tmp', u'redefine', u'InternalMap', u'methods', u'$WeakMap', u'require', u'isExtensible', u'weak', u'exports', u'wrapper', u'isObject', u'meta', u'module', u'each', u'uncaughtFrozenStore', u'getWeak', u'assign'])
    Js(u'use strict')
    var.put(u'each', var.get(u'require')(Js(u'./_array-methods'))(Js(0.0)))
    var.put(u'redefine', var.get(u'require')(Js(u'./_redefine')))
    var.put(u'meta', var.get(u'require')(Js(u'./_meta')))
    var.put(u'assign', var.get(u'require')(Js(u'./_object-assign')))
    var.put(u'weak', var.get(u'require')(Js(u'./_collection-weak')))
    var.put(u'isObject', var.get(u'require')(Js(u'./_is-object')))
    var.put(u'getWeak', var.get(u'meta').get(u'getWeak'))
    var.put(u'isExtensible', var.get(u'Object').get(u'isExtensible'))
    var.put(u'uncaughtFrozenStore', var.get(u'weak').get(u'ufstore'))
    PyJs_Object_1840_ = Js({})
    var.put(u'tmp', PyJs_Object_1840_)
    @Js
    def PyJs_anonymous_1841_(get, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':get}, var)
        var.registers([u'get'])
        @Js
        def PyJs_WeakMap_1842_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'WeakMap':PyJs_WeakMap_1842_}, var)
            var.registers([])
            return var.get(u'get')(var.get(u"this"), (var.get(u'arguments').get(u'0') if (var.get(u'arguments').get(u'length')>Js(0.0)) else var.get(u'undefined')))
        PyJs_WeakMap_1842_._set_name(u'WeakMap')
        return PyJs_WeakMap_1842_
    PyJs_anonymous_1841_._set_name(u'anonymous')
    var.put(u'wrapper', PyJs_anonymous_1841_)
    @Js
    def PyJs_get_1844_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key, u'get':PyJs_get_1844_}, var)
        var.registers([u'data', u'key'])
        if var.get(u'isObject')(var.get(u'key')):
            var.put(u'data', var.get(u'getWeak')(var.get(u'key')))
            if PyJsStrictEq(var.get(u'data'),var.get(u'true')):
                return var.get(u'uncaughtFrozenStore')(var.get(u"this")).callprop(u'get', var.get(u'key'))
            return (var.get(u'data').get(var.get(u"this").get(u'_i')) if var.get(u'data') else var.get(u'undefined'))
    PyJs_get_1844_._set_name(u'get')
    @Js
    def PyJs_set_1845_(key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'set':PyJs_set_1845_, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'value', u'key'])
        return var.get(u'weak').callprop(u'def', var.get(u"this"), var.get(u'key'), var.get(u'value'))
    PyJs_set_1845_._set_name(u'set')
    PyJs_Object_1843_ = Js({u'get':PyJs_get_1844_,u'set':PyJs_set_1845_})
    var.put(u'methods', PyJs_Object_1843_)
    var.put(u'$WeakMap', var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./_collection'))(Js(u'WeakMap'), var.get(u'wrapper'), var.get(u'methods'), var.get(u'weak'), var.get(u'true'), var.get(u'true'))))
    if (var.get(u'$WeakMap').create().callprop(u'set', (var.get(u'Object').get(u'freeze') or var.get(u'Object'))(var.get(u'tmp')), Js(7.0)).callprop(u'get', var.get(u'tmp'))!=Js(7.0)):
        var.put(u'InternalMap', var.get(u'weak').callprop(u'getConstructor', var.get(u'wrapper')))
        var.get(u'assign')(var.get(u'InternalMap').get(u'prototype'), var.get(u'methods'))
        var.get(u'meta').put(u'NEED', var.get(u'true'))
        @Js
        def PyJs_anonymous_1846_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
            var.registers([u'method', u'key', u'proto'])
            var.put(u'proto', var.get(u'$WeakMap').get(u'prototype'))
            var.put(u'method', var.get(u'proto').get(var.get(u'key')))
            @Js
            def PyJs_anonymous_1847_(a, b, this, arguments, var=var):
                var = Scope({u'a':a, u'this':this, u'b':b, u'arguments':arguments}, var)
                var.registers([u'a', u'b', u'result'])
                if (var.get(u'isObject')(var.get(u'a')) and var.get(u'isExtensible')(var.get(u'a')).neg()):
                    if var.get(u"this").get(u'_f').neg():
                        var.get(u"this").put(u'_f', var.get(u'InternalMap').create())
                    var.put(u'result', var.get(u"this").get(u'_f').callprop(var.get(u'key'), var.get(u'a'), var.get(u'b')))
                    return (var.get(u"this") if (var.get(u'key')==Js(u'set')) else var.get(u'result'))
                return var.get(u'method').callprop(u'call', var.get(u"this"), var.get(u'a'), var.get(u'b'))
            PyJs_anonymous_1847_._set_name(u'anonymous')
            var.get(u'redefine')(var.get(u'proto'), var.get(u'key'), PyJs_anonymous_1847_)
        PyJs_anonymous_1846_._set_name(u'anonymous')
        var.get(u'each')(Js([Js(u'delete'), Js(u'has'), Js(u'get'), Js(u'set')]), PyJs_anonymous_1846_)
PyJs_anonymous_1839_._set_name(u'anonymous')
PyJs_Object_1848_ = Js({u'./_array-methods':Js(135.0),u'./_collection':Js(143.0),u'./_collection-weak':Js(142.0),u'./_is-object':Js(162.0),u'./_meta':Js(170.0),u'./_object-assign':Js(171.0),u'./_redefine':Js(186.0)})
@Js
def PyJs_anonymous_1849_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'weak', u'exports', u'module'])
    Js(u'use strict')
    var.put(u'weak', var.get(u'require')(Js(u'./_collection-weak')))
    @Js
    def PyJs_anonymous_1850_(get, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':get}, var)
        var.registers([u'get'])
        @Js
        def PyJs_WeakSet_1851_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'WeakSet':PyJs_WeakSet_1851_}, var)
            var.registers([])
            return var.get(u'get')(var.get(u"this"), (var.get(u'arguments').get(u'0') if (var.get(u'arguments').get(u'length')>Js(0.0)) else var.get(u'undefined')))
        PyJs_WeakSet_1851_._set_name(u'WeakSet')
        return PyJs_WeakSet_1851_
    PyJs_anonymous_1850_._set_name(u'anonymous')
    @Js
    def PyJs_add_1853_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'add':PyJs_add_1853_, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return var.get(u'weak').callprop(u'def', var.get(u"this"), var.get(u'value'), var.get(u'true'))
    PyJs_add_1853_._set_name(u'add')
    PyJs_Object_1852_ = Js({u'add':PyJs_add_1853_})
    var.get(u'require')(Js(u'./_collection'))(Js(u'WeakSet'), PyJs_anonymous_1850_, PyJs_Object_1852_, var.get(u'weak'), Js(False), var.get(u'true'))
PyJs_anonymous_1849_._set_name(u'anonymous')
PyJs_Object_1854_ = Js({u'./_collection':Js(143.0),u'./_collection-weak':Js(142.0)})
@Js
def PyJs_anonymous_1855_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'$export', u'require', u'exports', u'module'])
    var.put(u'$export', var.get(u'require')(Js(u'./_export')))
    PyJs_Object_1856_ = Js({u'toJSON':var.get(u'require')(Js(u'./_collection-to-json'))(Js(u'Map'))})
    var.get(u'$export')((var.get(u'$export').get(u'P')+var.get(u'$export').get(u'R')), Js(u'Map'), PyJs_Object_1856_)
PyJs_anonymous_1855_._set_name(u'anonymous')
PyJs_Object_1857_ = Js({u'./_collection-to-json':Js(141.0),u'./_export':Js(151.0)})
@Js
def PyJs_anonymous_1858_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'./_wks-define'))(Js(u'asyncIterator'))
PyJs_anonymous_1858_._set_name(u'anonymous')
PyJs_Object_1859_ = Js({u'./_wks-define':Js(200.0)})
@Js
def PyJs_anonymous_1860_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'require')(Js(u'./_wks-define'))(Js(u'observable'))
PyJs_anonymous_1860_._set_name(u'anonymous')
PyJs_Object_1861_ = Js({u'./_wks-define':Js(200.0)})
@Js
def PyJs_anonymous_1862_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'TO_STRING_TAG', u'exports', u'hide', u'NAME', u'proto', u'i', u'require', u'global', u'Collection', u'Iterators', u'collections', u'module'])
    var.get(u'require')(Js(u'./es6.array.iterator'))
    var.put(u'global', var.get(u'require')(Js(u'./_global')))
    var.put(u'hide', var.get(u'require')(Js(u'./_hide')))
    var.put(u'Iterators', var.get(u'require')(Js(u'./_iterators')))
    var.put(u'TO_STRING_TAG', var.get(u'require')(Js(u'./_wks'))(Js(u'toStringTag')))
    #for JS loop
    var.put(u'collections', Js([Js(u'NodeList'), Js(u'DOMTokenList'), Js(u'MediaList'), Js(u'StyleSheetList'), Js(u'CSSRuleList')]))
    var.put(u'i', Js(0.0))
    while (var.get(u'i')<Js(5.0)):
        try:
            var.put(u'NAME', var.get(u'collections').get(var.get(u'i')))
            var.put(u'Collection', var.get(u'global').get(var.get(u'NAME')))
            var.put(u'proto', (var.get(u'Collection') and var.get(u'Collection').get(u'prototype')))
            if (var.get(u'proto') and var.get(u'proto').get(var.get(u'TO_STRING_TAG')).neg()):
                var.get(u'hide')(var.get(u'proto'), var.get(u'TO_STRING_TAG'), var.get(u'NAME'))
            var.get(u'Iterators').put(var.get(u'NAME'), var.get(u'Iterators').get(u'Array'))
        finally:
                (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
PyJs_anonymous_1862_._set_name(u'anonymous')
PyJs_Object_1863_ = Js({u'./_global':Js(154.0),u'./_hide':Js(156.0),u'./_iterators':Js(167.0),u'./_wks':Js(202.0),u'./es6.array.iterator':Js(205.0)})
@Js
def PyJs_anonymous_1864_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_symbol2', u'module', u'_cloneDeep2', u'_interopRequireDefault', u'_babelTraverse', u'_has2', u'_babylon', u'_cloneDeep', u'templateVisitor', u'babylon', u'TEMPLATE_SKIP', u'exports', u'_assign', u'_babelTraverse2', u'_interopRequireWildcard', u'_babelTypes', u'_has', u'_symbol', u'_assign2', u'useTemplate', u'require', u't', u'FROM_TEMPLATE'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1873_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1873_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_useTemplate_(ast, nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments, u'ast':ast}, var)
        var.registers([u'nodes', u'program', u'_ast', u'ast'])
        var.put(u'ast', PyJsComma(Js(0.0),var.get(u'_cloneDeep2').get(u'default'))(var.get(u'ast')))
        var.put(u'_ast', var.get(u'ast'))
        var.put(u'program', var.get(u'_ast').get(u'program'))
        if var.get(u'nodes').get(u'length'):
            PyJsComma(Js(0.0),var.get(u'_babelTraverse2').get(u'default'))(var.get(u'ast'), var.get(u'templateVisitor'), var.get(u"null"), var.get(u'nodes'))
        if (var.get(u'program').get(u'body').get(u'length')>Js(1.0)):
            return var.get(u'program').get(u'body')
        else:
            return var.get(u'program').get(u'body').get(u'0')
    PyJsHoisted_useTemplate_.func_name = u'useTemplate'
    var.put(u'useTemplate', PyJsHoisted_useTemplate_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1872_ = Js({})
            var.put(u'newObj', PyJs_Object_1872_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_symbol', var.get(u'require')(Js(u'babel-runtime/core-js/symbol')))
    var.put(u'_symbol2', var.get(u'_interopRequireDefault')(var.get(u'_symbol')))
    @Js
    def PyJs_anonymous_1865_(code, opts, this, arguments, var=var):
        var = Scope({u'this':this, u'code':code, u'arguments':arguments, u'opts':opts}, var)
        var.registers([u'_getAst', u'code', u'stack', u'opts'])
        var.put(u'stack', PyJsComma(Js(0.0), Js(None)))
        try:
            PyJsTempException = JsToPyException(var.get(u'Error').create())
            raise PyJsTempException
        except PyJsException as PyJsTempException:
            PyJsHolder_6572726f72_58122749 = var.own.get(u'error')
            var.force_own_put(u'error', PyExceptionToJs(PyJsTempException))
            try:
                if var.get(u'error').get(u'stack'):
                    var.put(u'stack', var.get(u'error').get(u'stack').callprop(u'split', Js(u'\n')).callprop(u'slice', Js(1.0)).callprop(u'join', Js(u'\n')))
            finally:
                if PyJsHolder_6572726f72_58122749 is not None:
                    var.own[u'error'] = PyJsHolder_6572726f72_58122749
                else:
                    del var.own[u'error']
                del PyJsHolder_6572726f72_58122749
        PyJs_Object_1866_ = Js({u'allowReturnOutsideFunction':var.get(u'true'),u'allowSuperOutsideMethod':var.get(u'true'),u'preserveComments':Js(False)})
        var.put(u'opts', PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(PyJs_Object_1866_, var.get(u'opts')))
        @Js
        def PyJs_getAst_1867_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'getAst':PyJs_getAst_1867_}, var)
            var.registers([u'ast'])
            var.put(u'ast', PyJsComma(Js(0.0), Js(None)))
            try:
                var.put(u'ast', var.get(u'babylon').callprop(u'parse', var.get(u'code'), var.get(u'opts')))
                PyJs_Object_1868_ = Js({u'preserveComments':var.get(u'opts').get(u'preserveComments')})
                var.put(u'ast', var.get(u'_babelTraverse2').get(u'default').callprop(u'removeProperties', var.get(u'ast'), PyJs_Object_1868_))
                @Js
                def PyJs_anonymous_1869_(node, this, arguments, var=var):
                    var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                    var.registers([u'node'])
                    var.get(u'node').put(var.get(u'FROM_TEMPLATE'), var.get(u'true'))
                PyJs_anonymous_1869_._set_name(u'anonymous')
                var.get(u'_babelTraverse2').get(u'default').callprop(u'cheap', var.get(u'ast'), PyJs_anonymous_1869_)
            except PyJsException as PyJsTempException:
                PyJsHolder_657272_43794349 = var.own.get(u'err')
                var.force_own_put(u'err', PyExceptionToJs(PyJsTempException))
                try:
                    var.get(u'err').put(u'stack', ((var.get(u'err').get(u'stack')+Js(u'from\n'))+var.get(u'stack')))
                    PyJsTempException = JsToPyException(var.get(u'err'))
                    raise PyJsTempException
                finally:
                    if PyJsHolder_657272_43794349 is not None:
                        var.own[u'err'] = PyJsHolder_657272_43794349
                    else:
                        del var.own[u'err']
                    del PyJsHolder_657272_43794349
            @Js
            def PyJs_getAst_1870_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'getAst':PyJs_getAst_1870_}, var)
                var.registers([])
                return var.get(u'ast')
            PyJs_getAst_1870_._set_name(u'getAst')
            var.put(u'_getAst', PyJs_getAst_1870_)
            return var.get(u'ast')
        PyJs_getAst_1867_._set_name(u'getAst')
        var.put(u'_getAst', PyJs_getAst_1867_)
        @Js
        def PyJs_anonymous_1871_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'_len', u'_key', u'args'])
            #for JS loop
            var.put(u'_len', var.get(u'arguments').get(u'length'))
            var.put(u'args', var.get(u'Array')(var.get(u'_len')))
            var.put(u'_key', Js(0.0))
            while (var.get(u'_key')<var.get(u'_len')):
                try:
                    var.get(u'args').put(var.get(u'_key'), var.get(u'arguments').get(var.get(u'_key')))
                finally:
                        (var.put(u'_key',Js(var.get(u'_key').to_number())+Js(1))-Js(1))
            return var.get(u'useTemplate')(var.get(u'_getAst')(), var.get(u'args'))
        PyJs_anonymous_1871_._set_name(u'anonymous')
        return PyJs_anonymous_1871_
    PyJs_anonymous_1865_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1865_)
    var.put(u'_cloneDeep', var.get(u'require')(Js(u'lodash/cloneDeep')))
    var.put(u'_cloneDeep2', var.get(u'_interopRequireDefault')(var.get(u'_cloneDeep')))
    var.put(u'_assign', var.get(u'require')(Js(u'lodash/assign')))
    var.put(u'_assign2', var.get(u'_interopRequireDefault')(var.get(u'_assign')))
    var.put(u'_has', var.get(u'require')(Js(u'lodash/has')))
    var.put(u'_has2', var.get(u'_interopRequireDefault')(var.get(u'_has')))
    var.put(u'_babelTraverse', var.get(u'require')(Js(u'babel-traverse')))
    var.put(u'_babelTraverse2', var.get(u'_interopRequireDefault')(var.get(u'_babelTraverse')))
    var.put(u'_babylon', var.get(u'require')(Js(u'babylon')))
    var.put(u'babylon', var.get(u'_interopRequireWildcard')(var.get(u'_babylon')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    var.put(u'FROM_TEMPLATE', Js(u'_fromTemplate'))
    var.put(u'TEMPLATE_SKIP', PyJsComma(Js(0.0),var.get(u'_symbol2').get(u'default'))())
    pass
    @Js
    def PyJs_enter_1875_(path, args, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'args':args, u'arguments':arguments, u'enter':PyJs_enter_1875_}, var)
        var.registers([u'node', u'i', u'path', u'args', u'replacement'])
        var.put(u'node', var.get(u'path').get(u'node'))
        if var.get(u'node').get(var.get(u'TEMPLATE_SKIP')):
            return var.get(u'path').callprop(u'skip')
        if var.get(u't').callprop(u'isExpressionStatement', var.get(u'node')):
            var.put(u'node', var.get(u'node').get(u'expression'))
        var.put(u'replacement', PyJsComma(Js(0.0), Js(None)))
        if (var.get(u't').callprop(u'isIdentifier', var.get(u'node')) and var.get(u'node').get(var.get(u'FROM_TEMPLATE'))):
            if PyJsComma(Js(0.0),var.get(u'_has2').get(u'default'))(var.get(u'args').get(u'0'), var.get(u'node').get(u'name')):
                var.put(u'replacement', var.get(u'args').get(u'0').get(var.get(u'node').get(u'name')))
            else:
                if PyJsStrictEq(var.get(u'node').get(u'name').get(u'0'),Js(u'$')):
                    var.put(u'i', (+var.get(u'node').get(u'name').callprop(u'slice', Js(1.0))))
                    if var.get(u'args').get(var.get(u'i')):
                        var.put(u'replacement', var.get(u'args').get(var.get(u'i')))
        if PyJsStrictEq(var.get(u'replacement'),var.get(u"null")):
            var.get(u'path').callprop(u'remove')
        if var.get(u'replacement'):
            var.get(u'replacement').put(var.get(u'TEMPLATE_SKIP'), var.get(u'true'))
            var.get(u'path').callprop(u'replaceInline', var.get(u'replacement'))
    PyJs_enter_1875_._set_name(u'enter')
    @Js
    def PyJs_exit_1876_(_ref, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'exit':PyJs_exit_1876_, u'arguments':arguments}, var)
        var.registers([u'node', u'_ref'])
        var.put(u'node', var.get(u'_ref').get(u'node'))
        if var.get(u'node').get(u'loc').neg():
            var.get(u'_babelTraverse2').get(u'default').callprop(u'clearNode', var.get(u'node'))
    PyJs_exit_1876_._set_name(u'exit')
    PyJs_Object_1874_ = Js({u'noScope':var.get(u'true'),u'enter':PyJs_enter_1875_,u'exit':PyJs_exit_1876_})
    var.put(u'templateVisitor', PyJs_Object_1874_)
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1864_._set_name(u'anonymous')
PyJs_Object_1877_ = Js({u'babel-runtime/core-js/symbol':Js(105.0),u'babel-traverse':Js(225.0),u'babel-types':Js(258.0),u'babylon':Js(262.0),u'lodash/assign':Js(435.0),u'lodash/cloneDeep':Js(439.0),u'lodash/has':Js(453.0)})
@Js
def PyJs_anonymous_1878_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_weakMap', u'clear', u'module', u'_weakMap2', u'scope', u'_interopRequireDefault', u'path', u'require'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1879_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1879_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_clear_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u'exports').put(u'path', var.put(u'path', var.get(u'_weakMap2').get(u'default').create()))
        var.get(u'exports').put(u'scope', var.put(u'scope', var.get(u'_weakMap2').get(u'default').create()))
    PyJsHoisted_clear_.func_name = u'clear'
    var.put(u'clear', PyJsHoisted_clear_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'scope', var.get(u'exports').put(u'path', var.get(u'undefined')))
    var.put(u'_weakMap', var.get(u'require')(Js(u'babel-runtime/core-js/weak-map')))
    var.put(u'_weakMap2', var.get(u'_interopRequireDefault')(var.get(u'_weakMap')))
    var.get(u'exports').put(u'clear', var.get(u'clear'))
    pass
    var.put(u'path', var.get(u'exports').put(u'path', var.get(u'_weakMap2').get(u'default').create()))
    var.put(u'scope', var.get(u'exports').put(u'scope', var.get(u'_weakMap2').get(u'default').create()))
    pass
PyJs_anonymous_1878_._set_name(u'anonymous')
PyJs_Object_1880_ = Js({u'babel-runtime/core-js/weak-map':Js(108.0)})
@Js
def PyJs_anonymous_1881_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_1882_(process, this, arguments, var=var):
        var = Scope({u'process':process, u'this':this, u'arguments':arguments}, var)
        var.registers([u'_babelTypes', u'_classCallCheck2', u'_interopRequireWildcard', u'process', u'_classCallCheck3', u'TraversalContext', u'_getIterator3', u'testing', u't', u'_interopRequireDefault', u'_getIterator2', u'_path3', u'_path2'])
        @Js
        def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj'])
            PyJs_Object_1884_ = Js({u'default':var.get(u'obj')})
            return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1884_)
        PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
        var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
        @Js
        def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj', u'key', u'newObj'])
            if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
                return var.get(u'obj')
            else:
                PyJs_Object_1883_ = Js({})
                var.put(u'newObj', PyJs_Object_1883_)
                if (var.get(u'obj')!=var.get(u"null")):
                    for PyJsTemp in var.get(u'obj'):
                        var.put(u'key', PyJsTemp)
                        if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                            var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
                var.get(u'newObj').put(u'default', var.get(u'obj'))
                return var.get(u'newObj')
        PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
        var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
        Js(u'use strict')
        var.get(u'exports').put(u'__esModule', var.get(u'true'))
        var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
        var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
        var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
        var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
        var.put(u'_path2', var.get(u'require')(Js(u'./path')))
        var.put(u'_path3', var.get(u'_interopRequireDefault')(var.get(u'_path2')))
        var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
        var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
        pass
        pass
        var.put(u'testing', PyJsStrictEq(var.get(u'process').get(u'env').get(u'NODE_ENV'),Js(u'test')))
        @Js
        def PyJs_anonymous_1885_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'TraversalContext'])
            @Js
            def PyJsHoisted_TraversalContext_(scope, opts, state, parentPath, this, arguments, var=var):
                var = Scope({u'state':state, u'arguments':arguments, u'parentPath':parentPath, u'this':this, u'scope':scope, u'opts':opts}, var)
                var.registers([u'scope', u'state', u'opts', u'parentPath'])
                PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'TraversalContext'))
                var.get(u"this").put(u'queue', var.get(u"null"))
                var.get(u"this").put(u'parentPath', var.get(u'parentPath'))
                var.get(u"this").put(u'scope', var.get(u'scope'))
                var.get(u"this").put(u'state', var.get(u'state'))
                var.get(u"this").put(u'opts', var.get(u'opts'))
            PyJsHoisted_TraversalContext_.func_name = u'TraversalContext'
            var.put(u'TraversalContext', PyJsHoisted_TraversalContext_)
            pass
            @Js
            def PyJs_shouldVisit_1886_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'shouldVisit':PyJs_shouldVisit_1886_}, var)
                var.registers([u'node', u'_isArray', u'_iterator', u'key', u'keys', u'_i', u'_ref', u'opts'])
                var.put(u'opts', var.get(u"this").get(u'opts'))
                if (var.get(u'opts').get(u'enter') or var.get(u'opts').get(u'exit')):
                    return var.get(u'true')
                if var.get(u'opts').get(var.get(u'node').get(u'type')):
                    return var.get(u'true')
                var.put(u'keys', var.get(u't').get(u'VISITOR_KEYS').get(var.get(u'node').get(u'type')))
                if (var.get(u'keys').neg() or var.get(u'keys').get(u'length').neg()):
                    return Js(False)
                #for JS loop
                var.put(u'_iterator', var.get(u'keys'))
                var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
                var.put(u'_i', Js(0.0))
                var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
                while 1:
                    pass
                    if var.get(u'_isArray'):
                        if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                            break
                        var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                        if var.get(u'_i').get(u'done'):
                            break
                        var.put(u'_ref', var.get(u'_i').get(u'value'))
                    var.put(u'key', var.get(u'_ref'))
                    if var.get(u'node').get(var.get(u'key')):
                        return var.get(u'true')
                
                return Js(False)
            PyJs_shouldVisit_1886_._set_name(u'shouldVisit')
            var.get(u'TraversalContext').get(u'prototype').put(u'shouldVisit', PyJs_shouldVisit_1886_)
            @Js
            def PyJs_create_1887_(node, obj, key, listKey, this, arguments, var=var):
                var = Scope({u'node':node, u'obj':obj, u'arguments':arguments, u'key':key, u'this':this, u'listKey':listKey, u'create':PyJs_create_1887_}, var)
                var.registers([u'node', u'listKey', u'obj', u'key'])
                PyJs_Object_1888_ = Js({u'parentPath':var.get(u"this").get(u'parentPath'),u'parent':var.get(u'node'),u'container':var.get(u'obj'),u'key':var.get(u'key'),u'listKey':var.get(u'listKey')})
                return var.get(u'_path3').get(u'default').callprop(u'get', PyJs_Object_1888_)
            PyJs_create_1887_._set_name(u'create')
            var.get(u'TraversalContext').get(u'prototype').put(u'create', PyJs_create_1887_)
            @Js
            def PyJs_maybeQueue_1889_(path, notPriority, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'maybeQueue':PyJs_maybeQueue_1889_, u'notPriority':notPriority, u'arguments':arguments}, var)
                var.registers([u'path', u'notPriority'])
                if var.get(u"this").get(u'trap'):
                    PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Infinite cycle detected')))
                    raise PyJsTempException
                if var.get(u"this").get(u'queue'):
                    if var.get(u'notPriority'):
                        var.get(u"this").get(u'queue').callprop(u'push', var.get(u'path'))
                    else:
                        var.get(u"this").get(u'priorityQueue').callprop(u'push', var.get(u'path'))
            PyJs_maybeQueue_1889_._set_name(u'maybeQueue')
            var.get(u'TraversalContext').get(u'prototype').put(u'maybeQueue', PyJs_maybeQueue_1889_)
            @Js
            def PyJs_visitMultiple_1890_(container, parent, listKey, this, arguments, var=var):
                var = Scope({u'visitMultiple':PyJs_visitMultiple_1890_, u'container':container, u'parent':parent, u'this':this, u'listKey':listKey, u'arguments':arguments}, var)
                var.registers([u'node', u'container', u'parent', u'listKey', u'queue', u'key'])
                if PyJsStrictEq(var.get(u'container').get(u'length'),Js(0.0)):
                    return Js(False)
                var.put(u'queue', Js([]))
                #for JS loop
                var.put(u'key', Js(0.0))
                while (var.get(u'key')<var.get(u'container').get(u'length')):
                    try:
                        var.put(u'node', var.get(u'container').get(var.get(u'key')))
                        if (var.get(u'node') and var.get(u"this").callprop(u'shouldVisit', var.get(u'node'))):
                            var.get(u'queue').callprop(u'push', var.get(u"this").callprop(u'create', var.get(u'parent'), var.get(u'container'), var.get(u'key'), var.get(u'listKey')))
                    finally:
                            (var.put(u'key',Js(var.get(u'key').to_number())+Js(1))-Js(1))
                return var.get(u"this").callprop(u'visitQueue', var.get(u'queue'))
            PyJs_visitMultiple_1890_._set_name(u'visitMultiple')
            var.get(u'TraversalContext').get(u'prototype').put(u'visitMultiple', PyJs_visitMultiple_1890_)
            @Js
            def PyJs_visitSingle_1891_(node, key, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'visitSingle':PyJs_visitSingle_1891_, u'arguments':arguments, u'key':key}, var)
                var.registers([u'node', u'key'])
                if var.get(u"this").callprop(u'shouldVisit', var.get(u'node').get(var.get(u'key'))):
                    return var.get(u"this").callprop(u'visitQueue', Js([var.get(u"this").callprop(u'create', var.get(u'node'), var.get(u'node'), var.get(u'key'))]))
                else:
                    return Js(False)
            PyJs_visitSingle_1891_._set_name(u'visitSingle')
            var.get(u'TraversalContext').get(u'prototype').put(u'visitSingle', PyJs_visitSingle_1891_)
            @Js
            def PyJs_visitQueue_1892_(queue, this, arguments, var=var):
                var = Scope({u'queue':queue, u'this':this, u'visitQueue':PyJs_visitQueue_1892_, u'arguments':arguments}, var)
                var.registers([u'_isArray3', u'_isArray2', u'_i3', u'stop', u'_ref2', u'_i2', u'queue', u'path', u'visited', u'_path', u'_ref3', u'_iterator3', u'_iterator2'])
                var.get(u"this").put(u'queue', var.get(u'queue'))
                var.get(u"this").put(u'priorityQueue', Js([]))
                var.put(u'visited', Js([]))
                var.put(u'stop', Js(False))
                #for JS loop
                var.put(u'_iterator2', var.get(u'queue'))
                var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
                var.put(u'_i2', Js(0.0))
                var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
                while 1:
                    pass
                    if var.get(u'_isArray2'):
                        if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                            break
                        var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                        if var.get(u'_i2').get(u'done'):
                            break
                        var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                    var.put(u'path', var.get(u'_ref2'))
                    var.get(u'path').callprop(u'resync')
                    if (PyJsStrictEq(var.get(u'path').get(u'contexts').get(u'length'),Js(0.0)) or PyJsStrictNeq(var.get(u'path').get(u'contexts').get((var.get(u'path').get(u'contexts').get(u'length')-Js(1.0))),var.get(u"this"))):
                        var.get(u'path').callprop(u'pushContext', var.get(u"this"))
                    if PyJsStrictEq(var.get(u'path').get(u'key'),var.get(u"null")):
                        continue
                    if (var.get(u'testing') and (var.get(u'queue').get(u'length')>=Js(10000.0))):
                        var.get(u"this").put(u'trap', var.get(u'true'))
                    if (var.get(u'visited').callprop(u'indexOf', var.get(u'path').get(u'node'))>=Js(0.0)):
                        continue
                    var.get(u'visited').callprop(u'push', var.get(u'path').get(u'node'))
                    if var.get(u'path').callprop(u'visit'):
                        var.put(u'stop', var.get(u'true'))
                        break
                    if var.get(u"this").get(u'priorityQueue').get(u'length'):
                        var.put(u'stop', var.get(u"this").callprop(u'visitQueue', var.get(u"this").get(u'priorityQueue')))
                        var.get(u"this").put(u'priorityQueue', Js([]))
                        var.get(u"this").put(u'queue', var.get(u'queue'))
                        if var.get(u'stop'):
                            break
                
                #for JS loop
                var.put(u'_iterator3', var.get(u'queue'))
                var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
                var.put(u'_i3', Js(0.0))
                var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
                while 1:
                    pass
                    if var.get(u'_isArray3'):
                        if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                            break
                        var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                        if var.get(u'_i3').get(u'done'):
                            break
                        var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                    var.put(u'_path', var.get(u'_ref3'))
                    var.get(u'_path').callprop(u'popContext')
                
                var.get(u"this").put(u'queue', var.get(u"null"))
                return var.get(u'stop')
            PyJs_visitQueue_1892_._set_name(u'visitQueue')
            var.get(u'TraversalContext').get(u'prototype').put(u'visitQueue', PyJs_visitQueue_1892_)
            @Js
            def PyJs_visit_1893_(node, key, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'visit':PyJs_visit_1893_, u'arguments':arguments, u'key':key}, var)
                var.registers([u'node', u'nodes', u'key'])
                var.put(u'nodes', var.get(u'node').get(var.get(u'key')))
                if var.get(u'nodes').neg():
                    return Js(False)
                if var.get(u'Array').callprop(u'isArray', var.get(u'nodes')):
                    return var.get(u"this").callprop(u'visitMultiple', var.get(u'nodes'), var.get(u'node'), var.get(u'key'))
                else:
                    return var.get(u"this").callprop(u'visitSingle', var.get(u'node'), var.get(u'key'))
            PyJs_visit_1893_._set_name(u'visit')
            var.get(u'TraversalContext').get(u'prototype').put(u'visit', PyJs_visit_1893_)
            return var.get(u'TraversalContext')
        PyJs_anonymous_1885_._set_name(u'anonymous')
        var.put(u'TraversalContext', PyJs_anonymous_1885_())
        var.get(u'exports').put(u'default', var.get(u'TraversalContext'))
        var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
    PyJs_anonymous_1882_._set_name(u'anonymous')
    PyJs_anonymous_1882_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')))
PyJs_anonymous_1881_._set_name(u'anonymous')
PyJs_Object_1894_ = Js({u'./path':Js(232.0),u'_process':Js(531.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1895_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'Hub', u'require', u'module', u'_interopRequireDefault', u'_classCallCheck3', u'_classCallCheck2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1896_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1896_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    pass
    @Js
    def PyJs_Hub_1897_(file, options, this, arguments, var=var):
        var = Scope({u'this':this, u'Hub':PyJs_Hub_1897_, u'options':options, u'file':file, u'arguments':arguments}, var)
        var.registers([u'options', u'file'])
        PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Hub'))
        var.get(u"this").put(u'file', var.get(u'file'))
        var.get(u"this").put(u'options', var.get(u'options'))
    PyJs_Hub_1897_._set_name(u'Hub')
    var.put(u'Hub', PyJs_Hub_1897_)
    var.get(u'exports').put(u'default', var.get(u'Hub'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1895_._set_name(u'anonymous')
PyJs_Object_1898_ = Js({u'babel-runtime/helpers/classCallCheck':Js(110.0)})
@Js
def PyJs_anonymous_1899_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'traverse', u'_context', u'_scope', u'module', u'_hub', u'_interopRequireDefault', u'_cache', u'_getIterator2', u'_getIterator3', u'_context2', u'_visitors', u'cache', u'hasBlacklistedType', u'_babelMessages', u'exports', u'_interopRequireWildcard', u'_babelTypes', u'_includes2', u'visitors', u'_includes', u'require', u'messages', u't', u'_path'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1907_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1907_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_traverse_(parent, opts, scope, state, parentPath, this, arguments, var=var):
        var = Scope({u'state':state, u'arguments':arguments, u'parent':parent, u'parentPath':parentPath, u'this':this, u'scope':scope, u'opts':opts}, var)
        var.registers([u'scope', u'state', u'opts', u'parent', u'parentPath'])
        if var.get(u'parent').neg():
            return var.get('undefined')
        if var.get(u'opts').neg():
            PyJs_Object_1908_ = Js({})
            var.put(u'opts', PyJs_Object_1908_)
        if (var.get(u'opts').get(u'noScope').neg() and var.get(u'scope').neg()):
            if (PyJsStrictNeq(var.get(u'parent').get(u'type'),Js(u'Program')) and PyJsStrictNeq(var.get(u'parent').get(u'type'),Js(u'File'))):
                PyJsTempException = JsToPyException(var.get(u'Error').create(var.get(u'messages').callprop(u'get', Js(u'traverseNeedsParent'), var.get(u'parent').get(u'type'))))
                raise PyJsTempException
        var.get(u'visitors').callprop(u'explode', var.get(u'opts'))
        var.get(u'traverse').callprop(u'node', var.get(u'parent'), var.get(u'opts'), var.get(u'scope'), var.get(u'state'), var.get(u'parentPath'))
    PyJsHoisted_traverse_.func_name = u'traverse'
    var.put(u'traverse', PyJsHoisted_traverse_)
    @Js
    def PyJsHoisted_hasBlacklistedType_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments}, var)
        var.registers([u'path', u'state'])
        if PyJsStrictEq(var.get(u'path').get(u'node').get(u'type'),var.get(u'state').get(u'type')):
            var.get(u'state').put(u'has', var.get(u'true'))
            var.get(u'path').callprop(u'stop')
    PyJsHoisted_hasBlacklistedType_.func_name = u'hasBlacklistedType'
    var.put(u'hasBlacklistedType', PyJsHoisted_hasBlacklistedType_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1906_ = Js({})
            var.put(u'newObj', PyJs_Object_1906_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'visitors', var.get(u'exports').put(u'Hub', var.get(u'exports').put(u'Scope', var.get(u'exports').put(u'NodePath', var.get(u'undefined')))))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_path', var.get(u'require')(Js(u'./path')))
    @Js
    def PyJs_get_1901_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_1901_}, var)
        var.registers([])
        return var.get(u'_interopRequireDefault')(var.get(u'_path')).get(u'default')
    PyJs_get_1901_._set_name(u'get')
    PyJs_Object_1900_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_1901_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'NodePath'), PyJs_Object_1900_)
    var.put(u'_scope', var.get(u'require')(Js(u'./scope')))
    @Js
    def PyJs_get_1903_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_1903_}, var)
        var.registers([])
        return var.get(u'_interopRequireDefault')(var.get(u'_scope')).get(u'default')
    PyJs_get_1903_._set_name(u'get')
    PyJs_Object_1902_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_1903_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'Scope'), PyJs_Object_1902_)
    var.put(u'_hub', var.get(u'require')(Js(u'./hub')))
    @Js
    def PyJs_get_1905_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_1905_}, var)
        var.registers([])
        return var.get(u'_interopRequireDefault')(var.get(u'_hub')).get(u'default')
    PyJs_get_1905_._set_name(u'get')
    PyJs_Object_1904_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_1905_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'Hub'), PyJs_Object_1904_)
    var.get(u'exports').put(u'default', var.get(u'traverse'))
    var.put(u'_context', var.get(u'require')(Js(u'./context')))
    var.put(u'_context2', var.get(u'_interopRequireDefault')(var.get(u'_context')))
    var.put(u'_visitors', var.get(u'require')(Js(u'./visitors')))
    var.put(u'visitors', var.get(u'_interopRequireWildcard')(var.get(u'_visitors')))
    var.put(u'_babelMessages', var.get(u'require')(Js(u'babel-messages')))
    var.put(u'messages', var.get(u'_interopRequireWildcard')(var.get(u'_babelMessages')))
    var.put(u'_includes', var.get(u'require')(Js(u'lodash/includes')))
    var.put(u'_includes2', var.get(u'_interopRequireDefault')(var.get(u'_includes')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_cache', var.get(u'require')(Js(u'./cache')))
    var.put(u'cache', var.get(u'_interopRequireWildcard')(var.get(u'_cache')))
    pass
    pass
    var.get(u'exports').put(u'visitors', var.get(u'visitors'))
    pass
    var.get(u'traverse').put(u'visitors', var.get(u'visitors'))
    var.get(u'traverse').put(u'verify', var.get(u'visitors').get(u'verify'))
    var.get(u'traverse').put(u'explode', var.get(u'visitors').get(u'explode'))
    var.get(u'traverse').put(u'NodePath', var.get(u'require')(Js(u'./path')))
    var.get(u'traverse').put(u'Scope', var.get(u'require')(Js(u'./scope')))
    var.get(u'traverse').put(u'Hub', var.get(u'require')(Js(u'./hub')))
    @Js
    def PyJs_anonymous_1909_(node, enter, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'enter':enter}, var)
        var.registers([u'node', u'enter'])
        return var.get(u't').callprop(u'traverseFast', var.get(u'node'), var.get(u'enter'))
    PyJs_anonymous_1909_._set_name(u'anonymous')
    var.get(u'traverse').put(u'cheap', PyJs_anonymous_1909_)
    @Js
    def PyJs_anonymous_1910_(node, opts, scope, state, parentPath, skipKeys, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'state':state, u'skipKeys':skipKeys, u'parentPath':parentPath, u'scope':scope, u'opts':opts, u'arguments':arguments}, var)
        var.registers([u'key', u'node', u'_isArray', u'_iterator', u'context', u'keys', u'state', u'skipKeys', u'_i', u'parentPath', u'scope', u'_ref', u'opts'])
        var.put(u'keys', var.get(u't').get(u'VISITOR_KEYS').get(var.get(u'node').get(u'type')))
        if var.get(u'keys').neg():
            return var.get('undefined')
        var.put(u'context', var.get(u'_context2').get(u'default').create(var.get(u'scope'), var.get(u'opts'), var.get(u'state'), var.get(u'parentPath')))
        #for JS loop
        var.put(u'_iterator', var.get(u'keys'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'key', var.get(u'_ref'))
            if (var.get(u'skipKeys') and var.get(u'skipKeys').get(var.get(u'key'))):
                continue
            if var.get(u'context').callprop(u'visit', var.get(u'node'), var.get(u'key')):
                return var.get('undefined')
        
    PyJs_anonymous_1910_._set_name(u'anonymous')
    var.get(u'traverse').put(u'node', PyJs_anonymous_1910_)
    @Js
    def PyJs_anonymous_1911_(node, opts, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'opts':opts}, var)
        var.registers([u'node', u'opts'])
        var.get(u't').callprop(u'removeProperties', var.get(u'node'), var.get(u'opts'))
        var.get(u'cache').get(u'path').callprop(u'delete', var.get(u'node'))
    PyJs_anonymous_1911_._set_name(u'anonymous')
    var.get(u'traverse').put(u'clearNode', PyJs_anonymous_1911_)
    @Js
    def PyJs_anonymous_1912_(tree, opts, this, arguments, var=var):
        var = Scope({u'this':this, u'tree':tree, u'arguments':arguments, u'opts':opts}, var)
        var.registers([u'tree', u'opts'])
        var.get(u't').callprop(u'traverseFast', var.get(u'tree'), var.get(u'traverse').get(u'clearNode'), var.get(u'opts'))
        return var.get(u'tree')
    PyJs_anonymous_1912_._set_name(u'anonymous')
    var.get(u'traverse').put(u'removeProperties', PyJs_anonymous_1912_)
    pass
    @Js
    def PyJs_anonymous_1913_(tree, scope, type, blacklistTypes, this, arguments, var=var):
        var = Scope({u'arguments':arguments, u'type':type, u'this':this, u'scope':scope, u'tree':tree, u'blacklistTypes':blacklistTypes}, var)
        var.registers([u'scope', u'state', u'tree', u'blacklistTypes', u'type'])
        if PyJsComma(Js(0.0),var.get(u'_includes2').get(u'default'))(var.get(u'blacklistTypes'), var.get(u'tree').get(u'type')):
            return Js(False)
        if PyJsStrictEq(var.get(u'tree').get(u'type'),var.get(u'type')):
            return var.get(u'true')
        PyJs_Object_1914_ = Js({u'has':Js(False),u'type':var.get(u'type')})
        var.put(u'state', PyJs_Object_1914_)
        PyJs_Object_1915_ = Js({u'blacklist':var.get(u'blacklistTypes'),u'enter':var.get(u'hasBlacklistedType')})
        var.get(u'traverse')(var.get(u'tree'), PyJs_Object_1915_, var.get(u'scope'), var.get(u'state'))
        return var.get(u'state').get(u'has')
    PyJs_anonymous_1913_._set_name(u'anonymous')
    var.get(u'traverse').put(u'hasType', PyJs_anonymous_1913_)
    @Js
    def PyJs_anonymous_1916_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u'cache').callprop(u'clear')
    PyJs_anonymous_1916_._set_name(u'anonymous')
    var.get(u'traverse').put(u'clearCache', PyJs_anonymous_1916_)
    @Js
    def PyJs_anonymous_1917_(source, destination, this, arguments, var=var):
        var = Scope({u'this':this, u'source':source, u'destination':destination, u'arguments':arguments}, var)
        var.registers([u'source', u'destination'])
        if var.get(u'cache').get(u'path').callprop(u'has', var.get(u'source')):
            var.get(u'cache').get(u'path').callprop(u'set', var.get(u'destination'), var.get(u'cache').get(u'path').callprop(u'get', var.get(u'source')))
    PyJs_anonymous_1917_._set_name(u'anonymous')
    var.get(u'traverse').put(u'copyCache', PyJs_anonymous_1917_)
PyJs_anonymous_1899_._set_name(u'anonymous')
PyJs_Object_1918_ = Js({u'./cache':Js(222.0),u'./context':Js(223.0),u'./hub':Js(224.0),u'./path':Js(232.0),u'./scope':Js(244.0),u'./visitors':Js(246.0),u'babel-messages':Js(57.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-types':Js(258.0),u'lodash/includes':Js(456.0)})
@Js
def PyJs_anonymous_1919_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'findParent', u'_interopRequireWildcard', u'_index', u'require', u'_babelTypes', u'getAncestry', u'inShadow', u'module', u'inType', u'getStatementParent', u'getEarliestCommonAncestorFrom', u't', u'_index2', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'find', u'getDeepestCommonAncestorFrom', u'getFunctionParent'])
    @Js
    def PyJsHoisted_inType_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'_isArray3', u'_ref3', u'_i3', u'path', u'type', u'_iterator3'])
        var.put(u'path', var.get(u"this"))
        while var.get(u'path'):
            #for JS loop
            var.put(u'_iterator3', var.get(u'arguments'))
            var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
            var.put(u'_i3', Js(0.0))
            var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
            while 1:
                pass
                if var.get(u'_isArray3'):
                    if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                        break
                    var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                    if var.get(u'_i3').get(u'done'):
                        break
                    var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                var.put(u'type', var.get(u'_ref3'))
                if PyJsStrictEq(var.get(u'path').get(u'node').get(u'type'),var.get(u'type')):
                    return var.get(u'true')
            
            var.put(u'path', var.get(u'path').get(u'parentPath'))
        return Js(False)
    PyJsHoisted_inType_.func_name = u'inType'
    var.put(u'inType', PyJsHoisted_inType_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1920_ = Js({})
            var.put(u'newObj', PyJs_Object_1920_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_findParent_(callback, this, arguments, var=var):
        var = Scope({u'this':this, u'callback':callback, u'arguments':arguments}, var)
        var.registers([u'path', u'callback'])
        var.put(u'path', var.get(u"this"))
        while var.put(u'path', var.get(u'path').get(u'parentPath')):
            if var.get(u'callback')(var.get(u'path')):
                return var.get(u'path')
        return var.get(u"null")
    PyJsHoisted_findParent_.func_name = u'findParent'
    var.put(u'findParent', PyJsHoisted_findParent_)
    @Js
    def PyJsHoisted_getAncestry_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'path', u'paths'])
        var.put(u'path', var.get(u"this"))
        var.put(u'paths', Js([]))
        while 1:
            var.get(u'paths').callprop(u'push', var.get(u'path'))
            if not var.put(u'path', var.get(u'path').get(u'parentPath')):
                break
        return var.get(u'paths')
    PyJsHoisted_getAncestry_.func_name = u'getAncestry'
    var.put(u'getAncestry', PyJsHoisted_getAncestry_)
    @Js
    def PyJsHoisted_getStatementParent_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'path'])
        var.put(u'path', var.get(u"this"))
        while 1:
            if var.get(u'Array').callprop(u'isArray', var.get(u'path').get(u'container')):
                return var.get(u'path')
            if not var.put(u'path', var.get(u'path').get(u'parentPath')):
                break
    PyJsHoisted_getStatementParent_.func_name = u'getStatementParent'
    var.put(u'getStatementParent', PyJsHoisted_getStatementParent_)
    @Js
    def PyJsHoisted_getEarliestCommonAncestorFrom_(paths, this, arguments, var=var):
        var = Scope({u'this':this, u'paths':paths, u'arguments':arguments}, var)
        var.registers([u'paths'])
        @Js
        def PyJs_anonymous_1923_(deepest, i, ancestries, this, arguments, var=var):
            var = Scope({u'i':i, u'this':this, u'deepest':deepest, u'arguments':arguments, u'ancestries':ancestries}, var)
            var.registers([u'_isArray', u'_iterator', u'keys', u'i', u'ancestry', u'earliestKeyIndex', u'deepest', u'_i', u'currentKeyIndex', u'path', u'_ref', u'earliest', u'ancestries'])
            var.put(u'earliest', PyJsComma(Js(0.0), Js(None)))
            var.put(u'keys', var.get(u't').get(u'VISITOR_KEYS').get(var.get(u'deepest').get(u'type')))
            #for JS loop
            var.put(u'_iterator', var.get(u'ancestries'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'ancestry', var.get(u'_ref'))
                var.put(u'path', var.get(u'ancestry').get((var.get(u'i')+Js(1.0))))
                if var.get(u'earliest').neg():
                    var.put(u'earliest', var.get(u'path'))
                    continue
                if (var.get(u'path').get(u'listKey') and PyJsStrictEq(var.get(u'earliest').get(u'listKey'),var.get(u'path').get(u'listKey'))):
                    if (var.get(u'path').get(u'key')<var.get(u'earliest').get(u'key')):
                        var.put(u'earliest', var.get(u'path'))
                        continue
                var.put(u'earliestKeyIndex', var.get(u'keys').callprop(u'indexOf', var.get(u'earliest').get(u'parentKey')))
                var.put(u'currentKeyIndex', var.get(u'keys').callprop(u'indexOf', var.get(u'path').get(u'parentKey')))
                if (var.get(u'earliestKeyIndex')>var.get(u'currentKeyIndex')):
                    var.put(u'earliest', var.get(u'path'))
            
            return var.get(u'earliest')
        PyJs_anonymous_1923_._set_name(u'anonymous')
        return var.get(u"this").callprop(u'getDeepestCommonAncestorFrom', var.get(u'paths'), PyJs_anonymous_1923_)
    PyJsHoisted_getEarliestCommonAncestorFrom_.func_name = u'getEarliestCommonAncestorFrom'
    var.put(u'getEarliestCommonAncestorFrom', PyJsHoisted_getEarliestCommonAncestorFrom_)
    @Js
    def PyJsHoisted_getFunctionParent_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_anonymous_1922_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
            var.registers([u'path'])
            return (var.get(u'path').callprop(u'isFunction') or var.get(u'path').callprop(u'isProgram'))
        PyJs_anonymous_1922_._set_name(u'anonymous')
        return var.get(u"this").callprop(u'findParent', PyJs_anonymous_1922_)
    PyJsHoisted_getFunctionParent_.func_name = u'getFunctionParent'
    var.put(u'getFunctionParent', PyJsHoisted_getFunctionParent_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1921_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1921_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_find_(callback, this, arguments, var=var):
        var = Scope({u'this':this, u'callback':callback, u'arguments':arguments}, var)
        var.registers([u'path', u'callback'])
        var.put(u'path', var.get(u"this"))
        while 1:
            if var.get(u'callback')(var.get(u'path')):
                return var.get(u'path')
            if not var.put(u'path', var.get(u'path').get(u'parentPath')):
                break
        return var.get(u"null")
    PyJsHoisted_find_.func_name = u'find'
    var.put(u'find', PyJsHoisted_find_)
    @Js
    def PyJsHoisted_getDeepestCommonAncestorFrom_(paths, filter, this, arguments, var=var):
        var = Scope({u'filter':filter, u'paths':paths, u'this':this, u'arguments':arguments}, var)
        var.registers([u'paths', u'minDepth', u'_isArray2', u'_this', u'i', u'lastCommonIndex', u'_i2', u'_ref2', u'filter', u'ancestry', u'ancestries', u'lastCommon', u'shouldMatch', u'_iterator2', u'first'])
        var.put(u'_this', var.get(u"this"))
        if var.get(u'paths').get(u'length').neg():
            return var.get(u"this")
        if PyJsStrictEq(var.get(u'paths').get(u'length'),Js(1.0)):
            return var.get(u'paths').get(u'0')
        var.put(u'minDepth', var.get(u'Infinity'))
        var.put(u'lastCommonIndex', PyJsComma(Js(0.0), Js(None)))
        var.put(u'lastCommon', PyJsComma(Js(0.0), Js(None)))
        @Js
        def PyJs_anonymous_1924_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
            var.registers([u'path', u'ancestry'])
            var.put(u'ancestry', Js([]))
            while 1:
                var.get(u'ancestry').callprop(u'unshift', var.get(u'path'))
                if not (var.put(u'path', var.get(u'path').get(u'parentPath')) and PyJsStrictNeq(var.get(u'path'),var.get(u'_this'))):
                    break
            if (var.get(u'ancestry').get(u'length')<var.get(u'minDepth')):
                var.put(u'minDepth', var.get(u'ancestry').get(u'length'))
            return var.get(u'ancestry')
        PyJs_anonymous_1924_._set_name(u'anonymous')
        var.put(u'ancestries', var.get(u'paths').callprop(u'map', PyJs_anonymous_1924_))
        var.put(u'first', var.get(u'ancestries').get(u'0'))
        class JS_CONTINUE_LABEL_64657074684c6f6f70(Exception): pass
        class JS_BREAK_LABEL_64657074684c6f6f70(Exception): pass
        try:
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'minDepth')):
                try:
                    try:
                        var.put(u'shouldMatch', var.get(u'first').get(var.get(u'i')))
                        #for JS loop
                        var.put(u'_iterator2', var.get(u'ancestries'))
                        var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
                        var.put(u'_i2', Js(0.0))
                        var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
                        while 1:
                            pass
                            if var.get(u'_isArray2'):
                                if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                                    break
                                var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                            else:
                                var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                                if var.get(u'_i2').get(u'done'):
                                    break
                                var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                            var.put(u'ancestry', var.get(u'_ref2'))
                            if PyJsStrictNeq(var.get(u'ancestry').get(var.get(u'i')),var.get(u'shouldMatch')):
                                raise JS_BREAK_LABEL_64657074684c6f6f70("Breaked")
                        
                        var.put(u'lastCommonIndex', var.get(u'i'))
                        var.put(u'lastCommon', var.get(u'shouldMatch'))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                except JS_CONTINUE_LABEL_64657074684c6f6f70:
                    pass
        except JS_BREAK_LABEL_64657074684c6f6f70:
            pass
        if var.get(u'lastCommon'):
            if var.get(u'filter'):
                return var.get(u'filter')(var.get(u'lastCommon'), var.get(u'lastCommonIndex'), var.get(u'ancestries'))
            else:
                return var.get(u'lastCommon')
        else:
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"Couldn't find intersection")))
            raise PyJsTempException
    PyJsHoisted_getDeepestCommonAncestorFrom_.func_name = u'getDeepestCommonAncestorFrom'
    var.put(u'getDeepestCommonAncestorFrom', PyJsHoisted_getDeepestCommonAncestorFrom_)
    @Js
    def PyJsHoisted_inShadow_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'shadow', u'parentFn', u'key'])
        @Js
        def PyJs_anonymous_1925_(p, this, arguments, var=var):
            var = Scope({u'this':this, u'p':p, u'arguments':arguments}, var)
            var.registers([u'p'])
            return var.get(u'p').callprop(u'isFunction')
        PyJs_anonymous_1925_._set_name(u'anonymous')
        var.put(u'parentFn', (var.get(u"this") if var.get(u"this").callprop(u'isFunction') else var.get(u"this").callprop(u'findParent', PyJs_anonymous_1925_)))
        if var.get(u'parentFn').neg():
            return var.get('undefined')
        if (var.get(u'parentFn').callprop(u'isFunctionExpression') or var.get(u'parentFn').callprop(u'isFunctionDeclaration')):
            var.put(u'shadow', var.get(u'parentFn').get(u'node').get(u'shadow'))
            if (var.get(u'shadow') and (var.get(u'key').neg() or PyJsStrictNeq(var.get(u'shadow').get(var.get(u'key')),Js(False)))):
                return var.get(u'parentFn')
        else:
            if var.get(u'parentFn').callprop(u'isArrowFunctionExpression'):
                return var.get(u'parentFn')
        return var.get(u"null")
    PyJsHoisted_inShadow_.func_name = u'inShadow'
    var.put(u'inShadow', PyJsHoisted_inShadow_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'findParent', var.get(u'findParent'))
    var.get(u'exports').put(u'find', var.get(u'find'))
    var.get(u'exports').put(u'getFunctionParent', var.get(u'getFunctionParent'))
    var.get(u'exports').put(u'getStatementParent', var.get(u'getStatementParent'))
    var.get(u'exports').put(u'getEarliestCommonAncestorFrom', var.get(u'getEarliestCommonAncestorFrom'))
    var.get(u'exports').put(u'getDeepestCommonAncestorFrom', var.get(u'getDeepestCommonAncestorFrom'))
    var.get(u'exports').put(u'getAncestry', var.get(u'getAncestry'))
    var.get(u'exports').put(u'inType', var.get(u'inType'))
    var.get(u'exports').put(u'inShadow', var.get(u'inShadow'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_1919_._set_name(u'anonymous')
PyJs_Object_1926_ = Js({u'./index':Js(232.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1927_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'addComments', u'module', u'shareCommentsWithSiblings', u'addComment'])
    @Js
    def PyJsHoisted_addComments_(type, comments, this, arguments, var=var):
        var = Scope({u'this':this, u'type':type, u'arguments':arguments, u'comments':comments}, var)
        var.registers([u'node', u'type', u'comments', u'key'])
        if var.get(u'comments').neg():
            return var.get('undefined')
        var.put(u'node', var.get(u"this").get(u'node'))
        if var.get(u'node').neg():
            return var.get('undefined')
        var.put(u'key', (var.get(u'type')+Js(u'Comments')))
        if var.get(u'node').get(var.get(u'key')):
            var.get(u'node').put(var.get(u'key'), var.get(u'node').get(var.get(u'key')).callprop(u'concat', var.get(u'comments')))
        else:
            var.get(u'node').put(var.get(u'key'), var.get(u'comments'))
    PyJsHoisted_addComments_.func_name = u'addComments'
    var.put(u'addComments', PyJsHoisted_addComments_)
    @Js
    def PyJsHoisted_addComment_(type, content, line, this, arguments, var=var):
        var = Scope({u'content':content, u'this':this, u'line':line, u'type':type, u'arguments':arguments}, var)
        var.registers([u'content', u'line', u'type'])
        PyJs_Object_1928_ = Js({u'type':(Js(u'CommentLine') if var.get(u'line') else Js(u'CommentBlock')),u'value':var.get(u'content')})
        var.get(u"this").callprop(u'addComments', var.get(u'type'), Js([PyJs_Object_1928_]))
    PyJsHoisted_addComment_.func_name = u'addComment'
    var.put(u'addComment', PyJsHoisted_addComment_)
    @Js
    def PyJsHoisted_shareCommentsWithSiblings_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'leading', u'prev', u'trailing', u'next'])
        var.put(u'node', var.get(u"this").get(u'node'))
        if var.get(u'node').neg():
            return var.get('undefined')
        var.put(u'trailing', var.get(u'node').get(u'trailingComments'))
        var.put(u'leading', var.get(u'node').get(u'leadingComments'))
        if (var.get(u'trailing').neg() and var.get(u'leading').neg()):
            return var.get('undefined')
        var.put(u'prev', var.get(u"this").callprop(u'getSibling', (var.get(u"this").get(u'key')-Js(1.0))))
        var.put(u'next', var.get(u"this").callprop(u'getSibling', (var.get(u"this").get(u'key')+Js(1.0))))
        if var.get(u'prev').get(u'node').neg():
            var.put(u'prev', var.get(u'next'))
        if var.get(u'next').get(u'node').neg():
            var.put(u'next', var.get(u'prev'))
        var.get(u'prev').callprop(u'addComments', Js(u'trailing'), var.get(u'leading'))
        var.get(u'next').callprop(u'addComments', Js(u'leading'), var.get(u'trailing'))
    PyJsHoisted_shareCommentsWithSiblings_.func_name = u'shareCommentsWithSiblings'
    var.put(u'shareCommentsWithSiblings', PyJsHoisted_shareCommentsWithSiblings_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'shareCommentsWithSiblings', var.get(u'shareCommentsWithSiblings'))
    var.get(u'exports').put(u'addComment', var.get(u'addComment'))
    var.get(u'exports').put(u'addComments', var.get(u'addComments'))
    pass
    pass
    pass
PyJs_anonymous_1927_._set_name(u'anonymous')
PyJs_Object_1929_ = Js({})
@Js
def PyJs_anonymous_1930_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_getQueueContexts', u'pushContext', u'skip', u'module', u'resync', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'skipKey', u'_call', u'popContext', u'visit', u'setKey', u'call', u'exports', u'_resyncParent', u'_resyncRemoved', u'isBlacklisted', u'stop', u'_resyncList', u'_resyncKey', u'_index2', u'setContext', u'_index', u'setup', u'setScope', u'requeue', u'require'])
    @Js
    def PyJsHoisted_popContext_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").get(u'contexts').callprop(u'pop')
        var.get(u"this").callprop(u'setContext', var.get(u"this").get(u'contexts').get((var.get(u"this").get(u'contexts').get(u'length')-Js(1.0))))
    PyJsHoisted_popContext_.func_name = u'popContext'
    var.put(u'popContext', PyJsHoisted_popContext_)
    @Js
    def PyJsHoisted_setup_(parentPath, container, listKey, key, this, arguments, var=var):
        var = Scope({u'container':container, u'arguments':arguments, u'key':key, u'parentPath':parentPath, u'this':this, u'listKey':listKey}, var)
        var.registers([u'listKey', u'container', u'key', u'parentPath'])
        var.get(u"this").put(u'inList', var.get(u'listKey').neg().neg())
        var.get(u"this").put(u'listKey', var.get(u'listKey'))
        var.get(u"this").put(u'parentKey', (var.get(u'listKey') or var.get(u'key')))
        var.get(u"this").put(u'container', var.get(u'container'))
        var.get(u"this").put(u'parentPath', (var.get(u'parentPath') or var.get(u"this").get(u'parentPath')))
        var.get(u"this").callprop(u'setKey', var.get(u'key'))
    PyJsHoisted_setup_.func_name = u'setup'
    var.put(u'setup', PyJsHoisted_setup_)
    @Js
    def PyJsHoisted_requeue_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'_isArray2', u'contexts', u'_i2', u'_ref2', u'context', u'pathToQueue', u'_iterator2'])
        var.put(u'pathToQueue', (var.get(u'arguments').get(u'0') if ((var.get(u'arguments').get(u'length')>Js(0.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'0'),var.get(u'undefined'))) else var.get(u"this")))
        if var.get(u'pathToQueue').get(u'removed'):
            return var.get('undefined')
        var.put(u'contexts', var.get(u"this").get(u'contexts'))
        #for JS loop
        var.put(u'_iterator2', var.get(u'contexts'))
        var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
        var.put(u'_i2', Js(0.0))
        var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
        while 1:
            pass
            if var.get(u'_isArray2'):
                if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                    break
                var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                if var.get(u'_i2').get(u'done'):
                    break
                var.put(u'_ref2', var.get(u'_i2').get(u'value'))
            var.put(u'context', var.get(u'_ref2'))
            var.get(u'context').callprop(u'maybeQueue', var.get(u'pathToQueue'))
        
    PyJsHoisted_requeue_.func_name = u'requeue'
    var.put(u'requeue', PyJsHoisted_requeue_)
    @Js
    def PyJsHoisted__resyncParent_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if var.get(u"this").get(u'parentPath'):
            var.get(u"this").put(u'parent', var.get(u"this").get(u'parentPath').get(u'node'))
    PyJsHoisted__resyncParent_.func_name = u'_resyncParent'
    var.put(u'_resyncParent', PyJsHoisted__resyncParent_)
    @Js
    def PyJsHoisted__resyncRemoved_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if (((var.get(u"this").get(u'key')==var.get(u"null")) or var.get(u"this").get(u'container').neg()) or PyJsStrictNeq(var.get(u"this").get(u'container').get(var.get(u"this").get(u'key')),var.get(u"this").get(u'node'))):
            var.get(u"this").callprop(u'_markRemoved')
    PyJsHoisted__resyncRemoved_.func_name = u'_resyncRemoved'
    var.put(u'_resyncRemoved', PyJsHoisted__resyncRemoved_)
    @Js
    def PyJsHoisted_skip_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").put(u'shouldSkip', var.get(u'true'))
    PyJsHoisted_skip_.func_name = u'skip'
    var.put(u'skip', PyJsHoisted_skip_)
    @Js
    def PyJsHoisted_resync_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if var.get(u"this").get(u'removed'):
            return var.get('undefined')
        var.get(u"this").callprop(u'_resyncParent')
        var.get(u"this").callprop(u'_resyncList')
        var.get(u"this").callprop(u'_resyncKey')
    PyJsHoisted_resync_.func_name = u'resync'
    var.put(u'resync', PyJsHoisted_resync_)
    @Js
    def PyJsHoisted_isBlacklisted_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'blacklist'])
        var.put(u'blacklist', var.get(u"this").get(u'opts').get(u'blacklist'))
        return (var.get(u'blacklist') and (var.get(u'blacklist').callprop(u'indexOf', var.get(u"this").get(u'node').get(u'type'))>(-Js(1.0))))
    PyJsHoisted_isBlacklisted_.func_name = u'isBlacklisted'
    var.put(u'isBlacklisted', PyJsHoisted_isBlacklisted_)
    @Js
    def PyJsHoisted_visit_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if var.get(u"this").get(u'node').neg():
            return Js(False)
        if var.get(u"this").callprop(u'isBlacklisted'):
            return Js(False)
        if (var.get(u"this").get(u'opts').get(u'shouldSkip') and var.get(u"this").get(u'opts').callprop(u'shouldSkip', var.get(u"this"))):
            return Js(False)
        if (var.get(u"this").callprop(u'call', Js(u'enter')) or var.get(u"this").get(u'shouldSkip')):
            @Js
            def PyJs_anonymous_1933_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return Js(u'Skip...')
            PyJs_anonymous_1933_._set_name(u'anonymous')
            var.get(u"this").callprop(u'debug', PyJs_anonymous_1933_)
            return var.get(u"this").get(u'shouldStop')
        @Js
        def PyJs_anonymous_1934_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return Js(u'Recursing into...')
        PyJs_anonymous_1934_._set_name(u'anonymous')
        var.get(u"this").callprop(u'debug', PyJs_anonymous_1934_)
        var.get(u'_index2').get(u'default').callprop(u'node', var.get(u"this").get(u'node'), var.get(u"this").get(u'opts'), var.get(u"this").get(u'scope'), var.get(u"this").get(u'state'), var.get(u"this"), var.get(u"this").get(u'skipKeys'))
        var.get(u"this").callprop(u'call', Js(u'exit'))
        return var.get(u"this").get(u'shouldStop')
    PyJsHoisted_visit_.func_name = u'visit'
    var.put(u'visit', PyJsHoisted_visit_)
    @Js
    def PyJsHoisted__resyncList_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'newContainer'])
        if (var.get(u"this").get(u'parent').neg() or var.get(u"this").get(u'inList').neg()):
            return var.get('undefined')
        var.put(u'newContainer', var.get(u"this").get(u'parent').get(var.get(u"this").get(u'listKey')))
        if PyJsStrictEq(var.get(u"this").get(u'container'),var.get(u'newContainer')):
            return var.get('undefined')
        var.get(u"this").put(u'container', (var.get(u'newContainer') or var.get(u"null")))
    PyJsHoisted__resyncList_.func_name = u'_resyncList'
    var.put(u'_resyncList', PyJsHoisted__resyncList_)
    @Js
    def PyJsHoisted_stop_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").put(u'shouldStop', var.get(u'true'))
        var.get(u"this").put(u'shouldSkip', var.get(u'true'))
    PyJsHoisted_stop_.func_name = u'stop'
    var.put(u'stop', PyJsHoisted_stop_)
    @Js
    def PyJsHoisted__resyncKey_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'i', u'key'])
        if var.get(u"this").get(u'container').neg():
            return var.get('undefined')
        if PyJsStrictEq(var.get(u"this").get(u'node'),var.get(u"this").get(u'container').get(var.get(u"this").get(u'key'))):
            return var.get('undefined')
        if var.get(u'Array').callprop(u'isArray', var.get(u"this").get(u'container')):
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u"this").get(u'container').get(u'length')):
                try:
                    if PyJsStrictEq(var.get(u"this").get(u'container').get(var.get(u'i')),var.get(u"this").get(u'node')):
                        return var.get(u"this").callprop(u'setKey', var.get(u'i'))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        else:
            for PyJsTemp in var.get(u"this").get(u'container'):
                var.put(u'key', PyJsTemp)
                if PyJsStrictEq(var.get(u"this").get(u'container').get(var.get(u'key')),var.get(u"this").get(u'node')):
                    return var.get(u"this").callprop(u'setKey', var.get(u'key'))
        var.get(u"this").put(u'key', var.get(u"null"))
    PyJsHoisted__resyncKey_.func_name = u'_resyncKey'
    var.put(u'_resyncKey', PyJsHoisted__resyncKey_)
    @Js
    def PyJsHoisted_setKey_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        var.get(u"this").put(u'key', var.get(u'key'))
        var.get(u"this").put(u'node', var.get(u"this").get(u'container').get(var.get(u"this").get(u'key')))
        var.get(u"this").put(u'type', (var.get(u"this").get(u'node') and var.get(u"this").get(u'node').get(u'type')))
    PyJsHoisted_setKey_.func_name = u'setKey'
    var.put(u'setKey', PyJsHoisted_setKey_)
    @Js
    def PyJsHoisted_call_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key', u'opts'])
        var.put(u'opts', var.get(u"this").get(u'opts'))
        @Js
        def PyJs_anonymous_1932_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return var.get(u'key')
        PyJs_anonymous_1932_._set_name(u'anonymous')
        var.get(u"this").callprop(u'debug', PyJs_anonymous_1932_)
        if var.get(u"this").get(u'node'):
            if var.get(u"this").callprop(u'_call', var.get(u'opts').get(var.get(u'key'))):
                return var.get(u'true')
        if var.get(u"this").get(u'node'):
            return var.get(u"this").callprop(u'_call', (var.get(u'opts').get(var.get(u"this").get(u'node').get(u'type')) and var.get(u'opts').get(var.get(u"this").get(u'node').get(u'type')).get(var.get(u'key'))))
        return Js(False)
    PyJsHoisted_call_.func_name = u'call'
    var.put(u'call', PyJsHoisted_call_)
    @Js
    def PyJsHoisted_pushContext_(context, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'context':context}, var)
        var.registers([u'context'])
        var.get(u"this").get(u'contexts').callprop(u'push', var.get(u'context'))
        var.get(u"this").callprop(u'setContext', var.get(u'context'))
    PyJsHoisted_pushContext_.func_name = u'pushContext'
    var.put(u'pushContext', PyJsHoisted_pushContext_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1931_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1931_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_setScope_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'path', u'target'])
        if (var.get(u"this").get(u'opts') and var.get(u"this").get(u'opts').get(u'noScope')):
            return var.get('undefined')
        var.put(u'target', (var.get(u"this").get(u'context') and var.get(u"this").get(u'context').get(u'scope')))
        if var.get(u'target').neg():
            var.put(u'path', var.get(u"this").get(u'parentPath'))
            while (var.get(u'path') and var.get(u'target').neg()):
                if (var.get(u'path').get(u'opts') and var.get(u'path').get(u'opts').get(u'noScope')):
                    return var.get('undefined')
                var.put(u'target', var.get(u'path').get(u'scope'))
                var.put(u'path', var.get(u'path').get(u'parentPath'))
        var.get(u"this").put(u'scope', var.get(u"this").callprop(u'getScope', var.get(u'target')))
        if var.get(u"this").get(u'scope'):
            var.get(u"this").get(u'scope').callprop(u'init')
    PyJsHoisted_setScope_.func_name = u'setScope'
    var.put(u'setScope', PyJsHoisted_setScope_)
    @Js
    def PyJsHoisted_setContext_(context, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'context':context}, var)
        var.registers([u'context'])
        var.get(u"this").put(u'shouldSkip', Js(False))
        var.get(u"this").put(u'shouldStop', Js(False))
        var.get(u"this").put(u'removed', Js(False))
        PyJs_Object_1935_ = Js({})
        var.get(u"this").put(u'skipKeys', PyJs_Object_1935_)
        if var.get(u'context'):
            var.get(u"this").put(u'context', var.get(u'context'))
            var.get(u"this").put(u'state', var.get(u'context').get(u'state'))
            var.get(u"this").put(u'opts', var.get(u'context').get(u'opts'))
        var.get(u"this").callprop(u'setScope')
        return var.get(u"this")
    PyJsHoisted_setContext_.func_name = u'setContext'
    var.put(u'setContext', PyJsHoisted_setContext_)
    @Js
    def PyJsHoisted__getQueueContexts_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'contexts', u'path'])
        var.put(u'path', var.get(u"this"))
        var.put(u'contexts', var.get(u"this").get(u'contexts'))
        while var.get(u'contexts').get(u'length').neg():
            var.put(u'path', var.get(u'path').get(u'parentPath'))
            var.put(u'contexts', var.get(u'path').get(u'contexts'))
        return var.get(u'contexts')
    PyJsHoisted__getQueueContexts_.func_name = u'_getQueueContexts'
    var.put(u'_getQueueContexts', PyJsHoisted__getQueueContexts_)
    @Js
    def PyJsHoisted_skipKey_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        var.get(u"this").get(u'skipKeys').put(var.get(u'key'), var.get(u'true'))
    PyJsHoisted_skipKey_.func_name = u'skipKey'
    var.put(u'skipKey', PyJsHoisted_skipKey_)
    @Js
    def PyJsHoisted__call_(fns, this, arguments, var=var):
        var = Scope({u'this':this, u'fns':fns, u'arguments':arguments}, var)
        var.registers([u'node', u'_isArray', u'_iterator', u'ret', u'_i', u'fns', u'_ref', u'fn'])
        if var.get(u'fns').neg():
            return Js(False)
        #for JS loop
        var.put(u'_iterator', var.get(u'fns'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'fn', var.get(u'_ref'))
            if var.get(u'fn').neg():
                continue
            var.put(u'node', var.get(u"this").get(u'node'))
            if var.get(u'node').neg():
                return var.get(u'true')
            var.put(u'ret', var.get(u'fn').callprop(u'call', var.get(u"this").get(u'state'), var.get(u"this"), var.get(u"this").get(u'state')))
            if var.get(u'ret'):
                PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u'Unexpected return value from visitor method ')+var.get(u'fn'))))
                raise PyJsTempException
            if PyJsStrictNeq(var.get(u"this").get(u'node'),var.get(u'node')):
                return var.get(u'true')
            if ((var.get(u"this").get(u'shouldStop') or var.get(u"this").get(u'shouldSkip')) or var.get(u"this").get(u'removed')):
                return var.get(u'true')
        
        return Js(False)
    PyJsHoisted__call_.func_name = u'_call'
    var.put(u'_call', PyJsHoisted__call_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'call', var.get(u'call'))
    var.get(u'exports').put(u'_call', var.get(u'_call'))
    var.get(u'exports').put(u'isBlacklisted', var.get(u'isBlacklisted'))
    var.get(u'exports').put(u'visit', var.get(u'visit'))
    var.get(u'exports').put(u'skip', var.get(u'skip'))
    var.get(u'exports').put(u'skipKey', var.get(u'skipKey'))
    var.get(u'exports').put(u'stop', var.get(u'stop'))
    var.get(u'exports').put(u'setScope', var.get(u'setScope'))
    var.get(u'exports').put(u'setContext', var.get(u'setContext'))
    var.get(u'exports').put(u'resync', var.get(u'resync'))
    var.get(u'exports').put(u'_resyncParent', var.get(u'_resyncParent'))
    var.get(u'exports').put(u'_resyncKey', var.get(u'_resyncKey'))
    var.get(u'exports').put(u'_resyncList', var.get(u'_resyncList'))
    var.get(u'exports').put(u'_resyncRemoved', var.get(u'_resyncRemoved'))
    var.get(u'exports').put(u'popContext', var.get(u'popContext'))
    var.get(u'exports').put(u'pushContext', var.get(u'pushContext'))
    var.get(u'exports').put(u'setup', var.get(u'setup'))
    var.get(u'exports').put(u'setKey', var.get(u'setKey'))
    var.get(u'exports').put(u'requeue', var.get(u'requeue'))
    var.get(u'exports').put(u'_getQueueContexts', var.get(u'_getQueueContexts'))
    var.put(u'_index', var.get(u'require')(Js(u'../index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_1930_._set_name(u'anonymous')
PyJs_Object_1936_ = Js({u'../index':Js(225.0),u'babel-runtime/core-js/get-iterator':Js(96.0)})
@Js
def PyJs_anonymous_1937_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'arrowFunctionToShadowed', u'_interopRequireWildcard', u'toComputedKey', u'_babelTypes', u'module', u't', u'ensureBlock', u'require'])
    @Js
    def PyJsHoisted_toComputedKey_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'key'])
        var.put(u'node', var.get(u"this").get(u'node'))
        var.put(u'key', PyJsComma(Js(0.0), Js(None)))
        if var.get(u"this").callprop(u'isMemberExpression'):
            var.put(u'key', var.get(u'node').get(u'property'))
        else:
            if (var.get(u"this").callprop(u'isProperty') or var.get(u"this").callprop(u'isMethod')):
                var.put(u'key', var.get(u'node').get(u'key'))
            else:
                PyJsTempException = JsToPyException(var.get(u'ReferenceError').create(Js(u'todo')))
                raise PyJsTempException
        if var.get(u'node').get(u'computed').neg():
            if var.get(u't').callprop(u'isIdentifier', var.get(u'key')):
                var.put(u'key', var.get(u't').callprop(u'stringLiteral', var.get(u'key').get(u'name')))
        return var.get(u'key')
    PyJsHoisted_toComputedKey_.func_name = u'toComputedKey'
    var.put(u'toComputedKey', PyJsHoisted_toComputedKey_)
    @Js
    def PyJsHoisted_arrowFunctionToShadowed_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u"this").callprop(u'isArrowFunctionExpression').neg():
            return var.get('undefined')
        var.get(u"this").callprop(u'ensureBlock')
        var.put(u'node', var.get(u"this").get(u'node'))
        var.get(u'node').put(u'expression', Js(False))
        var.get(u'node').put(u'type', Js(u'FunctionExpression'))
        var.get(u'node').put(u'shadow', (var.get(u'node').get(u'shadow') or var.get(u'true')))
    PyJsHoisted_arrowFunctionToShadowed_.func_name = u'arrowFunctionToShadowed'
    var.put(u'arrowFunctionToShadowed', PyJsHoisted_arrowFunctionToShadowed_)
    @Js
    def PyJsHoisted_ensureBlock_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'ensureBlock', var.get(u"this").get(u'node'))
    PyJsHoisted_ensureBlock_.func_name = u'ensureBlock'
    var.put(u'ensureBlock', PyJsHoisted_ensureBlock_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1938_ = Js({})
            var.put(u'newObj', PyJs_Object_1938_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'toComputedKey', var.get(u'toComputedKey'))
    var.get(u'exports').put(u'ensureBlock', var.get(u'ensureBlock'))
    var.get(u'exports').put(u'arrowFunctionToShadowed', var.get(u'arrowFunctionToShadowed'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
PyJs_anonymous_1937_._set_name(u'anonymous')
PyJs_Object_1939_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1940_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_1941_ = Js({})
    @Js
    def PyJs_anonymous_1942_(PyJsArg_676c6f62616c_, this, arguments, var=var):
        var = Scope({u'this':this, u'global':PyJsArg_676c6f62616c_, u'arguments':arguments}, var)
        var.registers([u'_typeof2', u'_typeof3', u'_map', u'INVALID_METHODS', u'VALID_CALLEES', u'evaluateTruthy', u'global', u'evaluate', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'_map2'])
        @Js
        def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj'])
            PyJs_Object_1943_ = Js({u'default':var.get(u'obj')})
            return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1943_)
        PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
        var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
        @Js
        def PyJsHoisted_evaluate_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'deoptPath', u'evaluate', u'value', u'_evaluate', u'confident', u'deopt', u'seen'])
            @Js
            def PyJsHoisted_evaluate_(path, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                var.registers([u'node', u'item', u'path', u'val', u'existing'])
                var.put(u'node', var.get(u'path').get(u'node'))
                if var.get(u'seen').callprop(u'has', var.get(u'node')):
                    var.put(u'existing', var.get(u'seen').callprop(u'get', var.get(u'node')))
                    if var.get(u'existing').get(u'resolved'):
                        return var.get(u'existing').get(u'value')
                    else:
                        var.get(u'deopt')(var.get(u'path'))
                        return var.get('undefined')
                else:
                    PyJs_Object_1945_ = Js({u'resolved':Js(False)})
                    var.put(u'item', PyJs_Object_1945_)
                    var.get(u'seen').callprop(u'set', var.get(u'node'), var.get(u'item'))
                    var.put(u'val', var.get(u'_evaluate')(var.get(u'path')))
                    if var.get(u'confident'):
                        var.get(u'item').put(u'resolved', var.get(u'true'))
                        var.get(u'item').put(u'value', var.get(u'val'))
                    return var.get(u'val')
            PyJsHoisted_evaluate_.func_name = u'evaluate'
            var.put(u'evaluate', PyJsHoisted_evaluate_)
            @Js
            def PyJsHoisted_deopt_(path, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                var.registers([u'path'])
                if var.get(u'confident').neg():
                    return var.get('undefined')
                var.put(u'deoptPath', var.get(u'path'))
                var.put(u'confident', Js(False))
            PyJsHoisted_deopt_.func_name = u'deopt'
            var.put(u'deopt', PyJsHoisted_deopt_)
            @Js
            def PyJsHoisted__evaluate_(path, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                var.registers([u'resolved', u'arr', u'right', u'_isArray3', u'_isArray2', u'leftConfident', u'binding', u'argument', u'_ref2', u'_object', u'_value2', u'arg', u'_ref', u'_exprs', u'_iterator', u'_right', u'_i3', u'_i2', u'prop', u'_i', u'props', u'wasConfident', u'type', u'_left', u'node', u'_type', u'args', u'func', u'testResult', u'object', u'elems', u'_value', u'_elem', u'key', u'path', u'_isArray', u'context', u'obj', u'left', u'valuePath', u'i', u'expr', u'keyPath', u'_ref3', u'elem', u'rightConfident', u'exprs', u'str', u'_property', u'property', u'callee', u'_iterator3', u'_iterator2'])
                if var.get(u'confident').neg():
                    return var.get('undefined')
                var.put(u'node', var.get(u'path').get(u'node'))
                if var.get(u'path').callprop(u'isSequenceExpression'):
                    var.put(u'exprs', var.get(u'path').callprop(u'get', Js(u'expressions')))
                    return var.get(u'evaluate')(var.get(u'exprs').get((var.get(u'exprs').get(u'length')-Js(1.0))))
                if ((var.get(u'path').callprop(u'isStringLiteral') or var.get(u'path').callprop(u'isNumericLiteral')) or var.get(u'path').callprop(u'isBooleanLiteral')):
                    return var.get(u'node').get(u'value')
                if var.get(u'path').callprop(u'isNullLiteral'):
                    return var.get(u"null")
                if var.get(u'path').callprop(u'isTemplateLiteral'):
                    var.put(u'str', Js(u''))
                    var.put(u'i', Js(0.0))
                    var.put(u'_exprs', var.get(u'path').callprop(u'get', Js(u'expressions')))
                    #for JS loop
                    var.put(u'_iterator', var.get(u'node').get(u'quasis'))
                    var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
                    var.put(u'_i', Js(0.0))
                    var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
                    while 1:
                        pass
                        if var.get(u'_isArray'):
                            if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                                break
                            var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                        else:
                            var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                            if var.get(u'_i').get(u'done'):
                                break
                            var.put(u'_ref', var.get(u'_i').get(u'value'))
                        var.put(u'elem', var.get(u'_ref'))
                        if var.get(u'confident').neg():
                            break
                        var.put(u'str', var.get(u'elem').get(u'value').get(u'cooked'), u'+')
                        var.put(u'expr', var.get(u'_exprs').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))
                        if var.get(u'expr'):
                            var.put(u'str', var.get(u'String')(var.get(u'evaluate')(var.get(u'expr'))), u'+')
                    
                    if var.get(u'confident').neg():
                        return var.get('undefined')
                    return var.get(u'str')
                if var.get(u'path').callprop(u'isConditionalExpression'):
                    var.put(u'testResult', var.get(u'evaluate')(var.get(u'path').callprop(u'get', Js(u'test'))))
                    if var.get(u'confident').neg():
                        return var.get('undefined')
                    if var.get(u'testResult'):
                        return var.get(u'evaluate')(var.get(u'path').callprop(u'get', Js(u'consequent')))
                    else:
                        return var.get(u'evaluate')(var.get(u'path').callprop(u'get', Js(u'alternate')))
                if var.get(u'path').callprop(u'isExpressionWrapper'):
                    return var.get(u'evaluate')(var.get(u'path').callprop(u'get', Js(u'expression')))
                PyJs_Object_1946_ = Js({u'callee':var.get(u'node')})
                if (var.get(u'path').callprop(u'isMemberExpression') and var.get(u'path').get(u'parentPath').callprop(u'isCallExpression', PyJs_Object_1946_).neg()):
                    var.put(u'property', var.get(u'path').callprop(u'get', Js(u'property')))
                    var.put(u'object', var.get(u'path').callprop(u'get', Js(u'object')))
                    if (var.get(u'object').callprop(u'isLiteral') and var.get(u'property').callprop(u'isIdentifier')):
                        var.put(u'_value', var.get(u'object').get(u'node').get(u'value'))
                        var.put(u'type', (Js(u'undefined') if PyJsStrictEq(var.get(u'_value',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'_value'))))
                        if (PyJsStrictEq(var.get(u'type'),Js(u'number')) or PyJsStrictEq(var.get(u'type'),Js(u'string'))):
                            return var.get(u'_value').get(var.get(u'property').get(u'node').get(u'name'))
                if var.get(u'path').callprop(u'isReferencedIdentifier'):
                    var.put(u'binding', var.get(u'path').get(u'scope').callprop(u'getBinding', var.get(u'node').get(u'name')))
                    if (var.get(u'binding') and (var.get(u'binding').get(u'constantViolations').get(u'length')>Js(0.0))):
                        return var.get(u'deopt')(var.get(u'binding').get(u'path'))
                    if (var.get(u'binding') and var.get(u'binding').get(u'hasValue')):
                        return var.get(u'binding').get(u'value')
                    else:
                        if PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'undefined')):
                            return var.get(u'undefined')
                        else:
                            if PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'Infinity')):
                                return var.get(u'Infinity')
                            else:
                                if PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'NaN')):
                                    return var.get(u'NaN')
                        var.put(u'resolved', var.get(u'path').callprop(u'resolve'))
                        if PyJsStrictEq(var.get(u'resolved'),var.get(u'path')):
                            return var.get(u'deopt')(var.get(u'path'))
                        else:
                            return var.get(u'evaluate')(var.get(u'resolved'))
                PyJs_Object_1947_ = Js({u'prefix':var.get(u'true')})
                if var.get(u'path').callprop(u'isUnaryExpression', PyJs_Object_1947_):
                    if PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'void')):
                        return var.get(u'undefined')
                    var.put(u'argument', var.get(u'path').callprop(u'get', Js(u'argument')))
                    if (PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'typeof')) and (var.get(u'argument').callprop(u'isFunction') or var.get(u'argument').callprop(u'isClass'))):
                        return Js(u'function')
                    var.put(u'arg', var.get(u'evaluate')(var.get(u'argument')))
                    if var.get(u'confident').neg():
                        return var.get('undefined')
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get(u'node').get(u'operator'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'!')):
                            SWITCHED = True
                            return var.get(u'arg').neg()
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'+')):
                            SWITCHED = True
                            return (+var.get(u'arg'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'-')):
                            SWITCHED = True
                            return (-var.get(u'arg'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'~')):
                            SWITCHED = True
                            return (~var.get(u'arg'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'typeof')):
                            SWITCHED = True
                            return (Js(u'undefined') if PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'arg')))
                        SWITCHED = True
                        break
                if var.get(u'path').callprop(u'isArrayExpression'):
                    var.put(u'arr', Js([]))
                    var.put(u'elems', var.get(u'path').callprop(u'get', Js(u'elements')))
                    #for JS loop
                    var.put(u'_iterator2', var.get(u'elems'))
                    var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
                    var.put(u'_i2', Js(0.0))
                    var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
                    while 1:
                        pass
                        if var.get(u'_isArray2'):
                            if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                                break
                            var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                        else:
                            var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                            if var.get(u'_i2').get(u'done'):
                                break
                            var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                        var.put(u'_elem', var.get(u'_ref2'))
                        var.put(u'_elem', var.get(u'_elem').callprop(u'evaluate'))
                        if var.get(u'_elem').get(u'confident'):
                            var.get(u'arr').callprop(u'push', var.get(u'_elem').get(u'value'))
                        else:
                            return var.get(u'deopt')(var.get(u'_elem'))
                    
                    return var.get(u'arr')
                if var.get(u'path').callprop(u'isObjectExpression'):
                    PyJs_Object_1948_ = Js({})
                    var.put(u'obj', PyJs_Object_1948_)
                    var.put(u'props', var.get(u'path').callprop(u'get', Js(u'properties')))
                    #for JS loop
                    var.put(u'_iterator3', var.get(u'props'))
                    var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
                    var.put(u'_i3', Js(0.0))
                    var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
                    while 1:
                        pass
                        if var.get(u'_isArray3'):
                            if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                                break
                            var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                        else:
                            var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                            if var.get(u'_i3').get(u'done'):
                                break
                            var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                        var.put(u'prop', var.get(u'_ref3'))
                        if (var.get(u'prop').callprop(u'isObjectMethod') or var.get(u'prop').callprop(u'isSpreadProperty')):
                            return var.get(u'deopt')(var.get(u'prop'))
                        var.put(u'keyPath', var.get(u'prop').callprop(u'get', Js(u'key')))
                        var.put(u'key', var.get(u'keyPath'))
                        if var.get(u'prop').get(u'node').get(u'computed'):
                            var.put(u'key', var.get(u'key').callprop(u'evaluate'))
                            if var.get(u'key').get(u'confident').neg():
                                return var.get(u'deopt')(var.get(u'keyPath'))
                            var.put(u'key', var.get(u'key').get(u'value'))
                        else:
                            if var.get(u'key').callprop(u'isIdentifier'):
                                var.put(u'key', var.get(u'key').get(u'node').get(u'name'))
                            else:
                                var.put(u'key', var.get(u'key').get(u'node').get(u'value'))
                        var.put(u'valuePath', var.get(u'prop').callprop(u'get', Js(u'value')))
                        var.put(u'_value2', var.get(u'valuePath').callprop(u'evaluate'))
                        if var.get(u'_value2').get(u'confident').neg():
                            return var.get(u'deopt')(var.get(u'valuePath'))
                        var.put(u'_value2', var.get(u'_value2').get(u'value'))
                        var.get(u'obj').put(var.get(u'key'), var.get(u'_value2'))
                    
                    return var.get(u'obj')
                if var.get(u'path').callprop(u'isLogicalExpression'):
                    var.put(u'wasConfident', var.get(u'confident'))
                    var.put(u'left', var.get(u'evaluate')(var.get(u'path').callprop(u'get', Js(u'left'))))
                    var.put(u'leftConfident', var.get(u'confident'))
                    var.put(u'confident', var.get(u'wasConfident'))
                    var.put(u'right', var.get(u'evaluate')(var.get(u'path').callprop(u'get', Js(u'right'))))
                    var.put(u'rightConfident', var.get(u'confident'))
                    var.put(u'confident', (var.get(u'leftConfident') and var.get(u'rightConfident')))
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get(u'node').get(u'operator'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'||')):
                            SWITCHED = True
                            if (var.get(u'left') and var.get(u'leftConfident')):
                                var.put(u'confident', var.get(u'true'))
                                return var.get(u'left')
                            if var.get(u'confident').neg():
                                return var.get('undefined')
                            return (var.get(u'left') or var.get(u'right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'&&')):
                            SWITCHED = True
                            if ((var.get(u'left').neg() and var.get(u'leftConfident')) or (var.get(u'right').neg() and var.get(u'rightConfident'))):
                                var.put(u'confident', var.get(u'true'))
                            if var.get(u'confident').neg():
                                return var.get('undefined')
                            return (var.get(u'left') and var.get(u'right'))
                        SWITCHED = True
                        break
                if var.get(u'path').callprop(u'isBinaryExpression'):
                    var.put(u'_left', var.get(u'evaluate')(var.get(u'path').callprop(u'get', Js(u'left'))))
                    if var.get(u'confident').neg():
                        return var.get('undefined')
                    var.put(u'_right', var.get(u'evaluate')(var.get(u'path').callprop(u'get', Js(u'right'))))
                    if var.get(u'confident').neg():
                        return var.get('undefined')
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get(u'node').get(u'operator'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'-')):
                            SWITCHED = True
                            return (var.get(u'_left')-var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'+')):
                            SWITCHED = True
                            return (var.get(u'_left')+var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'/')):
                            SWITCHED = True
                            return (var.get(u'_left')/var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'*')):
                            SWITCHED = True
                            return (var.get(u'_left')*var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'%')):
                            SWITCHED = True
                            return (var.get(u'_left')%var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'**')):
                            SWITCHED = True
                            return var.get(u'Math').callprop(u'pow', var.get(u'_left'), var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'<')):
                            SWITCHED = True
                            return (var.get(u'_left')<var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'>')):
                            SWITCHED = True
                            return (var.get(u'_left')>var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'<=')):
                            SWITCHED = True
                            return (var.get(u'_left')<=var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'>=')):
                            SWITCHED = True
                            return (var.get(u'_left')>=var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'==')):
                            SWITCHED = True
                            return (var.get(u'_left')==var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'!=')):
                            SWITCHED = True
                            return (var.get(u'_left')!=var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'===')):
                            SWITCHED = True
                            return PyJsStrictEq(var.get(u'_left'),var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'!==')):
                            SWITCHED = True
                            return PyJsStrictNeq(var.get(u'_left'),var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'|')):
                            SWITCHED = True
                            return (var.get(u'_left')|var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'&')):
                            SWITCHED = True
                            return (var.get(u'_left')&var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'^')):
                            SWITCHED = True
                            return (var.get(u'_left')^var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'<<')):
                            SWITCHED = True
                            return (var.get(u'_left')<<var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'>>')):
                            SWITCHED = True
                            return (var.get(u'_left')>>var.get(u'_right'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'>>>')):
                            SWITCHED = True
                            return PyJsBshift(var.get(u'_left'),var.get(u'_right'))
                        SWITCHED = True
                        break
                if var.get(u'path').callprop(u'isCallExpression'):
                    var.put(u'callee', var.get(u'path').callprop(u'get', Js(u'callee')))
                    var.put(u'context', PyJsComma(Js(0.0), Js(None)))
                    var.put(u'func', PyJsComma(Js(0.0), Js(None)))
                    if ((var.get(u'callee').callprop(u'isIdentifier') and var.get(u'path').get(u'scope').callprop(u'getBinding', var.get(u'callee').get(u'node').get(u'name'), var.get(u'true')).neg()) and (var.get(u'VALID_CALLEES').callprop(u'indexOf', var.get(u'callee').get(u'node').get(u'name'))>=Js(0.0))):
                        var.put(u'func', var.get(u'global').get(var.get(u'node').get(u'callee').get(u'name')))
                    if var.get(u'callee').callprop(u'isMemberExpression'):
                        var.put(u'_object', var.get(u'callee').callprop(u'get', Js(u'object')))
                        var.put(u'_property', var.get(u'callee').callprop(u'get', Js(u'property')))
                        if (((var.get(u'_object').callprop(u'isIdentifier') and var.get(u'_property').callprop(u'isIdentifier')) and (var.get(u'VALID_CALLEES').callprop(u'indexOf', var.get(u'_object').get(u'node').get(u'name'))>=Js(0.0))) and (var.get(u'INVALID_METHODS').callprop(u'indexOf', var.get(u'_property').get(u'node').get(u'name'))<Js(0.0))):
                            var.put(u'context', var.get(u'global').get(var.get(u'_object').get(u'node').get(u'name')))
                            var.put(u'func', var.get(u'context').get(var.get(u'_property').get(u'node').get(u'name')))
                        if (var.get(u'_object').callprop(u'isLiteral') and var.get(u'_property').callprop(u'isIdentifier')):
                            var.put(u'_type', PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'_object').get(u'node').get(u'value')))
                            if (PyJsStrictEq(var.get(u'_type'),Js(u'string')) or PyJsStrictEq(var.get(u'_type'),Js(u'number'))):
                                var.put(u'context', var.get(u'_object').get(u'node').get(u'value'))
                                var.put(u'func', var.get(u'context').get(var.get(u'_property').get(u'node').get(u'name')))
                    if var.get(u'func'):
                        var.put(u'args', var.get(u'path').callprop(u'get', Js(u'arguments')).callprop(u'map', var.get(u'evaluate')))
                        if var.get(u'confident').neg():
                            return var.get('undefined')
                        return var.get(u'func').callprop(u'apply', var.get(u'context'), var.get(u'args'))
                var.get(u'deopt')(var.get(u'path'))
            PyJsHoisted__evaluate_.func_name = u'_evaluate'
            var.put(u'_evaluate', PyJsHoisted__evaluate_)
            var.put(u'confident', var.get(u'true'))
            var.put(u'deoptPath', PyJsComma(Js(0.0), Js(None)))
            var.put(u'seen', var.get(u'_map2').get(u'default').create())
            pass
            var.put(u'value', var.get(u'evaluate')(var.get(u"this")))
            if var.get(u'confident').neg():
                var.put(u'value', var.get(u'undefined'))
            PyJs_Object_1944_ = Js({u'confident':var.get(u'confident'),u'deopt':var.get(u'deoptPath'),u'value':var.get(u'value')})
            return PyJs_Object_1944_
            pass
            pass
        PyJsHoisted_evaluate_.func_name = u'evaluate'
        var.put(u'evaluate', PyJsHoisted_evaluate_)
        @Js
        def PyJsHoisted_evaluateTruthy_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'res'])
            var.put(u'res', var.get(u"this").callprop(u'evaluate'))
            if var.get(u'res').get(u'confident'):
                return var.get(u'res').get(u'value').neg().neg()
        PyJsHoisted_evaluateTruthy_.func_name = u'evaluateTruthy'
        var.put(u'evaluateTruthy', PyJsHoisted_evaluateTruthy_)
        Js(u'use strict')
        var.get(u'exports').put(u'__esModule', var.get(u'true'))
        var.put(u'_typeof2', var.get(u'require')(Js(u'babel-runtime/helpers/typeof')))
        var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
        var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
        var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
        var.put(u'_map', var.get(u'require')(Js(u'babel-runtime/core-js/map')))
        var.put(u'_map2', var.get(u'_interopRequireDefault')(var.get(u'_map')))
        var.get(u'exports').put(u'evaluateTruthy', var.get(u'evaluateTruthy'))
        var.get(u'exports').put(u'evaluate', var.get(u'evaluate'))
        pass
        var.put(u'VALID_CALLEES', Js([Js(u'String'), Js(u'Number'), Js(u'Math')]))
        var.put(u'INVALID_METHODS', Js([Js(u'random')]))
        pass
        pass
    PyJs_anonymous_1942_._set_name(u'anonymous')
    PyJs_anonymous_1942_.callprop(u'call', var.get(u"this"), (var.get(u'global') if PyJsStrictNeq(var.get(u'global',throw=False).typeof(),Js(u'undefined')) else (var.get(u'self') if PyJsStrictNeq(var.get(u'self',throw=False).typeof(),Js(u'undefined')) else (var.get(u'window') if PyJsStrictNeq(var.get(u'window',throw=False).typeof(),Js(u'undefined')) else PyJs_Object_1941_))))
PyJs_anonymous_1940_._set_name(u'anonymous')
PyJs_Object_1949_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/map':Js(98.0),u'babel-runtime/helpers/typeof':Js(114.0)})
@Js
def PyJs_anonymous_1950_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'getSibling', u'exports', u'_interopRequireWildcard', u'_index', u'getOpposite', u'require', u'_babelTypes', u'module', u'get', u'getCompletionRecords', u'getStatementParent', u'getOuterBindingIdentifiers', u'getBindingIdentifiers', u't', u'_index2', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'_getPattern', u'_getKey'])
    @Js
    def PyJsHoisted_getSibling_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        PyJs_Object_1954_ = Js({u'parentPath':var.get(u"this").get(u'parentPath'),u'parent':var.get(u"this").get(u'parent'),u'container':var.get(u"this").get(u'container'),u'listKey':var.get(u"this").get(u'listKey'),u'key':var.get(u'key')})
        return var.get(u'_index2').get(u'default').callprop(u'get', PyJs_Object_1954_)
    PyJsHoisted_getSibling_.func_name = u'getSibling'
    var.put(u'getSibling', PyJsHoisted_getSibling_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1951_ = Js({})
            var.put(u'newObj', PyJs_Object_1951_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_get_(key, context, this, arguments, var=var):
        var = Scope({u'this':this, u'context':context, u'key':key, u'arguments':arguments}, var)
        var.registers([u'parts', u'context', u'key'])
        if PyJsStrictEq(var.get(u'context'),var.get(u'true')):
            var.put(u'context', var.get(u"this").get(u'context'))
        var.put(u'parts', var.get(u'key').callprop(u'split', Js(u'.')))
        if PyJsStrictEq(var.get(u'parts').get(u'length'),Js(1.0)):
            return var.get(u"this").callprop(u'_getKey', var.get(u'key'), var.get(u'context'))
        else:
            return var.get(u"this").callprop(u'_getPattern', var.get(u'parts'), var.get(u'context'))
    PyJsHoisted_get_.func_name = u'get'
    var.put(u'get', PyJsHoisted_get_)
    @Js
    def PyJsHoisted_getOpposite_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if PyJsStrictEq(var.get(u"this").get(u'key'),Js(u'left')):
            return var.get(u"this").callprop(u'getSibling', Js(u'right'))
        else:
            if PyJsStrictEq(var.get(u"this").get(u'key'),Js(u'right')):
                return var.get(u"this").callprop(u'getSibling', Js(u'left'))
    PyJsHoisted_getOpposite_.func_name = u'getOpposite'
    var.put(u'getOpposite', PyJsHoisted_getOpposite_)
    @Js
    def PyJsHoisted_getCompletionRecords_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'paths', u'add'])
        var.put(u'paths', Js([]))
        @Js
        def PyJs_add_1953_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'add':PyJs_add_1953_, u'arguments':arguments}, var)
            var.registers([u'path'])
            if var.get(u'path'):
                var.put(u'paths', var.get(u'paths').callprop(u'concat', var.get(u'path').callprop(u'getCompletionRecords')))
        PyJs_add_1953_._set_name(u'add')
        var.put(u'add', PyJs_add_1953_)
        if var.get(u"this").callprop(u'isIfStatement'):
            var.get(u'add')(var.get(u"this").callprop(u'get', Js(u'consequent')))
            var.get(u'add')(var.get(u"this").callprop(u'get', Js(u'alternate')))
        else:
            if ((var.get(u"this").callprop(u'isDoExpression') or var.get(u"this").callprop(u'isFor')) or var.get(u"this").callprop(u'isWhile')):
                var.get(u'add')(var.get(u"this").callprop(u'get', Js(u'body')))
            else:
                if (var.get(u"this").callprop(u'isProgram') or var.get(u"this").callprop(u'isBlockStatement')):
                    var.get(u'add')(var.get(u"this").callprop(u'get', Js(u'body')).callprop(u'pop'))
                else:
                    if var.get(u"this").callprop(u'isFunction'):
                        return var.get(u"this").callprop(u'get', Js(u'body')).callprop(u'getCompletionRecords')
                    else:
                        if var.get(u"this").callprop(u'isTryStatement'):
                            var.get(u'add')(var.get(u"this").callprop(u'get', Js(u'block')))
                            var.get(u'add')(var.get(u"this").callprop(u'get', Js(u'handler')))
                            var.get(u'add')(var.get(u"this").callprop(u'get', Js(u'finalizer')))
                        else:
                            var.get(u'paths').callprop(u'push', var.get(u"this"))
        return var.get(u'paths')
    PyJsHoisted_getCompletionRecords_.func_name = u'getCompletionRecords'
    var.put(u'getCompletionRecords', PyJsHoisted_getCompletionRecords_)
    @Js
    def PyJsHoisted_getStatementParent_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'path'])
        var.put(u'path', var.get(u"this"))
        while 1:
            if (var.get(u'path').get(u'parentPath').neg() or (var.get(u'Array').callprop(u'isArray', var.get(u'path').get(u'container')) and var.get(u'path').callprop(u'isStatement'))):
                break
            else:
                var.put(u'path', var.get(u'path').get(u'parentPath'))
            if not var.get(u'path'):
                break
        if (var.get(u'path') and (var.get(u'path').callprop(u'isProgram') or var.get(u'path').callprop(u'isFile'))):
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"File/Program node, we can't possibly find a statement parent to this")))
            raise PyJsTempException
        return var.get(u'path')
    PyJsHoisted_getStatementParent_.func_name = u'getStatementParent'
    var.put(u'getStatementParent', PyJsHoisted_getStatementParent_)
    @Js
    def PyJsHoisted_getOuterBindingIdentifiers_(duplicates, this, arguments, var=var):
        var = Scope({u'duplicates':duplicates, u'this':this, u'arguments':arguments}, var)
        var.registers([u'duplicates'])
        return var.get(u't').callprop(u'getOuterBindingIdentifiers', var.get(u"this").get(u'node'), var.get(u'duplicates'))
    PyJsHoisted_getOuterBindingIdentifiers_.func_name = u'getOuterBindingIdentifiers'
    var.put(u'getOuterBindingIdentifiers', PyJsHoisted_getOuterBindingIdentifiers_)
    @Js
    def PyJsHoisted__getKey_(key, context, this, arguments, var=var):
        var = Scope({u'this':this, u'context':context, u'key':key, u'arguments':arguments}, var)
        var.registers([u'node', u'context', u'container', u'key', u'_this'])
        var.put(u'_this', var.get(u"this"))
        var.put(u'node', var.get(u"this").get(u'node'))
        var.put(u'container', var.get(u'node').get(var.get(u'key')))
        if var.get(u'Array').callprop(u'isArray', var.get(u'container')):
            @Js
            def PyJs_anonymous_1955_(_, i, this, arguments, var=var):
                var = Scope({u'i':i, u'this':this, u'arguments':arguments, u'_':_}, var)
                var.registers([u'i', u'_'])
                PyJs_Object_1956_ = Js({u'listKey':var.get(u'key'),u'parentPath':var.get(u'_this'),u'parent':var.get(u'node'),u'container':var.get(u'container'),u'key':var.get(u'i')})
                return var.get(u'_index2').get(u'default').callprop(u'get', PyJs_Object_1956_).callprop(u'setContext', var.get(u'context'))
            PyJs_anonymous_1955_._set_name(u'anonymous')
            return var.get(u'container').callprop(u'map', PyJs_anonymous_1955_)
        else:
            PyJs_Object_1957_ = Js({u'parentPath':var.get(u"this"),u'parent':var.get(u'node'),u'container':var.get(u'node'),u'key':var.get(u'key')})
            return var.get(u'_index2').get(u'default').callprop(u'get', PyJs_Object_1957_).callprop(u'setContext', var.get(u'context'))
    PyJsHoisted__getKey_.func_name = u'_getKey'
    var.put(u'_getKey', PyJsHoisted__getKey_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1952_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1952_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_getBindingIdentifiers_(duplicates, this, arguments, var=var):
        var = Scope({u'duplicates':duplicates, u'this':this, u'arguments':arguments}, var)
        var.registers([u'duplicates'])
        return var.get(u't').callprop(u'getBindingIdentifiers', var.get(u"this").get(u'node'), var.get(u'duplicates'))
    PyJsHoisted_getBindingIdentifiers_.func_name = u'getBindingIdentifiers'
    var.put(u'getBindingIdentifiers', PyJsHoisted_getBindingIdentifiers_)
    @Js
    def PyJsHoisted__getPattern_(parts, context, this, arguments, var=var):
        var = Scope({u'this':this, u'parts':parts, u'arguments':arguments, u'context':context}, var)
        var.registers([u'_isArray', u'_iterator', u'context', u'parts', u'part', u'_i', u'path', u'_ref'])
        var.put(u'path', var.get(u"this"))
        #for JS loop
        var.put(u'_iterator', var.get(u'parts'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'part', var.get(u'_ref'))
            if PyJsStrictEq(var.get(u'part'),Js(u'.')):
                var.put(u'path', var.get(u'path').get(u'parentPath'))
            else:
                if var.get(u'Array').callprop(u'isArray', var.get(u'path')):
                    var.put(u'path', var.get(u'path').get(var.get(u'part')))
                else:
                    var.put(u'path', var.get(u'path').callprop(u'get', var.get(u'part'), var.get(u'context')))
        
        return var.get(u'path')
    PyJsHoisted__getPattern_.func_name = u'_getPattern'
    var.put(u'_getPattern', PyJsHoisted__getPattern_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'getStatementParent', var.get(u'getStatementParent'))
    var.get(u'exports').put(u'getOpposite', var.get(u'getOpposite'))
    var.get(u'exports').put(u'getCompletionRecords', var.get(u'getCompletionRecords'))
    var.get(u'exports').put(u'getSibling', var.get(u'getSibling'))
    var.get(u'exports').put(u'get', var.get(u'get'))
    var.get(u'exports').put(u'_getKey', var.get(u'_getKey'))
    var.get(u'exports').put(u'_getPattern', var.get(u'_getPattern'))
    var.get(u'exports').put(u'getBindingIdentifiers', var.get(u'getBindingIdentifiers'))
    var.get(u'exports').put(u'getOuterBindingIdentifiers', var.get(u'getOuterBindingIdentifiers'))
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_1950_._set_name(u'anonymous')
PyJs_Object_1958_ = Js({u'./index':Js(232.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1959_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'module', u'_scope', u'_ret', u'_invariant2', u'_virtualTypes', u'_ret2', u'_loop2', u'_interopRequireDefault', u'_cache', u'_getIterator2', u'_getIterator3', u'virtualTypes', u'_iterator', u'_debug', u'_i', u'_classCallCheck3', u'_classCallCheck2', u'type', u'NodePath', u'exports', u'_assign', u'_interopRequireWildcard', u'_babelTypes', u'_debug3', u'_debug2', u'_index2', u'_loop', u'_assign2', u'_isArray', u'_index', u'require', u'_ref2', u't', u'_scope2', u'_invariant'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1961_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1961_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1960_ = Js({})
            var.put(u'newObj', PyJs_Object_1960_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_virtualTypes', var.get(u'require')(Js(u'./lib/virtual-types')))
    var.put(u'virtualTypes', var.get(u'_interopRequireWildcard')(var.get(u'_virtualTypes')))
    var.put(u'_debug2', var.get(u'require')(Js(u'debug')))
    var.put(u'_debug3', var.get(u'_interopRequireDefault')(var.get(u'_debug2')))
    var.put(u'_invariant', var.get(u'require')(Js(u'invariant')))
    var.put(u'_invariant2', var.get(u'_interopRequireDefault')(var.get(u'_invariant')))
    var.put(u'_index', var.get(u'require')(Js(u'../index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    var.put(u'_assign', var.get(u'require')(Js(u'lodash/assign')))
    var.put(u'_assign2', var.get(u'_interopRequireDefault')(var.get(u'_assign')))
    var.put(u'_scope', var.get(u'require')(Js(u'../scope')))
    var.put(u'_scope2', var.get(u'_interopRequireDefault')(var.get(u'_scope')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_cache', var.get(u'require')(Js(u'../cache')))
    pass
    pass
    var.put(u'_debug', PyJsComma(Js(0.0),var.get(u'_debug3').get(u'default'))(Js(u'babel')))
    @Js
    def PyJs_anonymous_1962_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'NodePath'])
        @Js
        def PyJsHoisted_NodePath_(hub, parent, this, arguments, var=var):
            var = Scope({u'this':this, u'parent':parent, u'hub':hub, u'arguments':arguments}, var)
            var.registers([u'parent', u'hub'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'NodePath'))
            var.get(u"this").put(u'parent', var.get(u'parent'))
            var.get(u"this").put(u'hub', var.get(u'hub'))
            var.get(u"this").put(u'contexts', Js([]))
            PyJs_Object_1963_ = Js({})
            var.get(u"this").put(u'data', PyJs_Object_1963_)
            var.get(u"this").put(u'shouldSkip', Js(False))
            var.get(u"this").put(u'shouldStop', Js(False))
            var.get(u"this").put(u'removed', Js(False))
            var.get(u"this").put(u'state', var.get(u"null"))
            var.get(u"this").put(u'opts', var.get(u"null"))
            var.get(u"this").put(u'skipKeys', var.get(u"null"))
            var.get(u"this").put(u'parentPath', var.get(u"null"))
            var.get(u"this").put(u'context', var.get(u"null"))
            var.get(u"this").put(u'container', var.get(u"null"))
            var.get(u"this").put(u'listKey', var.get(u"null"))
            var.get(u"this").put(u'inList', Js(False))
            var.get(u"this").put(u'parentKey', var.get(u"null"))
            var.get(u"this").put(u'key', var.get(u"null"))
            var.get(u"this").put(u'node', var.get(u"null"))
            var.get(u"this").put(u'scope', var.get(u"null"))
            var.get(u"this").put(u'type', var.get(u"null"))
            var.get(u"this").put(u'typeAnnotation', var.get(u"null"))
        PyJsHoisted_NodePath_.func_name = u'NodePath'
        var.put(u'NodePath', PyJsHoisted_NodePath_)
        pass
        @Js
        def PyJs_get_1964_(_ref, this, arguments, var=var):
            var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments, u'get':PyJs_get_1964_}, var)
            var.registers([u'paths', u'container', u'hub', u'parent', u'i', u'listKey', u'targetNode', u'key', u'parentPath', u'path', u'pathCheck', u'_ref'])
            var.put(u'hub', var.get(u'_ref').get(u'hub'))
            var.put(u'parentPath', var.get(u'_ref').get(u'parentPath'))
            var.put(u'parent', var.get(u'_ref').get(u'parent'))
            var.put(u'container', var.get(u'_ref').get(u'container'))
            var.put(u'listKey', var.get(u'_ref').get(u'listKey'))
            var.put(u'key', var.get(u'_ref').get(u'key'))
            if (var.get(u'hub').neg() and var.get(u'parentPath')):
                var.put(u'hub', var.get(u'parentPath').get(u'hub'))
            PyJsComma(Js(0.0),var.get(u'_invariant2').get(u'default'))(var.get(u'parent'), Js(u'To get a node path the parent needs to exist'))
            var.put(u'targetNode', var.get(u'container').get(var.get(u'key')))
            var.put(u'paths', (var.get(u'_cache').get(u'path').callprop(u'get', var.get(u'parent')) or Js([])))
            if var.get(u'_cache').get(u'path').callprop(u'has', var.get(u'parent')).neg():
                var.get(u'_cache').get(u'path').callprop(u'set', var.get(u'parent'), var.get(u'paths'))
            var.put(u'path', PyJsComma(Js(0.0), Js(None)))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'paths').get(u'length')):
                try:
                    var.put(u'pathCheck', var.get(u'paths').get(var.get(u'i')))
                    if PyJsStrictEq(var.get(u'pathCheck').get(u'node'),var.get(u'targetNode')):
                        var.put(u'path', var.get(u'pathCheck'))
                        break
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            if var.get(u'path').neg():
                var.put(u'path', var.get(u'NodePath').create(var.get(u'hub'), var.get(u'parent')))
                var.get(u'paths').callprop(u'push', var.get(u'path'))
            var.get(u'path').callprop(u'setup', var.get(u'parentPath'), var.get(u'container'), var.get(u'listKey'), var.get(u'key'))
            return var.get(u'path')
        PyJs_get_1964_._set_name(u'get')
        var.get(u'NodePath').put(u'get', PyJs_get_1964_)
        @Js
        def PyJs_getScope_1965_(scope, this, arguments, var=var):
            var = Scope({u'this':this, u'scope':scope, u'getScope':PyJs_getScope_1965_, u'arguments':arguments}, var)
            var.registers([u'scope', u'ourScope'])
            var.put(u'ourScope', var.get(u'scope'))
            if var.get(u"this").callprop(u'isScope'):
                var.put(u'ourScope', var.get(u'_scope2').get(u'default').create(var.get(u"this"), var.get(u'scope')))
            return var.get(u'ourScope')
        PyJs_getScope_1965_._set_name(u'getScope')
        var.get(u'NodePath').get(u'prototype').put(u'getScope', PyJs_getScope_1965_)
        @Js
        def PyJs_setData_1966_(key, val, this, arguments, var=var):
            var = Scope({u'this':this, u'setData':PyJs_setData_1966_, u'val':val, u'key':key, u'arguments':arguments}, var)
            var.registers([u'val', u'key'])
            return var.get(u"this").get(u'data').put(var.get(u'key'), var.get(u'val'))
        PyJs_setData_1966_._set_name(u'setData')
        var.get(u'NodePath').get(u'prototype').put(u'setData', PyJs_setData_1966_)
        @Js
        def PyJs_getData_1967_(key, PyJsArg_646566_, this, arguments, var=var):
            var = Scope({u'this':this, u'getData':PyJs_getData_1967_, u'def':PyJsArg_646566_, u'key':key, u'arguments':arguments}, var)
            var.registers([u'def', u'key', u'val'])
            var.put(u'val', var.get(u"this").get(u'data').get(var.get(u'key')))
            if (var.get(u'val').neg() and var.get(u'def')):
                var.put(u'val', var.get(u"this").get(u'data').put(var.get(u'key'), var.get(u'def')))
            return var.get(u'val')
        PyJs_getData_1967_._set_name(u'getData')
        var.get(u'NodePath').get(u'prototype').put(u'getData', PyJs_getData_1967_)
        @Js
        def PyJs_buildCodeFrameError_1968_(msg, this, arguments, var=var):
            var = Scope({u'msg':msg, u'this':this, u'buildCodeFrameError':PyJs_buildCodeFrameError_1968_, u'arguments':arguments}, var)
            var.registers([u'msg', u'Error'])
            var.put(u'Error', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else var.get(u'SyntaxError')))
            return var.get(u"this").get(u'hub').get(u'file').callprop(u'buildCodeFrameError', var.get(u"this").get(u'node'), var.get(u'msg'), var.get(u'Error'))
        PyJs_buildCodeFrameError_1968_._set_name(u'buildCodeFrameError')
        var.get(u'NodePath').get(u'prototype').put(u'buildCodeFrameError', PyJs_buildCodeFrameError_1968_)
        @Js
        def PyJs_traverse_1969_(visitor, state, this, arguments, var=var):
            var = Scope({u'this':this, u'visitor':visitor, u'state':state, u'arguments':arguments, u'traverse':PyJs_traverse_1969_}, var)
            var.registers([u'visitor', u'state'])
            PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(var.get(u"this").get(u'node'), var.get(u'visitor'), var.get(u"this").get(u'scope'), var.get(u'state'), var.get(u"this"))
        PyJs_traverse_1969_._set_name(u'traverse')
        var.get(u'NodePath').get(u'prototype').put(u'traverse', PyJs_traverse_1969_)
        @Js
        def PyJs_mark_1970_(type, message, this, arguments, var=var):
            var = Scope({u'this':this, u'message':message, u'type':type, u'arguments':arguments, u'mark':PyJs_mark_1970_}, var)
            var.registers([u'message', u'type'])
            PyJs_Object_1971_ = Js({u'type':var.get(u'type'),u'message':var.get(u'message'),u'loc':var.get(u"this").get(u'node').get(u'loc')})
            var.get(u"this").get(u'hub').get(u'file').get(u'metadata').get(u'marked').callprop(u'push', PyJs_Object_1971_)
        PyJs_mark_1970_._set_name(u'mark')
        var.get(u'NodePath').get(u'prototype').put(u'mark', PyJs_mark_1970_)
        @Js
        def PyJs_set_1972_(key, node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'set':PyJs_set_1972_, u'arguments':arguments, u'key':key}, var)
            var.registers([u'node', u'key'])
            var.get(u't').callprop(u'validate', var.get(u"this").get(u'node'), var.get(u'key'), var.get(u'node'))
            var.get(u"this").get(u'node').put(var.get(u'key'), var.get(u'node'))
        PyJs_set_1972_._set_name(u'set')
        var.get(u'NodePath').get(u'prototype').put(u'set', PyJs_set_1972_)
        @Js
        def PyJs_getPathLocation_1973_(this, arguments, var=var):
            var = Scope({u'this':this, u'getPathLocation':PyJs_getPathLocation_1973_, u'arguments':arguments}, var)
            var.registers([u'path', u'parts', u'key'])
            var.put(u'parts', Js([]))
            var.put(u'path', var.get(u"this"))
            while 1:
                var.put(u'key', var.get(u'path').get(u'key'))
                if var.get(u'path').get(u'inList'):
                    var.put(u'key', (((var.get(u'path').get(u'listKey')+Js(u'['))+var.get(u'key'))+Js(u']')))
                var.get(u'parts').callprop(u'unshift', var.get(u'key'))
                if not var.put(u'path', var.get(u'path').get(u'parentPath')):
                    break
            return var.get(u'parts').callprop(u'join', Js(u'.'))
        PyJs_getPathLocation_1973_._set_name(u'getPathLocation')
        var.get(u'NodePath').get(u'prototype').put(u'getPathLocation', PyJs_getPathLocation_1973_)
        @Js
        def PyJs_debug_1974_(buildMessage, this, arguments, var=var):
            var = Scope({u'this':this, u'buildMessage':buildMessage, u'arguments':arguments, u'debug':PyJs_debug_1974_}, var)
            var.registers([u'buildMessage'])
            if var.get(u'_debug').get(u'enabled').neg():
                return var.get('undefined')
            var.get(u'_debug')(((((var.get(u"this").callprop(u'getPathLocation')+Js(u' '))+var.get(u"this").get(u'type'))+Js(u': '))+var.get(u'buildMessage')()))
        PyJs_debug_1974_._set_name(u'debug')
        var.get(u'NodePath').get(u'prototype').put(u'debug', PyJs_debug_1974_)
        return var.get(u'NodePath')
    PyJs_anonymous_1962_._set_name(u'anonymous')
    var.put(u'NodePath', PyJs_anonymous_1962_())
    var.get(u'exports').put(u'default', var.get(u'NodePath'))
    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'NodePath').get(u'prototype'), var.get(u'require')(Js(u'./ancestry')))
    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'NodePath').get(u'prototype'), var.get(u'require')(Js(u'./inference')))
    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'NodePath').get(u'prototype'), var.get(u'require')(Js(u'./replacement')))
    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'NodePath').get(u'prototype'), var.get(u'require')(Js(u'./evaluation')))
    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'NodePath').get(u'prototype'), var.get(u'require')(Js(u'./conversion')))
    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'NodePath').get(u'prototype'), var.get(u'require')(Js(u'./introspection')))
    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'NodePath').get(u'prototype'), var.get(u'require')(Js(u'./context')))
    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'NodePath').get(u'prototype'), var.get(u'require')(Js(u'./removal')))
    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'NodePath').get(u'prototype'), var.get(u'require')(Js(u'./modification')))
    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'NodePath').get(u'prototype'), var.get(u'require')(Js(u'./family')))
    PyJsComma(Js(0.0),var.get(u'_assign2').get(u'default'))(var.get(u'NodePath').get(u'prototype'), var.get(u'require')(Js(u'./comments')))
    @Js
    def PyJs__loop2_1975_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'_loop2':PyJs__loop2_1975_}, var)
        var.registers([u'typeKey', u'type'])
        if var.get(u'_isArray'):
            if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                return Js(u'break')
            var.put(u'_ref2', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
        else:
            var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
            if var.get(u'_i').get(u'done'):
                return Js(u'break')
            var.put(u'_ref2', var.get(u'_i').get(u'value'))
        var.put(u'type', var.get(u'_ref2'))
        var.put(u'typeKey', (Js(u'is')+var.get(u'type')))
        @Js
        def PyJs_anonymous_1976_(opts, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'opts':opts}, var)
            var.registers([u'opts'])
            return var.get(u't').callprop(var.get(u'typeKey'), var.get(u"this").get(u'node'), var.get(u'opts'))
        PyJs_anonymous_1976_._set_name(u'anonymous')
        var.get(u'NodePath').get(u'prototype').put(var.get(u'typeKey'), PyJs_anonymous_1976_)
        @Js
        def PyJs_anonymous_1977_(opts, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'opts':opts}, var)
            var.registers([u'opts'])
            if var.get(u"this").callprop(var.get(u'typeKey'), var.get(u'opts')).neg():
                PyJsTempException = JsToPyException(var.get(u'TypeError').create((Js(u'Expected node path of type ')+var.get(u'type'))))
                raise PyJsTempException
        PyJs_anonymous_1977_._set_name(u'anonymous')
        var.get(u'NodePath').get(u'prototype').put((Js(u'assert')+var.get(u'type')), PyJs_anonymous_1977_)
    PyJs__loop2_1975_._set_name(u'_loop2')
    var.put(u'_loop2', PyJs__loop2_1975_)
    #for JS loop
    var.put(u'_iterator', var.get(u't').get(u'TYPES'))
    var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
    var.put(u'_i', Js(0.0))
    var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
    while 1:
        pass
        var.put(u'_ret2', var.get(u'_loop2')())
        if PyJsStrictEq(var.get(u'_ret2'),Js(u'break')):
            break
    
    @Js
    def PyJs__loop_1978_(type, this, arguments, var=var):
        var = Scope({u'this':this, u'_loop':PyJs__loop_1978_, u'type':type, u'arguments':arguments}, var)
        var.registers([u'virtualType', u'type'])
        if PyJsStrictEq(var.get(u'type').get(u'0'),Js(u'_')):
            return Js(u'continue')
        if (var.get(u't').get(u'TYPES').callprop(u'indexOf', var.get(u'type'))<Js(0.0)):
            var.get(u't').get(u'TYPES').callprop(u'push', var.get(u'type'))
        var.put(u'virtualType', var.get(u'virtualTypes').get(var.get(u'type')))
        @Js
        def PyJs_anonymous_1979_(opts, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'opts':opts}, var)
            var.registers([u'opts'])
            return var.get(u'virtualType').callprop(u'checkPath', var.get(u"this"), var.get(u'opts'))
        PyJs_anonymous_1979_._set_name(u'anonymous')
        var.get(u'NodePath').get(u'prototype').put((Js(u'is')+var.get(u'type')), PyJs_anonymous_1979_)
    PyJs__loop_1978_._set_name(u'_loop')
    var.put(u'_loop', PyJs__loop_1978_)
    for PyJsTemp in var.get(u'virtualTypes'):
        var.put(u'type', PyJsTemp)
        var.put(u'_ret', var.get(u'_loop')(var.get(u'type')))
        if PyJsStrictEq(var.get(u'_ret'),Js(u'continue')):
            continue
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1959_._set_name(u'anonymous')
PyJs_Object_1980_ = Js({u'../cache':Js(222.0),u'../index':Js(225.0),u'../scope':Js(244.0),u'./ancestry':Js(226.0),u'./comments':Js(227.0),u'./context':Js(228.0),u'./conversion':Js(229.0),u'./evaluation':Js(230.0),u'./family':Js(231.0),u'./inference':Js(233.0),u'./introspection':Js(236.0),u'./lib/virtual-types':Js(239.0),u'./modification':Js(240.0),u'./removal':Js(241.0),u'./replacement':Js(242.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-types':Js(258.0),u'debug':Js(268.0),u'invariant':Js(280.0),u'lodash/assign':Js(435.0)})
@Js
def PyJs_anonymous_1981_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'inferers', u'_interopRequireWildcard', u'_inferers', u'couldBeBaseType', u'getTypeAnnotation', u'_babelTypes', u'isBaseType', u'module', u'baseTypeStrictlyMatches', u'_getTypeAnnotation', u'isGenericType', u'_isBaseType', u't', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'require'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1982_ = Js({})
            var.put(u'newObj', PyJs_Object_1982_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_couldBeBaseType_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'_isArray', u'_iterator', u'name', u'_i', u'_ref', u'type', u'type2'])
        var.put(u'type', var.get(u"this").callprop(u'getTypeAnnotation'))
        if var.get(u't').callprop(u'isAnyTypeAnnotation', var.get(u'type')):
            return var.get(u'true')
        if var.get(u't').callprop(u'isUnionTypeAnnotation', var.get(u'type')):
            #for JS loop
            var.put(u'_iterator', var.get(u'type').get(u'types'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'type2', var.get(u'_ref'))
                if (var.get(u't').callprop(u'isAnyTypeAnnotation', var.get(u'type2')) or var.get(u'_isBaseType')(var.get(u'name'), var.get(u'type2'), var.get(u'true'))):
                    return var.get(u'true')
            
            return Js(False)
        else:
            return var.get(u'_isBaseType')(var.get(u'name'), var.get(u'type'), var.get(u'true'))
    PyJsHoisted_couldBeBaseType_.func_name = u'couldBeBaseType'
    var.put(u'couldBeBaseType', PyJsHoisted_couldBeBaseType_)
    @Js
    def PyJsHoisted_getTypeAnnotation_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'type'])
        if var.get(u"this").get(u'typeAnnotation'):
            return var.get(u"this").get(u'typeAnnotation')
        var.put(u'type', (var.get(u"this").callprop(u'_getTypeAnnotation') or var.get(u't').callprop(u'anyTypeAnnotation')))
        if var.get(u't').callprop(u'isTypeAnnotation', var.get(u'type')):
            var.put(u'type', var.get(u'type').get(u'typeAnnotation'))
        return var.get(u"this").put(u'typeAnnotation', var.get(u'type'))
    PyJsHoisted_getTypeAnnotation_.func_name = u'getTypeAnnotation'
    var.put(u'getTypeAnnotation', PyJsHoisted_getTypeAnnotation_)
    @Js
    def PyJsHoisted_isBaseType_(baseName, soft, this, arguments, var=var):
        var = Scope({u'this':this, u'baseName':baseName, u'soft':soft, u'arguments':arguments}, var)
        var.registers([u'baseName', u'soft'])
        return var.get(u'_isBaseType')(var.get(u'baseName'), var.get(u"this").callprop(u'getTypeAnnotation'), var.get(u'soft'))
    PyJsHoisted_isBaseType_.func_name = u'isBaseType'
    var.put(u'isBaseType', PyJsHoisted_isBaseType_)
    @Js
    def PyJsHoisted_baseTypeStrictlyMatches_(right, this, arguments, var=var):
        var = Scope({u'this':this, u'right':right, u'arguments':arguments}, var)
        var.registers([u'right', u'left'])
        var.put(u'left', var.get(u"this").callprop(u'getTypeAnnotation'))
        var.put(u'right', var.get(u'right').callprop(u'getTypeAnnotation'))
        if (var.get(u't').callprop(u'isAnyTypeAnnotation', var.get(u'left')).neg() and var.get(u't').callprop(u'isFlowBaseAnnotation', var.get(u'left'))):
            return PyJsStrictEq(var.get(u'right').get(u'type'),var.get(u'left').get(u'type'))
    PyJsHoisted_baseTypeStrictlyMatches_.func_name = u'baseTypeStrictlyMatches'
    var.put(u'baseTypeStrictlyMatches', PyJsHoisted_baseTypeStrictlyMatches_)
    @Js
    def PyJsHoisted__getTypeAnnotation_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'declarParent', u'inferer', u'declar'])
        var.put(u'node', var.get(u"this").get(u'node'))
        if var.get(u'node').neg():
            if (PyJsStrictEq(var.get(u"this").get(u'key'),Js(u'init')) and var.get(u"this").get(u'parentPath').callprop(u'isVariableDeclarator')):
                var.put(u'declar', var.get(u"this").get(u'parentPath').get(u'parentPath'))
                var.put(u'declarParent', var.get(u'declar').get(u'parentPath'))
                if (PyJsStrictEq(var.get(u'declar').get(u'key'),Js(u'left')) and var.get(u'declarParent').callprop(u'isForInStatement')):
                    return var.get(u't').callprop(u'stringTypeAnnotation')
                if (PyJsStrictEq(var.get(u'declar').get(u'key'),Js(u'left')) and var.get(u'declarParent').callprop(u'isForOfStatement')):
                    return var.get(u't').callprop(u'anyTypeAnnotation')
                return var.get(u't').callprop(u'voidTypeAnnotation')
            else:
                return var.get('undefined')
        if var.get(u'node').get(u'typeAnnotation'):
            return var.get(u'node').get(u'typeAnnotation')
        var.put(u'inferer', var.get(u'inferers').get(var.get(u'node').get(u'type')))
        if var.get(u'inferer'):
            return var.get(u'inferer').callprop(u'call', var.get(u"this"), var.get(u'node'))
        var.put(u'inferer', var.get(u'inferers').get(var.get(u"this").get(u'parentPath').get(u'type')))
        if (var.get(u'inferer') and var.get(u'inferer').get(u'validParent')):
            return var.get(u"this").get(u'parentPath').callprop(u'getTypeAnnotation')
    PyJsHoisted__getTypeAnnotation_.func_name = u'_getTypeAnnotation'
    var.put(u'_getTypeAnnotation', PyJsHoisted__getTypeAnnotation_)
    @Js
    def PyJsHoisted_isGenericType_(genericName, this, arguments, var=var):
        var = Scope({u'this':this, u'genericName':genericName, u'arguments':arguments}, var)
        var.registers([u'genericName', u'type'])
        var.put(u'type', var.get(u"this").callprop(u'getTypeAnnotation'))
        PyJs_Object_1984_ = Js({u'name':var.get(u'genericName')})
        return (var.get(u't').callprop(u'isGenericTypeAnnotation', var.get(u'type')) and var.get(u't').callprop(u'isIdentifier', var.get(u'type').get(u'id'), PyJs_Object_1984_))
    PyJsHoisted_isGenericType_.func_name = u'isGenericType'
    var.put(u'isGenericType', PyJsHoisted_isGenericType_)
    @Js
    def PyJsHoisted__isBaseType_(baseName, type, soft, this, arguments, var=var):
        var = Scope({u'this':this, u'soft':soft, u'baseName':baseName, u'type':type, u'arguments':arguments}, var)
        var.registers([u'soft', u'baseName', u'type'])
        if PyJsStrictEq(var.get(u'baseName'),Js(u'string')):
            return var.get(u't').callprop(u'isStringTypeAnnotation', var.get(u'type'))
        else:
            if PyJsStrictEq(var.get(u'baseName'),Js(u'number')):
                return var.get(u't').callprop(u'isNumberTypeAnnotation', var.get(u'type'))
            else:
                if PyJsStrictEq(var.get(u'baseName'),Js(u'boolean')):
                    return var.get(u't').callprop(u'isBooleanTypeAnnotation', var.get(u'type'))
                else:
                    if PyJsStrictEq(var.get(u'baseName'),Js(u'any')):
                        return var.get(u't').callprop(u'isAnyTypeAnnotation', var.get(u'type'))
                    else:
                        if PyJsStrictEq(var.get(u'baseName'),Js(u'mixed')):
                            return var.get(u't').callprop(u'isMixedTypeAnnotation', var.get(u'type'))
                        else:
                            if PyJsStrictEq(var.get(u'baseName'),Js(u'empty')):
                                return var.get(u't').callprop(u'isEmptyTypeAnnotation', var.get(u'type'))
                            else:
                                if PyJsStrictEq(var.get(u'baseName'),Js(u'void')):
                                    return var.get(u't').callprop(u'isVoidTypeAnnotation', var.get(u'type'))
                                else:
                                    if var.get(u'soft'):
                                        return Js(False)
                                    else:
                                        PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u'Unknown base type ')+var.get(u'baseName'))))
                                        raise PyJsTempException
    PyJsHoisted__isBaseType_.func_name = u'_isBaseType'
    var.put(u'_isBaseType', PyJsHoisted__isBaseType_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1983_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1983_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'getTypeAnnotation', var.get(u'getTypeAnnotation'))
    var.get(u'exports').put(u'_getTypeAnnotation', var.get(u'_getTypeAnnotation'))
    var.get(u'exports').put(u'isBaseType', var.get(u'isBaseType'))
    var.get(u'exports').put(u'couldBeBaseType', var.get(u'couldBeBaseType'))
    var.get(u'exports').put(u'baseTypeStrictlyMatches', var.get(u'baseTypeStrictlyMatches'))
    var.get(u'exports').put(u'isGenericType', var.get(u'isGenericType'))
    var.put(u'_inferers', var.get(u'require')(Js(u'./inferers')))
    var.put(u'inferers', var.get(u'_interopRequireWildcard')(var.get(u'_inferers')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_1981_._set_name(u'anonymous')
PyJs_Object_1985_ = Js({u'./inferers':Js(235.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_1986_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'getConditionalAnnotation', u'_interopRequireWildcard', u'getParentConditionalPath', u'require', u'_babelTypes', u'module', u'inferAnnotationFromBinaryExpression', u't', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'getTypeAnnotationBindingConstantViolations', u'getConstantViolationsBefore'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_1988_ = Js({})
            var.put(u'newObj', PyJs_Object_1988_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_getParentConditionalPath_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
        var.registers([u'path', u'parentPath'])
        var.put(u'parentPath', PyJsComma(Js(0.0), Js(None)))
        while var.put(u'parentPath', var.get(u'path').get(u'parentPath')):
            if (var.get(u'parentPath').callprop(u'isIfStatement') or var.get(u'parentPath').callprop(u'isConditionalExpression')):
                if PyJsStrictEq(var.get(u'path').get(u'key'),Js(u'test')):
                    return var.get('undefined')
                else:
                    return var.get(u'parentPath')
            else:
                var.put(u'path', var.get(u'parentPath'))
    PyJsHoisted_getParentConditionalPath_.func_name = u'getParentConditionalPath'
    var.put(u'getParentConditionalPath', PyJsHoisted_getParentConditionalPath_)
    @Js
    def PyJsHoisted_inferAnnotationFromBinaryExpression_(name, path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'name':name, u'arguments':arguments}, var)
        var.registers([u'right', u'target', u'typeValue', u'typeofPath', u'typePath', u'name', u'operator', u'path', u'left'])
        var.put(u'operator', var.get(u'path').get(u'node').get(u'operator'))
        var.put(u'right', var.get(u'path').callprop(u'get', Js(u'right')).callprop(u'resolve'))
        var.put(u'left', var.get(u'path').callprop(u'get', Js(u'left')).callprop(u'resolve'))
        var.put(u'target', PyJsComma(Js(0.0), Js(None)))
        PyJs_Object_1993_ = Js({u'name':var.get(u'name')})
        if var.get(u'left').callprop(u'isIdentifier', PyJs_Object_1993_):
            var.put(u'target', var.get(u'right'))
        else:
            PyJs_Object_1994_ = Js({u'name':var.get(u'name')})
            if var.get(u'right').callprop(u'isIdentifier', PyJs_Object_1994_):
                var.put(u'target', var.get(u'left'))
        if var.get(u'target'):
            if PyJsStrictEq(var.get(u'operator'),Js(u'===')):
                return var.get(u'target').callprop(u'getTypeAnnotation')
            else:
                if (var.get(u't').get(u'BOOLEAN_NUMBER_BINARY_OPERATORS').callprop(u'indexOf', var.get(u'operator'))>=Js(0.0)):
                    return var.get(u't').callprop(u'numberTypeAnnotation')
                else:
                    return var.get('undefined')
        else:
            if PyJsStrictNeq(var.get(u'operator'),Js(u'===')):
                return var.get('undefined')
        var.put(u'typeofPath', PyJsComma(Js(0.0), Js(None)))
        var.put(u'typePath', PyJsComma(Js(0.0), Js(None)))
        PyJs_Object_1995_ = Js({u'operator':Js(u'typeof')})
        if var.get(u'left').callprop(u'isUnaryExpression', PyJs_Object_1995_):
            var.put(u'typeofPath', var.get(u'left'))
            var.put(u'typePath', var.get(u'right'))
        else:
            PyJs_Object_1996_ = Js({u'operator':Js(u'typeof')})
            if var.get(u'right').callprop(u'isUnaryExpression', PyJs_Object_1996_):
                var.put(u'typeofPath', var.get(u'right'))
                var.put(u'typePath', var.get(u'left'))
        if (var.get(u'typePath').neg() and var.get(u'typeofPath').neg()):
            return var.get('undefined')
        var.put(u'typePath', var.get(u'typePath').callprop(u'resolve'))
        if var.get(u'typePath').callprop(u'isLiteral').neg():
            return var.get('undefined')
        var.put(u'typeValue', var.get(u'typePath').get(u'node').get(u'value'))
        if PyJsStrictNeq(var.get(u'typeValue',throw=False).typeof(),Js(u'string')):
            return var.get('undefined')
        PyJs_Object_1997_ = Js({u'name':var.get(u'name')})
        if var.get(u'typeofPath').callprop(u'get', Js(u'argument')).callprop(u'isIdentifier', PyJs_Object_1997_).neg():
            return var.get('undefined')
        return var.get(u't').callprop(u'createTypeAnnotationBasedOnTypeof', var.get(u'typePath').get(u'node').get(u'value'))
    PyJsHoisted_inferAnnotationFromBinaryExpression_.func_name = u'inferAnnotationFromBinaryExpression'
    var.put(u'inferAnnotationFromBinaryExpression', PyJsHoisted_inferAnnotationFromBinaryExpression_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_1989_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_1989_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_getConstantViolationsBefore_(binding, path, functions, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'functions':functions, u'binding':binding, u'arguments':arguments}, var)
        var.registers([u'path', u'violations', u'binding', u'functions'])
        var.put(u'violations', var.get(u'binding').get(u'constantViolations').callprop(u'slice'))
        var.get(u'violations').callprop(u'unshift', var.get(u'binding').get(u'path'))
        @Js
        def PyJs_anonymous_1992_(violation, this, arguments, var=var):
            var = Scope({u'violation':violation, u'this':this, u'arguments':arguments}, var)
            var.registers([u'status', u'violation'])
            var.put(u'violation', var.get(u'violation').callprop(u'resolve'))
            var.put(u'status', var.get(u'violation').callprop(u'_guessExecutionStatusRelativeTo', var.get(u'path')))
            if (var.get(u'functions') and PyJsStrictEq(var.get(u'status'),Js(u'function'))):
                var.get(u'functions').callprop(u'push', var.get(u'violation'))
            return PyJsStrictEq(var.get(u'status'),Js(u'before'))
        PyJs_anonymous_1992_._set_name(u'anonymous')
        return var.get(u'violations').callprop(u'filter', PyJs_anonymous_1992_)
    PyJsHoisted_getConstantViolationsBefore_.func_name = u'getConstantViolationsBefore'
    var.put(u'getConstantViolationsBefore', PyJsHoisted_getConstantViolationsBefore_)
    @Js
    def PyJsHoisted_getConditionalAnnotation_(path, name, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'name':name, u'arguments':arguments}, var)
        var.registers([u'paths', u'name', u'test', u'path', u'ifStatement', u'type', u'types', u'_path'])
        var.put(u'ifStatement', var.get(u'getParentConditionalPath')(var.get(u'path')))
        if var.get(u'ifStatement').neg():
            return var.get('undefined')
        var.put(u'test', var.get(u'ifStatement').callprop(u'get', Js(u'test')))
        var.put(u'paths', Js([var.get(u'test')]))
        var.put(u'types', Js([]))
        while 1:
            var.put(u'_path', var.get(u'paths').callprop(u'shift').callprop(u'resolve'))
            if var.get(u'_path').callprop(u'isLogicalExpression'):
                var.get(u'paths').callprop(u'push', var.get(u'_path').callprop(u'get', Js(u'left')))
                var.get(u'paths').callprop(u'push', var.get(u'_path').callprop(u'get', Js(u'right')))
            if var.get(u'_path').callprop(u'isBinaryExpression'):
                var.put(u'type', var.get(u'inferAnnotationFromBinaryExpression')(var.get(u'name'), var.get(u'_path')))
                if var.get(u'type'):
                    var.get(u'types').callprop(u'push', var.get(u'type'))
            if not var.get(u'paths').get(u'length'):
                break
        if var.get(u'types').get(u'length'):
            PyJs_Object_1998_ = Js({u'typeAnnotation':var.get(u't').callprop(u'createUnionTypeAnnotation', var.get(u'types')),u'ifStatement':var.get(u'ifStatement')})
            return PyJs_Object_1998_
        else:
            return var.get(u'getConditionalAnnotation')(var.get(u'ifStatement'), var.get(u'name'))
    PyJsHoisted_getConditionalAnnotation_.func_name = u'getConditionalAnnotation'
    var.put(u'getConditionalAnnotation', PyJsHoisted_getConditionalAnnotation_)
    @Js
    def PyJsHoisted_getTypeAnnotationBindingConstantViolations_(path, name, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'name':name, u'arguments':arguments}, var)
        var.registers([u'_isArray', u'_iterator', u'name', u'violation', u'binding', u'functionConstantViolations', u'_i', u'types', u'path', u'_ref', u'testType', u'constantViolations'])
        var.put(u'binding', var.get(u'path').get(u'scope').callprop(u'getBinding', var.get(u'name')))
        var.put(u'types', Js([]))
        var.get(u'path').put(u'typeAnnotation', var.get(u't').callprop(u'unionTypeAnnotation', var.get(u'types')))
        var.put(u'functionConstantViolations', Js([]))
        var.put(u'constantViolations', var.get(u'getConstantViolationsBefore')(var.get(u'binding'), var.get(u'path'), var.get(u'functionConstantViolations')))
        var.put(u'testType', var.get(u'getConditionalAnnotation')(var.get(u'path'), var.get(u'name')))
        if var.get(u'testType'):
            @Js
            def PyJs_anonymous_1990_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'testConstantViolations'])
                var.put(u'testConstantViolations', var.get(u'getConstantViolationsBefore')(var.get(u'binding'), var.get(u'testType').get(u'ifStatement')))
                @Js
                def PyJs_anonymous_1991_(path, this, arguments, var=var):
                    var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                    var.registers([u'path'])
                    return (var.get(u'testConstantViolations').callprop(u'indexOf', var.get(u'path'))<Js(0.0))
                PyJs_anonymous_1991_._set_name(u'anonymous')
                var.put(u'constantViolations', var.get(u'constantViolations').callprop(u'filter', PyJs_anonymous_1991_))
                var.get(u'types').callprop(u'push', var.get(u'testType').get(u'typeAnnotation'))
            PyJs_anonymous_1990_._set_name(u'anonymous')
            PyJs_anonymous_1990_()
        if var.get(u'constantViolations').get(u'length'):
            var.put(u'constantViolations', var.get(u'constantViolations').callprop(u'concat', var.get(u'functionConstantViolations')))
            #for JS loop
            var.put(u'_iterator', var.get(u'constantViolations'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'violation', var.get(u'_ref'))
                var.get(u'types').callprop(u'push', var.get(u'violation').callprop(u'getTypeAnnotation'))
            
        if var.get(u'types').get(u'length'):
            return var.get(u't').callprop(u'createUnionTypeAnnotation', var.get(u'types'))
    PyJsHoisted_getTypeAnnotationBindingConstantViolations_.func_name = u'getTypeAnnotationBindingConstantViolations'
    var.put(u'getTypeAnnotationBindingConstantViolations', PyJsHoisted_getTypeAnnotationBindingConstantViolations_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    @Js
    def PyJs_anonymous_1987_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'binding'])
        if var.get(u"this").callprop(u'isReferenced').neg():
            return var.get('undefined')
        var.put(u'binding', var.get(u"this").get(u'scope').callprop(u'getBinding', var.get(u'node').get(u'name')))
        if var.get(u'binding'):
            if var.get(u'binding').get(u'identifier').get(u'typeAnnotation'):
                return var.get(u'binding').get(u'identifier').get(u'typeAnnotation')
            else:
                return var.get(u'getTypeAnnotationBindingConstantViolations')(var.get(u"this"), var.get(u'node').get(u'name'))
        if PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'undefined')):
            return var.get(u't').callprop(u'voidTypeAnnotation')
        else:
            if (PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'NaN')) or PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'Infinity'))):
                return var.get(u't').callprop(u'numberTypeAnnotation')
            else:
                if PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'arguments')):
                    pass
    PyJs_anonymous_1987_._set_name(u'anonymous')
    var.get(u'exports').put(u'default', PyJs_anonymous_1987_)
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_1986_._set_name(u'anonymous')
PyJs_Object_1999_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_2000_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'CallExpression', u'UpdateExpression', u'module', u'ObjectExpression', u'_interopRequireDefault', u'resolveCall', u'RegExpLiteral', u'ArrayExpression', u'Func', u'AssignmentExpression', u'exports', u'_interopRequireWildcard', u'RestElement', u'_babelTypes', u'NullLiteral', u'TypeCastExpression', u'SequenceExpression', u'BinaryExpression', u'BooleanLiteral', u'ConditionalExpression', u'UnaryExpression', u'NewExpression', u'require', u'StringLiteral', u'NumericLiteral', u'TaggedTemplateExpression', u't', u'_infererReference', u'TemplateLiteral', u'LogicalExpression', u'VariableDeclarator'])
    @Js
    def PyJsHoisted_CallExpression_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u'resolveCall')(var.get(u"this").callprop(u'get', Js(u'callee')))
    PyJsHoisted_CallExpression_.func_name = u'CallExpression'
    var.put(u'CallExpression', PyJsHoisted_CallExpression_)
    @Js
    def PyJsHoisted_UpdateExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'operator', u'node'])
        var.put(u'operator', var.get(u'node').get(u'operator'))
        if (PyJsStrictEq(var.get(u'operator'),Js(u'++')) or PyJsStrictEq(var.get(u'operator'),Js(u'--'))):
            return var.get(u't').callprop(u'numberTypeAnnotation')
    PyJsHoisted_UpdateExpression_.func_name = u'UpdateExpression'
    var.put(u'UpdateExpression', PyJsHoisted_UpdateExpression_)
    @Js
    def PyJsHoisted_ObjectExpression_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'genericTypeAnnotation', var.get(u't').callprop(u'identifier', Js(u'Object')))
    PyJsHoisted_ObjectExpression_.func_name = u'ObjectExpression'
    var.put(u'ObjectExpression', PyJsHoisted_ObjectExpression_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2004_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2004_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_resolveCall_(callee, this, arguments, var=var):
        var = Scope({u'this':this, u'callee':callee, u'arguments':arguments}, var)
        var.registers([u'callee'])
        var.put(u'callee', var.get(u'callee').callprop(u'resolve'))
        if var.get(u'callee').callprop(u'isFunction'):
            if var.get(u'callee').callprop(u'is', Js(u'async')):
                if var.get(u'callee').callprop(u'is', Js(u'generator')):
                    return var.get(u't').callprop(u'genericTypeAnnotation', var.get(u't').callprop(u'identifier', Js(u'AsyncIterator')))
                else:
                    return var.get(u't').callprop(u'genericTypeAnnotation', var.get(u't').callprop(u'identifier', Js(u'Promise')))
            else:
                if var.get(u'callee').get(u'node').get(u'returnType'):
                    return var.get(u'callee').get(u'node').get(u'returnType')
                else:
                    pass
    PyJsHoisted_resolveCall_.func_name = u'resolveCall'
    var.put(u'resolveCall', PyJsHoisted_resolveCall_)
    @Js
    def PyJsHoisted_RegExpLiteral_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'genericTypeAnnotation', var.get(u't').callprop(u'identifier', Js(u'RegExp')))
    PyJsHoisted_RegExpLiteral_.func_name = u'RegExpLiteral'
    var.put(u'RegExpLiteral', PyJsHoisted_RegExpLiteral_)
    @Js
    def PyJsHoisted_ArrayExpression_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'genericTypeAnnotation', var.get(u't').callprop(u'identifier', Js(u'Array')))
    PyJsHoisted_ArrayExpression_.func_name = u'ArrayExpression'
    var.put(u'ArrayExpression', PyJsHoisted_ArrayExpression_)
    @Js
    def PyJsHoisted_Func_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'genericTypeAnnotation', var.get(u't').callprop(u'identifier', Js(u'Function')))
    PyJsHoisted_Func_.func_name = u'Func'
    var.put(u'Func', PyJsHoisted_Func_)
    @Js
    def PyJsHoisted_AssignmentExpression_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this").callprop(u'get', Js(u'right')).callprop(u'getTypeAnnotation')
    PyJsHoisted_AssignmentExpression_.func_name = u'AssignmentExpression'
    var.put(u'AssignmentExpression', PyJsHoisted_AssignmentExpression_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2003_ = Js({})
            var.put(u'newObj', PyJs_Object_2003_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_RestElement_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u'ArrayExpression')()
    PyJsHoisted_RestElement_.func_name = u'RestElement'
    var.put(u'RestElement', PyJsHoisted_RestElement_)
    @Js
    def PyJsHoisted_NullLiteral_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'nullLiteralTypeAnnotation')
    PyJsHoisted_NullLiteral_.func_name = u'NullLiteral'
    var.put(u'NullLiteral', PyJsHoisted_NullLiteral_)
    @Js
    def PyJsHoisted_TypeCastExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        return var.get(u'node').get(u'typeAnnotation')
    PyJsHoisted_TypeCastExpression_.func_name = u'TypeCastExpression'
    var.put(u'TypeCastExpression', PyJsHoisted_TypeCastExpression_)
    @Js
    def PyJsHoisted_SequenceExpression_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this").callprop(u'get', Js(u'expressions')).callprop(u'pop').callprop(u'getTypeAnnotation')
    PyJsHoisted_SequenceExpression_.func_name = u'SequenceExpression'
    var.put(u'SequenceExpression', PyJsHoisted_SequenceExpression_)
    @Js
    def PyJsHoisted_BinaryExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'operator', u'node', u'right', u'left'])
        var.put(u'operator', var.get(u'node').get(u'operator'))
        if (var.get(u't').get(u'NUMBER_BINARY_OPERATORS').callprop(u'indexOf', var.get(u'operator'))>=Js(0.0)):
            return var.get(u't').callprop(u'numberTypeAnnotation')
        else:
            if (var.get(u't').get(u'BOOLEAN_BINARY_OPERATORS').callprop(u'indexOf', var.get(u'operator'))>=Js(0.0)):
                return var.get(u't').callprop(u'booleanTypeAnnotation')
            else:
                if PyJsStrictEq(var.get(u'operator'),Js(u'+')):
                    var.put(u'right', var.get(u"this").callprop(u'get', Js(u'right')))
                    var.put(u'left', var.get(u"this").callprop(u'get', Js(u'left')))
                    if (var.get(u'left').callprop(u'isBaseType', Js(u'number')) and var.get(u'right').callprop(u'isBaseType', Js(u'number'))):
                        return var.get(u't').callprop(u'numberTypeAnnotation')
                    else:
                        if (var.get(u'left').callprop(u'isBaseType', Js(u'string')) or var.get(u'right').callprop(u'isBaseType', Js(u'string'))):
                            return var.get(u't').callprop(u'stringTypeAnnotation')
                    return var.get(u't').callprop(u'unionTypeAnnotation', Js([var.get(u't').callprop(u'stringTypeAnnotation'), var.get(u't').callprop(u'numberTypeAnnotation')]))
    PyJsHoisted_BinaryExpression_.func_name = u'BinaryExpression'
    var.put(u'BinaryExpression', PyJsHoisted_BinaryExpression_)
    @Js
    def PyJsHoisted_BooleanLiteral_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'booleanTypeAnnotation')
    PyJsHoisted_BooleanLiteral_.func_name = u'BooleanLiteral'
    var.put(u'BooleanLiteral', PyJsHoisted_BooleanLiteral_)
    @Js
    def PyJsHoisted_ConditionalExpression_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'createUnionTypeAnnotation', Js([var.get(u"this").callprop(u'get', Js(u'consequent')).callprop(u'getTypeAnnotation'), var.get(u"this").callprop(u'get', Js(u'alternate')).callprop(u'getTypeAnnotation')]))
    PyJsHoisted_ConditionalExpression_.func_name = u'ConditionalExpression'
    var.put(u'ConditionalExpression', PyJsHoisted_ConditionalExpression_)
    @Js
    def PyJsHoisted_UnaryExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'operator', u'node'])
        var.put(u'operator', var.get(u'node').get(u'operator'))
        if PyJsStrictEq(var.get(u'operator'),Js(u'void')):
            return var.get(u't').callprop(u'voidTypeAnnotation')
        else:
            if (var.get(u't').get(u'NUMBER_UNARY_OPERATORS').callprop(u'indexOf', var.get(u'operator'))>=Js(0.0)):
                return var.get(u't').callprop(u'numberTypeAnnotation')
            else:
                if (var.get(u't').get(u'STRING_UNARY_OPERATORS').callprop(u'indexOf', var.get(u'operator'))>=Js(0.0)):
                    return var.get(u't').callprop(u'stringTypeAnnotation')
                else:
                    if (var.get(u't').get(u'BOOLEAN_UNARY_OPERATORS').callprop(u'indexOf', var.get(u'operator'))>=Js(0.0)):
                        return var.get(u't').callprop(u'booleanTypeAnnotation')
    PyJsHoisted_UnaryExpression_.func_name = u'UnaryExpression'
    var.put(u'UnaryExpression', PyJsHoisted_UnaryExpression_)
    @Js
    def PyJsHoisted_NewExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u"this").callprop(u'get', Js(u'callee')).callprop(u'isIdentifier'):
            return var.get(u't').callprop(u'genericTypeAnnotation', var.get(u'node').get(u'callee'))
    PyJsHoisted_NewExpression_.func_name = u'NewExpression'
    var.put(u'NewExpression', PyJsHoisted_NewExpression_)
    @Js
    def PyJsHoisted_StringLiteral_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'stringTypeAnnotation')
    PyJsHoisted_StringLiteral_.func_name = u'StringLiteral'
    var.put(u'StringLiteral', PyJsHoisted_StringLiteral_)
    @Js
    def PyJsHoisted_NumericLiteral_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'numberTypeAnnotation')
    PyJsHoisted_NumericLiteral_.func_name = u'NumericLiteral'
    var.put(u'NumericLiteral', PyJsHoisted_NumericLiteral_)
    @Js
    def PyJsHoisted_TaggedTemplateExpression_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u'resolveCall')(var.get(u"this").callprop(u'get', Js(u'tag')))
    PyJsHoisted_TaggedTemplateExpression_.func_name = u'TaggedTemplateExpression'
    var.put(u'TaggedTemplateExpression', PyJsHoisted_TaggedTemplateExpression_)
    @Js
    def PyJsHoisted_TemplateLiteral_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'stringTypeAnnotation')
    PyJsHoisted_TemplateLiteral_.func_name = u'TemplateLiteral'
    var.put(u'TemplateLiteral', PyJsHoisted_TemplateLiteral_)
    @Js
    def PyJsHoisted_LogicalExpression_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u't').callprop(u'createUnionTypeAnnotation', Js([var.get(u"this").callprop(u'get', Js(u'left')).callprop(u'getTypeAnnotation'), var.get(u"this").callprop(u'get', Js(u'right')).callprop(u'getTypeAnnotation')]))
    PyJsHoisted_LogicalExpression_.func_name = u'LogicalExpression'
    var.put(u'LogicalExpression', PyJsHoisted_LogicalExpression_)
    @Js
    def PyJsHoisted_VariableDeclarator_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'id'])
        var.put(u'id', var.get(u"this").callprop(u'get', Js(u'id')))
        if var.get(u'id').callprop(u'isIdentifier'):
            return var.get(u"this").callprop(u'get', Js(u'init')).callprop(u'getTypeAnnotation')
        else:
            return var.get('undefined')
    PyJsHoisted_VariableDeclarator_.func_name = u'VariableDeclarator'
    var.put(u'VariableDeclarator', PyJsHoisted_VariableDeclarator_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'ClassDeclaration', var.get(u'exports').put(u'ClassExpression', var.get(u'exports').put(u'FunctionDeclaration', var.get(u'exports').put(u'ArrowFunctionExpression', var.get(u'exports').put(u'FunctionExpression', var.get(u'exports').put(u'Identifier', var.get(u'undefined')))))))
    var.put(u'_infererReference', var.get(u'require')(Js(u'./inferer-reference')))
    @Js
    def PyJs_get_2002_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2002_}, var)
        var.registers([])
        return var.get(u'_interopRequireDefault')(var.get(u'_infererReference')).get(u'default')
    PyJs_get_2002_._set_name(u'get')
    PyJs_Object_2001_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2002_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'Identifier'), PyJs_Object_2001_)
    var.get(u'exports').put(u'VariableDeclarator', var.get(u'VariableDeclarator'))
    var.get(u'exports').put(u'TypeCastExpression', var.get(u'TypeCastExpression'))
    var.get(u'exports').put(u'NewExpression', var.get(u'NewExpression'))
    var.get(u'exports').put(u'TemplateLiteral', var.get(u'TemplateLiteral'))
    var.get(u'exports').put(u'UnaryExpression', var.get(u'UnaryExpression'))
    var.get(u'exports').put(u'BinaryExpression', var.get(u'BinaryExpression'))
    var.get(u'exports').put(u'LogicalExpression', var.get(u'LogicalExpression'))
    var.get(u'exports').put(u'ConditionalExpression', var.get(u'ConditionalExpression'))
    var.get(u'exports').put(u'SequenceExpression', var.get(u'SequenceExpression'))
    var.get(u'exports').put(u'AssignmentExpression', var.get(u'AssignmentExpression'))
    var.get(u'exports').put(u'UpdateExpression', var.get(u'UpdateExpression'))
    var.get(u'exports').put(u'StringLiteral', var.get(u'StringLiteral'))
    var.get(u'exports').put(u'NumericLiteral', var.get(u'NumericLiteral'))
    var.get(u'exports').put(u'BooleanLiteral', var.get(u'BooleanLiteral'))
    var.get(u'exports').put(u'NullLiteral', var.get(u'NullLiteral'))
    var.get(u'exports').put(u'RegExpLiteral', var.get(u'RegExpLiteral'))
    var.get(u'exports').put(u'ObjectExpression', var.get(u'ObjectExpression'))
    var.get(u'exports').put(u'ArrayExpression', var.get(u'ArrayExpression'))
    var.get(u'exports').put(u'RestElement', var.get(u'RestElement'))
    var.get(u'exports').put(u'CallExpression', var.get(u'CallExpression'))
    var.get(u'exports').put(u'TaggedTemplateExpression', var.get(u'TaggedTemplateExpression'))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    var.get(u'TypeCastExpression').put(u'validParent', var.get(u'true'))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    var.get(u'RestElement').put(u'validParent', var.get(u'true'))
    pass
    var.get(u'exports').put(u'FunctionExpression', var.get(u'Func'))
    var.get(u'exports').put(u'ArrowFunctionExpression', var.get(u'Func'))
    var.get(u'exports').put(u'FunctionDeclaration', var.get(u'Func'))
    var.get(u'exports').put(u'ClassExpression', var.get(u'Func'))
    var.get(u'exports').put(u'ClassDeclaration', var.get(u'Func'))
    pass
    pass
    pass
PyJs_anonymous_2000_._set_name(u'anonymous')
PyJs_Object_2005_ = Js({u'./inferer-reference':Js(234.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_2006_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_resolve', u'is', u'exports', u'module', u'isnt', u'canSwapBetweenExpressionAndStatement', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'referencesImport', u'_typeof2', u'_typeof3', u'canHaveVariableDeclarationOrExpression', u'isStatementOrBlock', u't', u'has', u'_guessExecutionStatusRelativeTo', u'_includes', u'isStatic', u'isCompletionRecord', u'_interopRequireWildcard', u'_babelTypes', u'_includes2', u'equals', u'isNodeType', u'_guessExecutionStatusRelativeToDifferentFunctions', u'resolve', u'willIMaybeExecuteBefore', u'require', u'matchesPattern', u'getSource'])
    @Js
    def PyJsHoisted__resolve_(dangerous, resolved, this, arguments, var=var):
        var = Scope({u'resolved':resolved, u'dangerous':dangerous, u'this':this, u'arguments':arguments}, var)
        var.registers([u'resolved', u'dangerous', u'_isArray3', u'target', u'_this', u'_ret', u'_i3', u'binding', u'elems', u'prop', u'match', u'key', u'props', u'targetKey', u'elem', u'targetName', u'_ref3', u'_iterator3'])
        var.put(u'_this', var.get(u"this"))
        if (var.get(u'resolved') and (var.get(u'resolved').callprop(u'indexOf', var.get(u"this"))>=Js(0.0))):
            return var.get('undefined')
        var.put(u'resolved', (var.get(u'resolved') or Js([])))
        var.get(u'resolved').callprop(u'push', var.get(u"this"))
        if var.get(u"this").callprop(u'isVariableDeclarator'):
            if var.get(u"this").callprop(u'get', Js(u'id')).callprop(u'isIdentifier'):
                return var.get(u"this").callprop(u'get', Js(u'init')).callprop(u'resolve', var.get(u'dangerous'), var.get(u'resolved'))
            else:
                pass
        else:
            if var.get(u"this").callprop(u'isReferencedIdentifier'):
                var.put(u'binding', var.get(u"this").get(u'scope').callprop(u'getBinding', var.get(u"this").get(u'node').get(u'name')))
                if var.get(u'binding').neg():
                    return var.get('undefined')
                if var.get(u'binding').get(u'constant').neg():
                    return var.get('undefined')
                if PyJsStrictEq(var.get(u'binding').get(u'kind'),Js(u'module')):
                    return var.get('undefined')
                if PyJsStrictNeq(var.get(u'binding').get(u'path'),var.get(u"this")):
                    @Js
                    def PyJs_anonymous_2010_(this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments}, var)
                        var.registers([u'ret'])
                        var.put(u'ret', var.get(u'binding').get(u'path').callprop(u'resolve', var.get(u'dangerous'), var.get(u'resolved')))
                        @Js
                        def PyJs_anonymous_2011_(parent, this, arguments, var=var):
                            var = Scope({u'this':this, u'arguments':arguments, u'parent':parent}, var)
                            var.registers([u'parent'])
                            return PyJsStrictEq(var.get(u'parent').get(u'node'),var.get(u'ret').get(u'node'))
                        PyJs_anonymous_2011_._set_name(u'anonymous')
                        if var.get(u'_this').callprop(u'find', PyJs_anonymous_2011_):
                            PyJs_Object_2012_ = Js({u'v':PyJsComma(Js(0.0), Js(None))})
                            return PyJs_Object_2012_
                        PyJs_Object_2013_ = Js({u'v':var.get(u'ret')})
                        return PyJs_Object_2013_
                    PyJs_anonymous_2010_._set_name(u'anonymous')
                    var.put(u'_ret', PyJs_anonymous_2010_())
                    if PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'_ret',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'_ret'))),Js(u'object')):
                        return var.get(u'_ret').get(u'v')
            else:
                if var.get(u"this").callprop(u'isTypeCastExpression'):
                    return var.get(u"this").callprop(u'get', Js(u'expression')).callprop(u'resolve', var.get(u'dangerous'), var.get(u'resolved'))
                else:
                    if (var.get(u'dangerous') and var.get(u"this").callprop(u'isMemberExpression')):
                        var.put(u'targetKey', var.get(u"this").callprop(u'toComputedKey'))
                        if var.get(u't').callprop(u'isLiteral', var.get(u'targetKey')).neg():
                            return var.get('undefined')
                        var.put(u'targetName', var.get(u'targetKey').get(u'value'))
                        var.put(u'target', var.get(u"this").callprop(u'get', Js(u'object')).callprop(u'resolve', var.get(u'dangerous'), var.get(u'resolved')))
                        if var.get(u'target').callprop(u'isObjectExpression'):
                            var.put(u'props', var.get(u'target').callprop(u'get', Js(u'properties')))
                            #for JS loop
                            var.put(u'_iterator3', var.get(u'props'))
                            var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
                            var.put(u'_i3', Js(0.0))
                            var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
                            while 1:
                                pass
                                if var.get(u'_isArray3'):
                                    if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                                        break
                                    var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                                else:
                                    var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                                    if var.get(u'_i3').get(u'done'):
                                        break
                                    var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                                var.put(u'prop', var.get(u'_ref3'))
                                if var.get(u'prop').callprop(u'isProperty').neg():
                                    continue
                                var.put(u'key', var.get(u'prop').callprop(u'get', Js(u'key')))
                                PyJs_Object_2014_ = Js({u'name':var.get(u'targetName')})
                                var.put(u'match', (var.get(u'prop').callprop(u'isnt', Js(u'computed')) and var.get(u'key').callprop(u'isIdentifier', PyJs_Object_2014_)))
                                PyJs_Object_2015_ = Js({u'value':var.get(u'targetName')})
                                var.put(u'match', (var.get(u'match') or var.get(u'key').callprop(u'isLiteral', PyJs_Object_2015_)))
                                if var.get(u'match'):
                                    return var.get(u'prop').callprop(u'get', Js(u'value')).callprop(u'resolve', var.get(u'dangerous'), var.get(u'resolved'))
                            
                        else:
                            if (var.get(u'target').callprop(u'isArrayExpression') and var.get(u'isNaN')((+var.get(u'targetName'))).neg()):
                                var.put(u'elems', var.get(u'target').callprop(u'get', Js(u'elements')))
                                var.put(u'elem', var.get(u'elems').get(var.get(u'targetName')))
                                if var.get(u'elem'):
                                    return var.get(u'elem').callprop(u'resolve', var.get(u'dangerous'), var.get(u'resolved'))
    PyJsHoisted__resolve_.func_name = u'_resolve'
    var.put(u'_resolve', PyJsHoisted__resolve_)
    @Js
    def PyJsHoisted_isStatic_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this").get(u'scope').callprop(u'isStatic', var.get(u"this").get(u'node'))
    PyJsHoisted_isStatic_.func_name = u'isStatic'
    var.put(u'isStatic', PyJsHoisted_isStatic_)
    @Js
    def PyJsHoisted_isCompletionRecord_(allowInsideFunction, this, arguments, var=var):
        var = Scope({u'this':this, u'allowInsideFunction':allowInsideFunction, u'arguments':arguments}, var)
        var.registers([u'path', u'allowInsideFunction', u'container', u'first'])
        var.put(u'path', var.get(u"this"))
        var.put(u'first', var.get(u'true'))
        while 1:
            var.put(u'container', var.get(u'path').get(u'container'))
            if (var.get(u'path').callprop(u'isFunction') and var.get(u'first').neg()):
                return var.get(u'allowInsideFunction').neg().neg()
            var.put(u'first', Js(False))
            if (var.get(u'Array').callprop(u'isArray', var.get(u'container')) and PyJsStrictNeq(var.get(u'path').get(u'key'),(var.get(u'container').get(u'length')-Js(1.0)))):
                return Js(False)
            if not (var.put(u'path', var.get(u'path').get(u'parentPath')) and var.get(u'path').callprop(u'isProgram').neg()):
                break
        return var.get(u'true')
    PyJsHoisted_isCompletionRecord_.func_name = u'isCompletionRecord'
    var.put(u'isCompletionRecord', PyJsHoisted_isCompletionRecord_)
    @Js
    def PyJsHoisted_willIMaybeExecuteBefore_(target, this, arguments, var=var):
        var = Scope({u'this':this, u'target':target, u'arguments':arguments}, var)
        var.registers([u'target'])
        return PyJsStrictNeq(var.get(u"this").callprop(u'_guessExecutionStatusRelativeTo', var.get(u'target')),Js(u'after'))
    PyJsHoisted_willIMaybeExecuteBefore_.func_name = u'willIMaybeExecuteBefore'
    var.put(u'willIMaybeExecuteBefore', PyJsHoisted_willIMaybeExecuteBefore_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2007_ = Js({})
            var.put(u'newObj', PyJs_Object_2007_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_canHaveVariableDeclarationOrExpression_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return ((PyJsStrictEq(var.get(u"this").get(u'key'),Js(u'init')) or PyJsStrictEq(var.get(u"this").get(u'key'),Js(u'left'))) and var.get(u"this").get(u'parentPath').callprop(u'isFor'))
    PyJsHoisted_canHaveVariableDeclarationOrExpression_.func_name = u'canHaveVariableDeclarationOrExpression'
    var.put(u'canHaveVariableDeclarationOrExpression', PyJsHoisted_canHaveVariableDeclarationOrExpression_)
    @Js
    def PyJsHoisted__guessExecutionStatusRelativeTo_(target, this, arguments, var=var):
        var = Scope({u'this':this, u'target':target, u'arguments':arguments}, var)
        var.registers([u'status', u'targetKeyPosition', u'target', u'selfIndex', u'selfPath', u'commonPath', u'targetRelationship', u'selfRelationship', u'selfFuncParent', u'selfPaths', u'targetFuncParent', u'targetPaths', u'selfKeyPosition', u'targetIndex'])
        var.put(u'targetFuncParent', var.get(u'target').get(u'scope').callprop(u'getFunctionParent'))
        var.put(u'selfFuncParent', var.get(u"this").get(u'scope').callprop(u'getFunctionParent'))
        if PyJsStrictNeq(var.get(u'targetFuncParent').get(u'node'),var.get(u'selfFuncParent').get(u'node')):
            var.put(u'status', var.get(u"this").callprop(u'_guessExecutionStatusRelativeToDifferentFunctions', var.get(u'targetFuncParent')))
            if var.get(u'status'):
                return var.get(u'status')
            else:
                var.put(u'target', var.get(u'targetFuncParent').get(u'path'))
        var.put(u'targetPaths', var.get(u'target').callprop(u'getAncestry'))
        if (var.get(u'targetPaths').callprop(u'indexOf', var.get(u"this"))>=Js(0.0)):
            return Js(u'after')
        var.put(u'selfPaths', var.get(u"this").callprop(u'getAncestry'))
        var.put(u'commonPath', PyJsComma(Js(0.0), Js(None)))
        var.put(u'targetIndex', PyJsComma(Js(0.0), Js(None)))
        var.put(u'selfIndex', PyJsComma(Js(0.0), Js(None)))
        #for JS loop
        var.put(u'selfIndex', Js(0.0))
        while (var.get(u'selfIndex')<var.get(u'selfPaths').get(u'length')):
            try:
                var.put(u'selfPath', var.get(u'selfPaths').get(var.get(u'selfIndex')))
                var.put(u'targetIndex', var.get(u'targetPaths').callprop(u'indexOf', var.get(u'selfPath')))
                if (var.get(u'targetIndex')>=Js(0.0)):
                    var.put(u'commonPath', var.get(u'selfPath'))
                    break
            finally:
                    (var.put(u'selfIndex',Js(var.get(u'selfIndex').to_number())+Js(1))-Js(1))
        if var.get(u'commonPath').neg():
            return Js(u'before')
        var.put(u'targetRelationship', var.get(u'targetPaths').get((var.get(u'targetIndex')-Js(1.0))))
        var.put(u'selfRelationship', var.get(u'selfPaths').get((var.get(u'selfIndex')-Js(1.0))))
        if (var.get(u'targetRelationship').neg() or var.get(u'selfRelationship').neg()):
            return Js(u'before')
        if (var.get(u'targetRelationship').get(u'listKey') and PyJsStrictEq(var.get(u'targetRelationship').get(u'container'),var.get(u'selfRelationship').get(u'container'))):
            return (Js(u'before') if (var.get(u'targetRelationship').get(u'key')>var.get(u'selfRelationship').get(u'key')) else Js(u'after'))
        var.put(u'targetKeyPosition', var.get(u't').get(u'VISITOR_KEYS').get(var.get(u'targetRelationship').get(u'type')).callprop(u'indexOf', var.get(u'targetRelationship').get(u'key')))
        var.put(u'selfKeyPosition', var.get(u't').get(u'VISITOR_KEYS').get(var.get(u'selfRelationship').get(u'type')).callprop(u'indexOf', var.get(u'selfRelationship').get(u'key')))
        return (Js(u'before') if (var.get(u'targetKeyPosition')>var.get(u'selfKeyPosition')) else Js(u'after'))
    PyJsHoisted__guessExecutionStatusRelativeTo_.func_name = u'_guessExecutionStatusRelativeTo'
    var.put(u'_guessExecutionStatusRelativeTo', PyJsHoisted__guessExecutionStatusRelativeTo_)
    @Js
    def PyJsHoisted_equals_(key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'value', u'key'])
        return PyJsStrictEq(var.get(u"this").get(u'node').get(var.get(u'key')),var.get(u'value'))
    PyJsHoisted_equals_.func_name = u'equals'
    var.put(u'equals', PyJsHoisted_equals_)
    @Js
    def PyJsHoisted_isNodeType_(type, this, arguments, var=var):
        var = Scope({u'this':this, u'type':type, u'arguments':arguments}, var)
        var.registers([u'type'])
        return var.get(u't').callprop(u'isType', var.get(u"this").get(u'type'), var.get(u'type'))
    PyJsHoisted_isNodeType_.func_name = u'isNodeType'
    var.put(u'isNodeType', PyJsHoisted_isNodeType_)
    @Js
    def PyJsHoisted_isStatementOrBlock_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if (var.get(u"this").get(u'parentPath').callprop(u'isLabeledStatement') or var.get(u't').callprop(u'isBlockStatement', var.get(u"this").get(u'container'))):
            return Js(False)
        else:
            return PyJsComma(Js(0.0),var.get(u'_includes2').get(u'default'))(var.get(u't').get(u'STATEMENT_OR_BLOCK_KEYS'), var.get(u"this").get(u'key'))
    PyJsHoisted_isStatementOrBlock_.func_name = u'isStatementOrBlock'
    var.put(u'isStatementOrBlock', PyJsHoisted_isStatementOrBlock_)
    @Js
    def PyJsHoisted_isnt_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return var.get(u"this").callprop(u'has', var.get(u'key')).neg()
    PyJsHoisted_isnt_.func_name = u'isnt'
    var.put(u'isnt', PyJsHoisted_isnt_)
    @Js
    def PyJsHoisted_resolve_(dangerous, resolved, this, arguments, var=var):
        var = Scope({u'resolved':resolved, u'dangerous':dangerous, u'this':this, u'arguments':arguments}, var)
        var.registers([u'resolved', u'dangerous'])
        return (var.get(u"this").callprop(u'_resolve', var.get(u'dangerous'), var.get(u'resolved')) or var.get(u"this"))
    PyJsHoisted_resolve_.func_name = u'resolve'
    var.put(u'resolve', PyJsHoisted_resolve_)
    @Js
    def PyJsHoisted_matchesPattern_(pattern, allowPartial, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'arguments':arguments, u'allowPartial':allowPartial}, var)
        var.registers([u'node', u'search', u'i', u'pattern', u'allowPartial', u'matches', u'parts'])
        @Js
        def PyJsHoisted_matches_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
            var.registers([u'part', u'name'])
            var.put(u'part', var.get(u'parts').get(var.get(u'i')))
            return (PyJsStrictEq(var.get(u'part'),Js(u'*')) or PyJsStrictEq(var.get(u'name'),var.get(u'part')))
        PyJsHoisted_matches_.func_name = u'matches'
        var.put(u'matches', PyJsHoisted_matches_)
        if var.get(u"this").callprop(u'isMemberExpression').neg():
            return Js(False)
        var.put(u'parts', var.get(u'pattern').callprop(u'split', Js(u'.')))
        var.put(u'search', Js([var.get(u"this").get(u'node')]))
        var.put(u'i', Js(0.0))
        pass
        while var.get(u'search').get(u'length'):
            var.put(u'node', var.get(u'search').callprop(u'shift'))
            if (var.get(u'allowPartial') and PyJsStrictEq(var.get(u'i'),var.get(u'parts').get(u'length'))):
                return var.get(u'true')
            if var.get(u't').callprop(u'isIdentifier', var.get(u'node')):
                if var.get(u'matches')(var.get(u'node').get(u'name')).neg():
                    return Js(False)
            else:
                if var.get(u't').callprop(u'isLiteral', var.get(u'node')):
                    if var.get(u'matches')(var.get(u'node').get(u'value')).neg():
                        return Js(False)
                else:
                    if var.get(u't').callprop(u'isMemberExpression', var.get(u'node')):
                        if (var.get(u'node').get(u'computed') and var.get(u't').callprop(u'isLiteral', var.get(u'node').get(u'property')).neg()):
                            return Js(False)
                        else:
                            var.get(u'search').callprop(u'unshift', var.get(u'node').get(u'property'))
                            var.get(u'search').callprop(u'unshift', var.get(u'node').get(u'object'))
                            continue
                    else:
                        if var.get(u't').callprop(u'isThisExpression', var.get(u'node')):
                            if var.get(u'matches')(Js(u'this')).neg():
                                return Js(False)
                        else:
                            return Js(False)
            if (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))>var.get(u'parts').get(u'length')):
                return Js(False)
        return PyJsStrictEq(var.get(u'i'),var.get(u'parts').get(u'length'))
    PyJsHoisted_matchesPattern_.func_name = u'matchesPattern'
    var.put(u'matchesPattern', PyJsHoisted_matchesPattern_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2008_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2008_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_getSource_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").get(u'node'))
        if var.get(u'node').get(u'end'):
            return var.get(u"this").get(u'hub').get(u'file').get(u'code').callprop(u'slice', var.get(u'node').get(u'start'), var.get(u'node').get(u'end'))
        else:
            return Js(u'')
    PyJsHoisted_getSource_.func_name = u'getSource'
    var.put(u'getSource', PyJsHoisted_getSource_)
    @Js
    def PyJsHoisted_has_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key', u'val'])
        var.put(u'val', (var.get(u"this").get(u'node') and var.get(u"this").get(u'node').get(var.get(u'key'))))
        if (var.get(u'val') and var.get(u'Array').callprop(u'isArray', var.get(u'val'))):
            return var.get(u'val').get(u'length').neg().neg()
        else:
            return var.get(u'val').neg().neg()
    PyJsHoisted_has_.func_name = u'has'
    var.put(u'has', PyJsHoisted_has_)
    @Js
    def PyJsHoisted_referencesImport_(moduleSource, importName, this, arguments, var=var):
        var = Scope({u'importName':importName, u'this':this, u'moduleSource':moduleSource, u'arguments':arguments}, var)
        var.registers([u'importName', u'path', u'moduleSource', u'binding', u'parent'])
        if var.get(u"this").callprop(u'isReferencedIdentifier').neg():
            return Js(False)
        var.put(u'binding', var.get(u"this").get(u'scope').callprop(u'getBinding', var.get(u"this").get(u'node').get(u'name')))
        if (var.get(u'binding').neg() or PyJsStrictNeq(var.get(u'binding').get(u'kind'),Js(u'module'))):
            return Js(False)
        var.put(u'path', var.get(u'binding').get(u'path'))
        var.put(u'parent', var.get(u'path').get(u'parentPath'))
        if var.get(u'parent').callprop(u'isImportDeclaration').neg():
            return Js(False)
        if PyJsStrictEq(var.get(u'parent').get(u'node').get(u'source').get(u'value'),var.get(u'moduleSource')):
            if var.get(u'importName').neg():
                return var.get(u'true')
        else:
            return Js(False)
        if (var.get(u'path').callprop(u'isImportDefaultSpecifier') and PyJsStrictEq(var.get(u'importName'),Js(u'default'))):
            return var.get(u'true')
        if (var.get(u'path').callprop(u'isImportNamespaceSpecifier') and PyJsStrictEq(var.get(u'importName'),Js(u'*'))):
            return var.get(u'true')
        if (var.get(u'path').callprop(u'isImportSpecifier') and PyJsStrictEq(var.get(u'path').get(u'node').get(u'imported').get(u'name'),var.get(u'importName'))):
            return var.get(u'true')
        return Js(False)
    PyJsHoisted_referencesImport_.func_name = u'referencesImport'
    var.put(u'referencesImport', PyJsHoisted_referencesImport_)
    @Js
    def PyJsHoisted__guessExecutionStatusRelativeToDifferentFunctions_(targetFuncParent, this, arguments, var=var):
        var = Scope({u'this':this, u'targetFuncParent':targetFuncParent, u'arguments':arguments}, var)
        var.registers([u'status', u'targetFuncPath', u'referencePaths', u'_iterator', u'_isArray2', u'binding', u'_isArray', u'_i2', u'childOfFunction', u'targetFuncParent', u'_i', u'_path', u'path', u'_ref', u'_ref2', u'allStatus', u'_iterator2'])
        var.put(u'targetFuncPath', var.get(u'targetFuncParent').get(u'path'))
        if var.get(u'targetFuncPath').callprop(u'isFunctionDeclaration').neg():
            return var.get('undefined')
        var.put(u'binding', var.get(u'targetFuncPath').get(u'scope').callprop(u'getBinding', var.get(u'targetFuncPath').get(u'node').get(u'id').get(u'name')))
        if var.get(u'binding').get(u'references').neg():
            return Js(u'before')
        var.put(u'referencePaths', var.get(u'binding').get(u'referencePaths'))
        #for JS loop
        var.put(u'_iterator', var.get(u'referencePaths'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'path', var.get(u'_ref'))
            if (PyJsStrictNeq(var.get(u'path').get(u'key'),Js(u'callee')) or var.get(u'path').get(u'parentPath').callprop(u'isCallExpression').neg()):
                return var.get('undefined')
        
        var.put(u'allStatus', PyJsComma(Js(0.0), Js(None)))
        #for JS loop
        var.put(u'_iterator2', var.get(u'referencePaths'))
        var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
        var.put(u'_i2', Js(0.0))
        var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
        while 1:
            pass
            if var.get(u'_isArray2'):
                if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                    break
                var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                if var.get(u'_i2').get(u'done'):
                    break
                var.put(u'_ref2', var.get(u'_i2').get(u'value'))
            var.put(u'_path', var.get(u'_ref2'))
            @Js
            def PyJs_anonymous_2009_(path, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                var.registers([u'path'])
                return PyJsStrictEq(var.get(u'path').get(u'node'),var.get(u'targetFuncPath').get(u'node'))
            PyJs_anonymous_2009_._set_name(u'anonymous')
            var.put(u'childOfFunction', var.get(u'_path').callprop(u'find', PyJs_anonymous_2009_).neg().neg())
            if var.get(u'childOfFunction'):
                continue
            var.put(u'status', var.get(u"this").callprop(u'_guessExecutionStatusRelativeTo', var.get(u'_path')))
            if var.get(u'allStatus'):
                if PyJsStrictNeq(var.get(u'allStatus'),var.get(u'status')):
                    return var.get('undefined')
            else:
                var.put(u'allStatus', var.get(u'status'))
        
        return var.get(u'allStatus')
    PyJsHoisted__guessExecutionStatusRelativeToDifferentFunctions_.func_name = u'_guessExecutionStatusRelativeToDifferentFunctions'
    var.put(u'_guessExecutionStatusRelativeToDifferentFunctions', PyJsHoisted__guessExecutionStatusRelativeToDifferentFunctions_)
    @Js
    def PyJsHoisted_canSwapBetweenExpressionAndStatement_(replacement, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'replacement':replacement}, var)
        var.registers([u'replacement'])
        if (PyJsStrictNeq(var.get(u"this").get(u'key'),Js(u'body')) or var.get(u"this").get(u'parentPath').callprop(u'isArrowFunctionExpression').neg()):
            return Js(False)
        if var.get(u"this").callprop(u'isExpression'):
            return var.get(u't').callprop(u'isBlockStatement', var.get(u'replacement'))
        else:
            if var.get(u"this").callprop(u'isBlockStatement'):
                return var.get(u't').callprop(u'isExpression', var.get(u'replacement'))
        return Js(False)
    PyJsHoisted_canSwapBetweenExpressionAndStatement_.func_name = u'canSwapBetweenExpressionAndStatement'
    var.put(u'canSwapBetweenExpressionAndStatement', PyJsHoisted_canSwapBetweenExpressionAndStatement_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'is', var.get(u'undefined'))
    var.put(u'_typeof2', var.get(u'require')(Js(u'babel-runtime/helpers/typeof')))
    var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'matchesPattern', var.get(u'matchesPattern'))
    var.get(u'exports').put(u'has', var.get(u'has'))
    var.get(u'exports').put(u'isStatic', var.get(u'isStatic'))
    var.get(u'exports').put(u'isnt', var.get(u'isnt'))
    var.get(u'exports').put(u'equals', var.get(u'equals'))
    var.get(u'exports').put(u'isNodeType', var.get(u'isNodeType'))
    var.get(u'exports').put(u'canHaveVariableDeclarationOrExpression', var.get(u'canHaveVariableDeclarationOrExpression'))
    var.get(u'exports').put(u'canSwapBetweenExpressionAndStatement', var.get(u'canSwapBetweenExpressionAndStatement'))
    var.get(u'exports').put(u'isCompletionRecord', var.get(u'isCompletionRecord'))
    var.get(u'exports').put(u'isStatementOrBlock', var.get(u'isStatementOrBlock'))
    var.get(u'exports').put(u'referencesImport', var.get(u'referencesImport'))
    var.get(u'exports').put(u'getSource', var.get(u'getSource'))
    var.get(u'exports').put(u'willIMaybeExecuteBefore', var.get(u'willIMaybeExecuteBefore'))
    var.get(u'exports').put(u'_guessExecutionStatusRelativeTo', var.get(u'_guessExecutionStatusRelativeTo'))
    var.get(u'exports').put(u'_guessExecutionStatusRelativeToDifferentFunctions', var.get(u'_guessExecutionStatusRelativeToDifferentFunctions'))
    var.get(u'exports').put(u'resolve', var.get(u'resolve'))
    var.get(u'exports').put(u'_resolve', var.get(u'_resolve'))
    var.put(u'_includes', var.get(u'require')(Js(u'lodash/includes')))
    var.put(u'_includes2', var.get(u'_interopRequireDefault')(var.get(u'_includes')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    pass
    var.put(u'is', var.get(u'exports').put(u'is', var.get(u'has')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_2006_._set_name(u'anonymous')
PyJs_Object_2016_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/helpers/typeof':Js(114.0),u'babel-types':Js(258.0),u'lodash/includes':Js(456.0)})
@Js
def PyJs_anonymous_2017_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_classCallCheck2', u'PathHoister', u'_interopRequireWildcard', u'require', u'_babelTypes', u'module', u'referenceVisitor', u't', u'_interopRequireDefault', u'_classCallCheck3', u'_getIterator3', u'_getIterator2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2019_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2019_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2018_ = Js({})
            var.put(u'newObj', PyJs_Object_2018_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    @Js
    def PyJs_ReferencedIdentifier_2021_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_2021_, u'arguments':arguments}, var)
        var.registers([u'_isArray', u'_iterator', u'binding', u'violationPath', u'state', u'_i', u'path', u'_ref'])
        if (var.get(u'path').callprop(u'isJSXIdentifier') and var.get(u'_babelTypes').get(u'react').callprop(u'isCompatTag', var.get(u'path').get(u'node').get(u'name'))):
            return var.get('undefined')
        var.put(u'binding', var.get(u'path').get(u'scope').callprop(u'getBinding', var.get(u'path').get(u'node').get(u'name')))
        if var.get(u'binding').neg():
            return var.get('undefined')
        if PyJsStrictNeq(var.get(u'binding'),var.get(u'state').get(u'scope').callprop(u'getBinding', var.get(u'path').get(u'node').get(u'name'))):
            return var.get('undefined')
        if var.get(u'binding').get(u'constant'):
            var.get(u'state').get(u'bindings').put(var.get(u'path').get(u'node').get(u'name'), var.get(u'binding'))
        else:
            #for JS loop
            var.put(u'_iterator', var.get(u'binding').get(u'constantViolations'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'violationPath', var.get(u'_ref'))
                var.get(u'state').put(u'breakOnScopePaths', var.get(u'state').get(u'breakOnScopePaths').callprop(u'concat', var.get(u'violationPath').callprop(u'getAncestry')))
            
    PyJs_ReferencedIdentifier_2021_._set_name(u'ReferencedIdentifier')
    PyJs_Object_2020_ = Js({u'ReferencedIdentifier':PyJs_ReferencedIdentifier_2021_})
    var.put(u'referenceVisitor', PyJs_Object_2020_)
    @Js
    def PyJs_anonymous_2022_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'PathHoister'])
        @Js
        def PyJsHoisted_PathHoister_(path, scope, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'scope':scope}, var)
            var.registers([u'path', u'scope'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'PathHoister'))
            var.get(u"this").put(u'breakOnScopePaths', Js([]))
            PyJs_Object_2023_ = Js({})
            var.get(u"this").put(u'bindings', PyJs_Object_2023_)
            var.get(u"this").put(u'scopes', Js([]))
            var.get(u"this").put(u'scope', var.get(u'scope'))
            var.get(u"this").put(u'path', var.get(u'path'))
        PyJsHoisted_PathHoister_.func_name = u'PathHoister'
        var.put(u'PathHoister', PyJsHoisted_PathHoister_)
        pass
        @Js
        def PyJs_isCompatibleScope_2024_(scope, this, arguments, var=var):
            var = Scope({u'this':this, u'scope':scope, u'arguments':arguments, u'isCompatibleScope':PyJs_isCompatibleScope_2024_}, var)
            var.registers([u'scope', u'binding', u'key'])
            for PyJsTemp in var.get(u"this").get(u'bindings'):
                var.put(u'key', PyJsTemp)
                var.put(u'binding', var.get(u"this").get(u'bindings').get(var.get(u'key')))
                if var.get(u'scope').callprop(u'bindingIdentifierEquals', var.get(u'key'), var.get(u'binding').get(u'identifier')).neg():
                    return Js(False)
            return var.get(u'true')
        PyJs_isCompatibleScope_2024_._set_name(u'isCompatibleScope')
        var.get(u'PathHoister').get(u'prototype').put(u'isCompatibleScope', PyJs_isCompatibleScope_2024_)
        @Js
        def PyJs_getCompatibleScopes_2025_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'getCompatibleScopes':PyJs_getCompatibleScopes_2025_}, var)
            var.registers([u'scope'])
            var.put(u'scope', var.get(u"this").get(u'path').get(u'scope'))
            while 1:
                if var.get(u"this").callprop(u'isCompatibleScope', var.get(u'scope')):
                    var.get(u"this").get(u'scopes').callprop(u'push', var.get(u'scope'))
                else:
                    break
                if (var.get(u"this").get(u'breakOnScopePaths').callprop(u'indexOf', var.get(u'scope').get(u'path'))>=Js(0.0)):
                    break
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
        PyJs_getCompatibleScopes_2025_._set_name(u'getCompatibleScopes')
        var.get(u'PathHoister').get(u'prototype').put(u'getCompatibleScopes', PyJs_getCompatibleScopes_2025_)
        @Js
        def PyJs_getAttachmentPath_2026_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'getAttachmentPath':PyJs_getAttachmentPath_2026_}, var)
            var.registers([u'path', u'binding', u'name', u'targetScope'])
            var.put(u'path', var.get(u"this").callprop(u'_getAttachmentPath'))
            if var.get(u'path').neg():
                return var.get('undefined')
            var.put(u'targetScope', var.get(u'path').get(u'scope'))
            if PyJsStrictEq(var.get(u'targetScope').get(u'path'),var.get(u'path')):
                var.put(u'targetScope', var.get(u'path').get(u'scope').get(u'parent'))
            if (var.get(u'targetScope').get(u'path').callprop(u'isProgram') or var.get(u'targetScope').get(u'path').callprop(u'isFunction')):
                for PyJsTemp in var.get(u"this").get(u'bindings'):
                    var.put(u'name', PyJsTemp)
                    if var.get(u'targetScope').callprop(u'hasOwnBinding', var.get(u'name')).neg():
                        continue
                    var.put(u'binding', var.get(u"this").get(u'bindings').get(var.get(u'name')))
                    if PyJsStrictEq(var.get(u'binding').get(u'kind'),Js(u'param')):
                        continue
                    if (var.get(u'binding').get(u'path').callprop(u'getStatementParent').get(u'key')>var.get(u'path').get(u'key')):
                        return var.get('undefined')
            return var.get(u'path')
        PyJs_getAttachmentPath_2026_._set_name(u'getAttachmentPath')
        var.get(u'PathHoister').get(u'prototype').put(u'getAttachmentPath', PyJs_getAttachmentPath_2026_)
        @Js
        def PyJs__getAttachmentPath_2027_(this, arguments, var=var):
            var = Scope({u'this':this, u'_getAttachmentPath':PyJs__getAttachmentPath_2027_, u'arguments':arguments}, var)
            var.registers([u'scopes', u'scope'])
            var.put(u'scopes', var.get(u"this").get(u'scopes'))
            var.put(u'scope', var.get(u'scopes').callprop(u'pop'))
            if var.get(u'scope').neg():
                return var.get('undefined')
            if var.get(u'scope').get(u'path').callprop(u'isFunction'):
                if var.get(u"this").callprop(u'hasOwnParamBindings', var.get(u'scope')):
                    if PyJsStrictEq(var.get(u"this").get(u'scope'),var.get(u'scope')):
                        return var.get('undefined')
                    return var.get(u'scope').get(u'path').callprop(u'get', Js(u'body')).callprop(u'get', Js(u'body')).get(u'0')
                else:
                    return var.get(u"this").callprop(u'getNextScopeStatementParent')
            else:
                if var.get(u'scope').get(u'path').callprop(u'isProgram'):
                    return var.get(u"this").callprop(u'getNextScopeStatementParent')
        PyJs__getAttachmentPath_2027_._set_name(u'_getAttachmentPath')
        var.get(u'PathHoister').get(u'prototype').put(u'_getAttachmentPath', PyJs__getAttachmentPath_2027_)
        @Js
        def PyJs_getNextScopeStatementParent_2028_(this, arguments, var=var):
            var = Scope({u'this':this, u'getNextScopeStatementParent':PyJs_getNextScopeStatementParent_2028_, u'arguments':arguments}, var)
            var.registers([u'scope'])
            var.put(u'scope', var.get(u"this").get(u'scopes').callprop(u'pop'))
            if var.get(u'scope'):
                return var.get(u'scope').get(u'path').callprop(u'getStatementParent')
        PyJs_getNextScopeStatementParent_2028_._set_name(u'getNextScopeStatementParent')
        var.get(u'PathHoister').get(u'prototype').put(u'getNextScopeStatementParent', PyJs_getNextScopeStatementParent_2028_)
        @Js
        def PyJs_hasOwnParamBindings_2029_(scope, this, arguments, var=var):
            var = Scope({u'this':this, u'scope':scope, u'arguments':arguments, u'hasOwnParamBindings':PyJs_hasOwnParamBindings_2029_}, var)
            var.registers([u'scope', u'binding', u'name'])
            for PyJsTemp in var.get(u"this").get(u'bindings'):
                var.put(u'name', PyJsTemp)
                if var.get(u'scope').callprop(u'hasOwnBinding', var.get(u'name')).neg():
                    continue
                var.put(u'binding', var.get(u"this").get(u'bindings').get(var.get(u'name')))
                if PyJsStrictEq(var.get(u'binding').get(u'kind'),Js(u'param')):
                    return var.get(u'true')
            return Js(False)
        PyJs_hasOwnParamBindings_2029_._set_name(u'hasOwnParamBindings')
        var.get(u'PathHoister').get(u'prototype').put(u'hasOwnParamBindings', PyJs_hasOwnParamBindings_2029_)
        @Js
        def PyJs_run_2030_(this, arguments, var=var):
            var = Scope({u'this':this, u'run':PyJs_run_2030_, u'arguments':arguments}, var)
            var.registers([u'node', u'attachTo', u'uid', u'parent'])
            var.put(u'node', var.get(u"this").get(u'path').get(u'node'))
            if var.get(u'node').get(u'_hoisted'):
                return var.get('undefined')
            var.get(u'node').put(u'_hoisted', var.get(u'true'))
            var.get(u"this").get(u'path').callprop(u'traverse', var.get(u'referenceVisitor'), var.get(u"this"))
            var.get(u"this").callprop(u'getCompatibleScopes')
            var.put(u'attachTo', var.get(u"this").callprop(u'getAttachmentPath'))
            if var.get(u'attachTo').neg():
                return var.get('undefined')
            if PyJsStrictEq(var.get(u'attachTo').callprop(u'getFunctionParent'),var.get(u"this").get(u'path').callprop(u'getFunctionParent')):
                return var.get('undefined')
            var.put(u'uid', var.get(u'attachTo').get(u'scope').callprop(u'generateUidIdentifier', Js(u'ref')))
            var.get(u'attachTo').callprop(u'insertBefore', Js([var.get(u't').callprop(u'variableDeclaration', Js(u'var'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u'uid'), var.get(u"this").get(u'path').get(u'node'))]))]))
            var.put(u'parent', var.get(u"this").get(u'path').get(u'parentPath'))
            if (var.get(u'parent').callprop(u'isJSXElement') and PyJsStrictEq(var.get(u"this").get(u'path').get(u'container'),var.get(u'parent').get(u'node').get(u'children'))):
                var.put(u'uid', var.get(u't').callprop(u'JSXExpressionContainer', var.get(u'uid')))
            var.get(u"this").get(u'path').callprop(u'replaceWith', var.get(u'uid'))
        PyJs_run_2030_._set_name(u'run')
        var.get(u'PathHoister').get(u'prototype').put(u'run', PyJs_run_2030_)
        return var.get(u'PathHoister')
    PyJs_anonymous_2022_._set_name(u'anonymous')
    var.put(u'PathHoister', PyJs_anonymous_2022_())
    var.get(u'exports').put(u'default', var.get(u'PathHoister'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_2017_._set_name(u'anonymous')
PyJs_Object_2031_ = Js({u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_2032_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'hooks', u'require', u'exports', u'module'])
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    @Js
    def PyJs_anonymous_2033_(self, parent, this, arguments, var=var):
        var = Scope({u'this':this, u'self':self, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'self', u'parent'])
        if (PyJsStrictEq(var.get(u'self').get(u'key'),Js(u'body')) and var.get(u'parent').callprop(u'isArrowFunctionExpression')):
            var.get(u'self').callprop(u'replaceWith', var.get(u'self').get(u'scope').callprop(u'buildUndefinedNode'))
            return var.get(u'true')
    PyJs_anonymous_2033_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_2034_(self, parent, this, arguments, var=var):
        var = Scope({u'this':this, u'self':self, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'self', u'removeParent', u'parent'])
        var.put(u'removeParent', Js(False))
        var.put(u'removeParent', (var.get(u'removeParent') or (PyJsStrictEq(var.get(u'self').get(u'key'),Js(u'test')) and (var.get(u'parent').callprop(u'isWhile') or var.get(u'parent').callprop(u'isSwitchCase')))))
        var.put(u'removeParent', (var.get(u'removeParent') or (PyJsStrictEq(var.get(u'self').get(u'key'),Js(u'declaration')) and var.get(u'parent').callprop(u'isExportDeclaration'))))
        var.put(u'removeParent', (var.get(u'removeParent') or (PyJsStrictEq(var.get(u'self').get(u'key'),Js(u'body')) and var.get(u'parent').callprop(u'isLabeledStatement'))))
        var.put(u'removeParent', (var.get(u'removeParent') or ((PyJsStrictEq(var.get(u'self').get(u'listKey'),Js(u'declarations')) and var.get(u'parent').callprop(u'isVariableDeclaration')) and PyJsStrictEq(var.get(u'parent').get(u'node').get(u'declarations').get(u'length'),Js(1.0)))))
        var.put(u'removeParent', (var.get(u'removeParent') or (PyJsStrictEq(var.get(u'self').get(u'key'),Js(u'expression')) and var.get(u'parent').callprop(u'isExpressionStatement'))))
        if var.get(u'removeParent'):
            var.get(u'parent').callprop(u'remove')
            return var.get(u'true')
    PyJs_anonymous_2034_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_2035_(self, parent, this, arguments, var=var):
        var = Scope({u'this':this, u'self':self, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'self', u'parent'])
        if (var.get(u'parent').callprop(u'isSequenceExpression') and PyJsStrictEq(var.get(u'parent').get(u'node').get(u'expressions').get(u'length'),Js(1.0))):
            var.get(u'parent').callprop(u'replaceWith', var.get(u'parent').get(u'node').get(u'expressions').get(u'0'))
            return var.get(u'true')
    PyJs_anonymous_2035_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_2036_(self, parent, this, arguments, var=var):
        var = Scope({u'this':this, u'self':self, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'self', u'parent'])
        if var.get(u'parent').callprop(u'isBinary'):
            if PyJsStrictEq(var.get(u'self').get(u'key'),Js(u'left')):
                var.get(u'parent').callprop(u'replaceWith', var.get(u'parent').get(u'node').get(u'right'))
            else:
                var.get(u'parent').callprop(u'replaceWith', var.get(u'parent').get(u'node').get(u'left'))
            return var.get(u'true')
    PyJs_anonymous_2036_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_2037_(self, parent, this, arguments, var=var):
        var = Scope({u'this':this, u'self':self, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'self', u'parent'])
        if ((var.get(u'parent').callprop(u'isIfStatement') and (PyJsStrictEq(var.get(u'self').get(u'key'),Js(u'consequent')) or PyJsStrictEq(var.get(u'self').get(u'key'),Js(u'alternate')))) or (var.get(u'parent').callprop(u'isLoop') and PyJsStrictEq(var.get(u'self').get(u'key'),Js(u'body')))):
            PyJs_Object_2038_ = Js({u'type':Js(u'BlockStatement'),u'body':Js([])})
            var.get(u'self').callprop(u'replaceWith', PyJs_Object_2038_)
            return var.get(u'true')
    PyJs_anonymous_2037_._set_name(u'anonymous')
    var.put(u'hooks', var.get(u'exports').put(u'hooks', Js([PyJs_anonymous_2033_, PyJs_anonymous_2034_, PyJs_anonymous_2035_, PyJs_anonymous_2036_, PyJs_anonymous_2037_])))
PyJs_anonymous_2032_._set_name(u'anonymous')
PyJs_Object_2039_ = Js({})
@Js
def PyJs_anonymous_2040_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'Referenced', u'ReferencedIdentifier', u'Pure', u'_interopRequireWildcard', u'require', u'_babelTypes', u'Flow', u'module', u'ReferencedMemberExpression', u'BlockScoped', u'Generated', u'User', u't', u'Statement', u'Var', u'Scope', u'Expression', u'BindingIdentifier'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2042_ = Js({})
            var.put(u'newObj', PyJs_Object_2042_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    def PyJs_LONG_2041_(var=var):
        return var.get(u'exports').put(u'Var', var.get(u'exports').put(u'BlockScoped', var.get(u'exports').put(u'Referenced', var.get(u'exports').put(u'Scope', var.get(u'exports').put(u'Expression', var.get(u'exports').put(u'Statement', var.get(u'exports').put(u'BindingIdentifier', var.get(u'exports').put(u'ReferencedMemberExpression', var.get(u'exports').put(u'ReferencedIdentifier', var.get(u'undefined'))))))))))
    var.get(u'exports').put(u'Flow', var.get(u'exports').put(u'Pure', var.get(u'exports').put(u'Generated', var.get(u'exports').put(u'User', PyJs_LONG_2041_()))))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    @Js
    def PyJs_checkPath_2044_(_ref, opts, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'checkPath':PyJs_checkPath_2044_, u'arguments':arguments, u'opts':opts}, var)
        var.registers([u'node', u'_ref', u'opts', u'parent'])
        var.put(u'node', var.get(u'_ref').get(u'node'))
        var.put(u'parent', var.get(u'_ref').get(u'parent'))
        if (var.get(u't').callprop(u'isIdentifier', var.get(u'node'), var.get(u'opts')).neg() and var.get(u't').callprop(u'isJSXMemberExpression', var.get(u'parent'), var.get(u'opts')).neg()):
            if var.get(u't').callprop(u'isJSXIdentifier', var.get(u'node'), var.get(u'opts')):
                if var.get(u'_babelTypes').get(u'react').callprop(u'isCompatTag', var.get(u'node').get(u'name')):
                    return Js(False)
            else:
                return Js(False)
        return var.get(u't').callprop(u'isReferenced', var.get(u'node'), var.get(u'parent'))
    PyJs_checkPath_2044_._set_name(u'checkPath')
    PyJs_Object_2043_ = Js({u'types':Js([Js(u'Identifier'), Js(u'JSXIdentifier')]),u'checkPath':PyJs_checkPath_2044_})
    var.put(u'ReferencedIdentifier', var.get(u'exports').put(u'ReferencedIdentifier', PyJs_Object_2043_))
    @Js
    def PyJs_checkPath_2046_(_ref2, this, arguments, var=var):
        var = Scope({u'this':this, u'checkPath':PyJs_checkPath_2046_, u'_ref2':_ref2, u'arguments':arguments}, var)
        var.registers([u'node', u'_ref2', u'parent'])
        var.put(u'node', var.get(u'_ref2').get(u'node'))
        var.put(u'parent', var.get(u'_ref2').get(u'parent'))
        return (var.get(u't').callprop(u'isMemberExpression', var.get(u'node')) and var.get(u't').callprop(u'isReferenced', var.get(u'node'), var.get(u'parent')))
    PyJs_checkPath_2046_._set_name(u'checkPath')
    PyJs_Object_2045_ = Js({u'types':Js([Js(u'MemberExpression')]),u'checkPath':PyJs_checkPath_2046_})
    var.put(u'ReferencedMemberExpression', var.get(u'exports').put(u'ReferencedMemberExpression', PyJs_Object_2045_))
    @Js
    def PyJs_checkPath_2048_(_ref3, this, arguments, var=var):
        var = Scope({u'this':this, u'checkPath':PyJs_checkPath_2048_, u'_ref3':_ref3, u'arguments':arguments}, var)
        var.registers([u'node', u'_ref3', u'parent'])
        var.put(u'node', var.get(u'_ref3').get(u'node'))
        var.put(u'parent', var.get(u'_ref3').get(u'parent'))
        return (var.get(u't').callprop(u'isIdentifier', var.get(u'node')) and var.get(u't').callprop(u'isBinding', var.get(u'node'), var.get(u'parent')))
    PyJs_checkPath_2048_._set_name(u'checkPath')
    PyJs_Object_2047_ = Js({u'types':Js([Js(u'Identifier')]),u'checkPath':PyJs_checkPath_2048_})
    var.put(u'BindingIdentifier', var.get(u'exports').put(u'BindingIdentifier', PyJs_Object_2047_))
    @Js
    def PyJs_checkPath_2050_(_ref4, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref4':_ref4, u'checkPath':PyJs_checkPath_2050_, u'arguments':arguments}, var)
        var.registers([u'node', u'_ref4', u'parent'])
        var.put(u'node', var.get(u'_ref4').get(u'node'))
        var.put(u'parent', var.get(u'_ref4').get(u'parent'))
        if var.get(u't').callprop(u'isStatement', var.get(u'node')):
            if var.get(u't').callprop(u'isVariableDeclaration', var.get(u'node')):
                PyJs_Object_2051_ = Js({u'left':var.get(u'node')})
                if var.get(u't').callprop(u'isForXStatement', var.get(u'parent'), PyJs_Object_2051_):
                    return Js(False)
                PyJs_Object_2052_ = Js({u'init':var.get(u'node')})
                if var.get(u't').callprop(u'isForStatement', var.get(u'parent'), PyJs_Object_2052_):
                    return Js(False)
            return var.get(u'true')
        else:
            return Js(False)
    PyJs_checkPath_2050_._set_name(u'checkPath')
    PyJs_Object_2049_ = Js({u'types':Js([Js(u'Statement')]),u'checkPath':PyJs_checkPath_2050_})
    var.put(u'Statement', var.get(u'exports').put(u'Statement', PyJs_Object_2049_))
    @Js
    def PyJs_checkPath_2054_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'checkPath':PyJs_checkPath_2054_, u'arguments':arguments}, var)
        var.registers([u'path'])
        if var.get(u'path').callprop(u'isIdentifier'):
            return var.get(u'path').callprop(u'isReferencedIdentifier')
        else:
            return var.get(u't').callprop(u'isExpression', var.get(u'path').get(u'node'))
    PyJs_checkPath_2054_._set_name(u'checkPath')
    PyJs_Object_2053_ = Js({u'types':Js([Js(u'Expression')]),u'checkPath':PyJs_checkPath_2054_})
    var.put(u'Expression', var.get(u'exports').put(u'Expression', PyJs_Object_2053_))
    @Js
    def PyJs_checkPath_2056_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'checkPath':PyJs_checkPath_2056_, u'arguments':arguments}, var)
        var.registers([u'path'])
        return var.get(u't').callprop(u'isScope', var.get(u'path').get(u'node'), var.get(u'path').get(u'parent'))
    PyJs_checkPath_2056_._set_name(u'checkPath')
    PyJs_Object_2055_ = Js({u'types':Js([Js(u'Scopable')]),u'checkPath':PyJs_checkPath_2056_})
    var.put(u'Scope', var.get(u'exports').put(u'Scope', PyJs_Object_2055_))
    @Js
    def PyJs_checkPath_2058_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'checkPath':PyJs_checkPath_2058_, u'arguments':arguments}, var)
        var.registers([u'path'])
        return var.get(u't').callprop(u'isReferenced', var.get(u'path').get(u'node'), var.get(u'path').get(u'parent'))
    PyJs_checkPath_2058_._set_name(u'checkPath')
    PyJs_Object_2057_ = Js({u'checkPath':PyJs_checkPath_2058_})
    var.put(u'Referenced', var.get(u'exports').put(u'Referenced', PyJs_Object_2057_))
    @Js
    def PyJs_checkPath_2060_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'checkPath':PyJs_checkPath_2060_, u'arguments':arguments}, var)
        var.registers([u'path'])
        return var.get(u't').callprop(u'isBlockScoped', var.get(u'path').get(u'node'))
    PyJs_checkPath_2060_._set_name(u'checkPath')
    PyJs_Object_2059_ = Js({u'checkPath':PyJs_checkPath_2060_})
    var.put(u'BlockScoped', var.get(u'exports').put(u'BlockScoped', PyJs_Object_2059_))
    @Js
    def PyJs_checkPath_2062_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'checkPath':PyJs_checkPath_2062_, u'arguments':arguments}, var)
        var.registers([u'path'])
        return var.get(u't').callprop(u'isVar', var.get(u'path').get(u'node'))
    PyJs_checkPath_2062_._set_name(u'checkPath')
    PyJs_Object_2061_ = Js({u'types':Js([Js(u'VariableDeclaration')]),u'checkPath':PyJs_checkPath_2062_})
    var.put(u'Var', var.get(u'exports').put(u'Var', PyJs_Object_2061_))
    @Js
    def PyJs_checkPath_2064_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'checkPath':PyJs_checkPath_2064_, u'arguments':arguments}, var)
        var.registers([u'path'])
        return (var.get(u'path').get(u'node') and var.get(u'path').get(u'node').get(u'loc').neg().neg())
    PyJs_checkPath_2064_._set_name(u'checkPath')
    PyJs_Object_2063_ = Js({u'checkPath':PyJs_checkPath_2064_})
    var.put(u'User', var.get(u'exports').put(u'User', PyJs_Object_2063_))
    @Js
    def PyJs_checkPath_2066_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'checkPath':PyJs_checkPath_2066_, u'arguments':arguments}, var)
        var.registers([u'path'])
        return var.get(u'path').callprop(u'isUser').neg()
    PyJs_checkPath_2066_._set_name(u'checkPath')
    PyJs_Object_2065_ = Js({u'checkPath':PyJs_checkPath_2066_})
    var.put(u'Generated', var.get(u'exports').put(u'Generated', PyJs_Object_2065_))
    @Js
    def PyJs_checkPath_2068_(path, opts, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'checkPath':PyJs_checkPath_2068_, u'arguments':arguments, u'opts':opts}, var)
        var.registers([u'path', u'opts'])
        return var.get(u'path').get(u'scope').callprop(u'isPure', var.get(u'path').get(u'node'), var.get(u'opts'))
    PyJs_checkPath_2068_._set_name(u'checkPath')
    PyJs_Object_2067_ = Js({u'checkPath':PyJs_checkPath_2068_})
    var.put(u'Pure', var.get(u'exports').put(u'Pure', PyJs_Object_2067_))
    @Js
    def PyJs_checkPath_2070_(_ref5, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref5':_ref5, u'checkPath':PyJs_checkPath_2070_, u'arguments':arguments}, var)
        var.registers([u'node', u'_ref5'])
        var.put(u'node', var.get(u'_ref5').get(u'node'))
        if var.get(u't').callprop(u'isFlow', var.get(u'node')):
            return var.get(u'true')
        else:
            if var.get(u't').callprop(u'isImportDeclaration', var.get(u'node')):
                return (PyJsStrictEq(var.get(u'node').get(u'importKind'),Js(u'type')) or PyJsStrictEq(var.get(u'node').get(u'importKind'),Js(u'typeof')))
            else:
                if var.get(u't').callprop(u'isExportDeclaration', var.get(u'node')):
                    return PyJsStrictEq(var.get(u'node').get(u'exportKind'),Js(u'type'))
                else:
                    return Js(False)
    PyJs_checkPath_2070_._set_name(u'checkPath')
    PyJs_Object_2069_ = Js({u'types':Js([Js(u'Flow'), Js(u'ImportDeclaration'), Js(u'ExportDeclaration')]),u'checkPath':PyJs_checkPath_2070_})
    var.put(u'Flow', var.get(u'exports').put(u'Flow', PyJs_Object_2069_))
PyJs_anonymous_2040_._set_name(u'anonymous')
PyJs_Object_2071_ = Js({u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_2072_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_hoister', u'updateSiblingKeys', u'_verifyNodeList', u'_interopRequireDefault', u'_cache', u'_getIterator2', u'_getIterator3', u'_maybePopFromStatements', u'_typeof2', u'_typeof3', u'_interopRequireWildcard', u'unshiftContainer', u'insertAfter', u'exports', u'pushContainer', u'insertBefore', u'_babelTypes', u'hoist', u'module', u'_index2', u'_index', u'require', u'_containerInsert', u'_containerInsertBefore', u't', u'_containerInsertAfter', u'_hoister2'])
    @Js
    def PyJsHoisted_pushContainer_(listKey, nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'listKey':listKey, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'path', u'listKey', u'container', u'nodes'])
        var.get(u"this").callprop(u'_assertUnremoved')
        var.put(u'nodes', var.get(u"this").callprop(u'_verifyNodeList', var.get(u'nodes')))
        var.put(u'container', var.get(u"this").get(u'node').get(var.get(u'listKey')))
        PyJs_Object_2078_ = Js({u'parentPath':var.get(u"this"),u'parent':var.get(u"this").get(u'node'),u'container':var.get(u'container'),u'listKey':var.get(u'listKey'),u'key':var.get(u'container').get(u'length')})
        var.put(u'path', var.get(u'_index2').get(u'default').callprop(u'get', PyJs_Object_2078_))
        return var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'nodes'))
    PyJsHoisted_pushContainer_.func_name = u'pushContainer'
    var.put(u'pushContainer', PyJsHoisted_pushContainer_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2073_ = Js({})
            var.put(u'newObj', PyJs_Object_2073_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_insertBefore_(nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'nodes'])
        var.get(u"this").callprop(u'_assertUnremoved')
        var.put(u'nodes', var.get(u"this").callprop(u'_verifyNodeList', var.get(u'nodes')))
        if (var.get(u"this").get(u'parentPath').callprop(u'isExpressionStatement') or var.get(u"this").get(u'parentPath').callprop(u'isLabeledStatement')):
            return var.get(u"this").get(u'parentPath').callprop(u'insertBefore', var.get(u'nodes'))
        else:
            if (var.get(u"this").callprop(u'isNodeType', Js(u'Expression')) or (var.get(u"this").get(u'parentPath').callprop(u'isForStatement') and PyJsStrictEq(var.get(u"this").get(u'key'),Js(u'init')))):
                if var.get(u"this").get(u'node'):
                    var.get(u'nodes').callprop(u'push', var.get(u"this").get(u'node'))
                var.get(u"this").callprop(u'replaceExpressionWithStatements', var.get(u'nodes'))
            else:
                var.get(u"this").callprop(u'_maybePopFromStatements', var.get(u'nodes'))
                if var.get(u'Array').callprop(u'isArray', var.get(u"this").get(u'container')):
                    return var.get(u"this").callprop(u'_containerInsertBefore', var.get(u'nodes'))
                else:
                    if var.get(u"this").callprop(u'isStatementOrBlock'):
                        if var.get(u"this").get(u'node'):
                            var.get(u'nodes').callprop(u'push', var.get(u"this").get(u'node'))
                        var.get(u"this").callprop(u'_replaceWith', var.get(u't').callprop(u'blockStatement', var.get(u'nodes')))
                    else:
                        PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"We don't know what to do with this node type. We were previously a Statement but we can't fit in here?")))
                        raise PyJsTempException
        return Js([var.get(u"this")])
    PyJsHoisted_insertBefore_.func_name = u'insertBefore'
    var.put(u'insertBefore', PyJsHoisted_insertBefore_)
    @Js
    def PyJsHoisted__containerInsert_(PyJsArg_66726f6d_, nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'from':PyJsArg_66726f6d_, u'arguments':arguments}, var)
        var.registers([u'node', u'paths', u'_isArray', u'context', u'_iterator', u'_isArray2', u'to', u'i', u'_i2', u'_ref2', u'contexts', u'from', u'_i', u'path', u'_ref', u'_iterator2', u'nodes', u'_path'])
        var.get(u"this").callprop(u'updateSiblingKeys', var.get(u'from'), var.get(u'nodes').get(u'length'))
        var.put(u'paths', Js([]))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'nodes').get(u'length')):
            try:
                var.put(u'to', (var.get(u'from')+var.get(u'i')))
                var.put(u'node', var.get(u'nodes').get(var.get(u'i')))
                var.get(u"this").get(u'container').callprop(u'splice', var.get(u'to'), Js(0.0), var.get(u'node'))
                if var.get(u"this").get(u'context'):
                    var.put(u'path', var.get(u"this").get(u'context').callprop(u'create', var.get(u"this").get(u'parent'), var.get(u"this").get(u'container'), var.get(u'to'), var.get(u"this").get(u'listKey')))
                    if var.get(u"this").get(u'context').get(u'queue'):
                        var.get(u'path').callprop(u'pushContext', var.get(u"this").get(u'context'))
                    var.get(u'paths').callprop(u'push', var.get(u'path'))
                else:
                    PyJs_Object_2075_ = Js({u'parentPath':var.get(u"this").get(u'parentPath'),u'parent':var.get(u"this").get(u'parent'),u'container':var.get(u"this").get(u'container'),u'listKey':var.get(u"this").get(u'listKey'),u'key':var.get(u'to')})
                    var.get(u'paths').callprop(u'push', var.get(u'_index2').get(u'default').callprop(u'get', PyJs_Object_2075_))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        var.put(u'contexts', var.get(u"this").callprop(u'_getQueueContexts'))
        #for JS loop
        var.put(u'_iterator', var.get(u'paths'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'_path', var.get(u'_ref'))
            var.get(u'_path').callprop(u'setScope')
            @Js
            def PyJs_anonymous_2076_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return Js(u'Inserted.')
            PyJs_anonymous_2076_._set_name(u'anonymous')
            var.get(u'_path').callprop(u'debug', PyJs_anonymous_2076_)
            #for JS loop
            var.put(u'_iterator2', var.get(u'contexts'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                var.put(u'context', var.get(u'_ref2'))
                var.get(u'context').callprop(u'maybeQueue', var.get(u'_path'), var.get(u'true'))
            
        
        return var.get(u'paths')
    PyJsHoisted__containerInsert_.func_name = u'_containerInsert'
    var.put(u'_containerInsert', PyJsHoisted__containerInsert_)
    @Js
    def PyJsHoisted_unshiftContainer_(listKey, nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'listKey':listKey, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'path', u'listKey', u'nodes'])
        var.get(u"this").callprop(u'_assertUnremoved')
        var.put(u'nodes', var.get(u"this").callprop(u'_verifyNodeList', var.get(u'nodes')))
        PyJs_Object_2077_ = Js({u'parentPath':var.get(u"this"),u'parent':var.get(u"this").get(u'node'),u'container':var.get(u"this").get(u'node').get(var.get(u'listKey')),u'listKey':var.get(u'listKey'),u'key':Js(0.0)})
        var.put(u'path', var.get(u'_index2').get(u'default').callprop(u'get', PyJs_Object_2077_))
        return var.get(u'path').callprop(u'insertBefore', var.get(u'nodes'))
    PyJsHoisted_unshiftContainer_.func_name = u'unshiftContainer'
    var.put(u'unshiftContainer', PyJsHoisted_unshiftContainer_)
    @Js
    def PyJsHoisted__containerInsertBefore_(nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'nodes'])
        return var.get(u"this").callprop(u'_containerInsert', var.get(u"this").get(u'key'), var.get(u'nodes'))
    PyJsHoisted__containerInsertBefore_.func_name = u'_containerInsertBefore'
    var.put(u'_containerInsertBefore', PyJsHoisted__containerInsertBefore_)
    @Js
    def PyJsHoisted_updateSiblingKeys_(fromIndex, incrementBy, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'fromIndex':fromIndex, u'incrementBy':incrementBy}, var)
        var.registers([u'i', u'paths', u'incrementBy', u'fromIndex', u'path'])
        if var.get(u"this").get(u'parent').neg():
            return var.get('undefined')
        var.put(u'paths', var.get(u'_cache').get(u'path').callprop(u'get', var.get(u"this").get(u'parent')))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'paths').get(u'length')):
            try:
                var.put(u'path', var.get(u'paths').get(var.get(u'i')))
                if (var.get(u'path').get(u'key')>=var.get(u'fromIndex')):
                    var.get(u'path').put(u'key', var.get(u'incrementBy'), u'+')
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
    PyJsHoisted_updateSiblingKeys_.func_name = u'updateSiblingKeys'
    var.put(u'updateSiblingKeys', PyJsHoisted_updateSiblingKeys_)
    @Js
    def PyJsHoisted__verifyNodeList_(nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'i', u'node', u'nodes', u'type', u'msg'])
        if var.get(u'nodes').neg():
            return Js([])
        if PyJsStrictNeq(var.get(u'nodes').get(u'constructor'),var.get(u'Array')):
            var.put(u'nodes', Js([var.get(u'nodes')]))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'nodes').get(u'length')):
            try:
                var.put(u'node', var.get(u'nodes').get(var.get(u'i')))
                var.put(u'msg', PyJsComma(Js(0.0), Js(None)))
                if var.get(u'node').neg():
                    var.put(u'msg', Js(u'has falsy node'))
                else:
                    if PyJsStrictNeq((Js(u'undefined') if PyJsStrictEq(var.get(u'node',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'node'))),Js(u'object')):
                        var.put(u'msg', Js(u'contains a non-object node'))
                    else:
                        if var.get(u'node').get(u'type').neg():
                            var.put(u'msg', Js(u'without a type'))
                        else:
                            if var.get(u'node').instanceof(var.get(u'_index2').get(u'default')):
                                var.put(u'msg', Js(u'has a NodePath when it expected a raw object'))
                if var.get(u'msg'):
                    var.put(u'type', (Js(u'array') if var.get(u'Array').callprop(u'isArray', var.get(u'node')) else (Js(u'undefined') if PyJsStrictEq(var.get(u'node',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'node')))))
                    PyJsTempException = JsToPyException(var.get(u'Error').create((((((Js(u'Node list ')+var.get(u'msg'))+Js(u' with the index of '))+var.get(u'i'))+Js(u' and type of '))+var.get(u'type'))))
                    raise PyJsTempException
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'nodes')
    PyJsHoisted__verifyNodeList_.func_name = u'_verifyNodeList'
    var.put(u'_verifyNodeList', PyJsHoisted__verifyNodeList_)
    @Js
    def PyJsHoisted_insertAfter_(nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'nodes', u'temp'])
        var.get(u"this").callprop(u'_assertUnremoved')
        var.put(u'nodes', var.get(u"this").callprop(u'_verifyNodeList', var.get(u'nodes')))
        if (var.get(u"this").get(u'parentPath').callprop(u'isExpressionStatement') or var.get(u"this").get(u'parentPath').callprop(u'isLabeledStatement')):
            return var.get(u"this").get(u'parentPath').callprop(u'insertAfter', var.get(u'nodes'))
        else:
            if (var.get(u"this").callprop(u'isNodeType', Js(u'Expression')) or (var.get(u"this").get(u'parentPath').callprop(u'isForStatement') and PyJsStrictEq(var.get(u"this").get(u'key'),Js(u'init')))):
                if var.get(u"this").get(u'node'):
                    var.put(u'temp', var.get(u"this").get(u'scope').callprop(u'generateDeclaredUidIdentifier'))
                    var.get(u'nodes').callprop(u'unshift', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'temp'), var.get(u"this").get(u'node'))))
                    var.get(u'nodes').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u'temp')))
                var.get(u"this").callprop(u'replaceExpressionWithStatements', var.get(u'nodes'))
            else:
                var.get(u"this").callprop(u'_maybePopFromStatements', var.get(u'nodes'))
                if var.get(u'Array').callprop(u'isArray', var.get(u"this").get(u'container')):
                    return var.get(u"this").callprop(u'_containerInsertAfter', var.get(u'nodes'))
                else:
                    if var.get(u"this").callprop(u'isStatementOrBlock'):
                        if var.get(u"this").get(u'node'):
                            var.get(u'nodes').callprop(u'unshift', var.get(u"this").get(u'node'))
                        var.get(u"this").callprop(u'_replaceWith', var.get(u't').callprop(u'blockStatement', var.get(u'nodes')))
                    else:
                        PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"We don't know what to do with this node type. We were previously a Statement but we can't fit in here?")))
                        raise PyJsTempException
        return Js([var.get(u"this")])
    PyJsHoisted_insertAfter_.func_name = u'insertAfter'
    var.put(u'insertAfter', PyJsHoisted_insertAfter_)
    @Js
    def PyJsHoisted_hoist_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'scope', u'hoister'])
        var.put(u'scope', (var.get(u'arguments').get(u'0') if ((var.get(u'arguments').get(u'length')>Js(0.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'0'),var.get(u'undefined'))) else var.get(u"this").get(u'scope')))
        var.put(u'hoister', var.get(u'_hoister2').get(u'default').create(var.get(u"this"), var.get(u'scope')))
        return var.get(u'hoister').callprop(u'run')
    PyJsHoisted_hoist_.func_name = u'hoist'
    var.put(u'hoist', PyJsHoisted_hoist_)
    @Js
    def PyJsHoisted__containerInsertAfter_(nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'nodes'])
        return var.get(u"this").callprop(u'_containerInsert', (var.get(u"this").get(u'key')+Js(1.0)), var.get(u'nodes'))
    PyJsHoisted__containerInsertAfter_.func_name = u'_containerInsertAfter'
    var.put(u'_containerInsertAfter', PyJsHoisted__containerInsertAfter_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2074_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2074_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__maybePopFromStatements_(nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'nodes', u'last', u'isIdentifier'])
        var.put(u'last', var.get(u'nodes').get((var.get(u'nodes').get(u'length')-Js(1.0))))
        var.put(u'isIdentifier', (var.get(u't').callprop(u'isIdentifier', var.get(u'last')) or (var.get(u't').callprop(u'isExpressionStatement', var.get(u'last')) and var.get(u't').callprop(u'isIdentifier', var.get(u'last').get(u'expression')))))
        if (var.get(u'isIdentifier') and var.get(u"this").callprop(u'isCompletionRecord').neg()):
            var.get(u'nodes').callprop(u'pop')
    PyJsHoisted__maybePopFromStatements_.func_name = u'_maybePopFromStatements'
    var.put(u'_maybePopFromStatements', PyJsHoisted__maybePopFromStatements_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_typeof2', var.get(u'require')(Js(u'babel-runtime/helpers/typeof')))
    var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'insertBefore', var.get(u'insertBefore'))
    var.get(u'exports').put(u'_containerInsert', var.get(u'_containerInsert'))
    var.get(u'exports').put(u'_containerInsertBefore', var.get(u'_containerInsertBefore'))
    var.get(u'exports').put(u'_containerInsertAfter', var.get(u'_containerInsertAfter'))
    var.get(u'exports').put(u'_maybePopFromStatements', var.get(u'_maybePopFromStatements'))
    var.get(u'exports').put(u'insertAfter', var.get(u'insertAfter'))
    var.get(u'exports').put(u'updateSiblingKeys', var.get(u'updateSiblingKeys'))
    var.get(u'exports').put(u'_verifyNodeList', var.get(u'_verifyNodeList'))
    var.get(u'exports').put(u'unshiftContainer', var.get(u'unshiftContainer'))
    var.get(u'exports').put(u'pushContainer', var.get(u'pushContainer'))
    var.get(u'exports').put(u'hoist', var.get(u'hoist'))
    var.put(u'_cache', var.get(u'require')(Js(u'../cache')))
    var.put(u'_hoister', var.get(u'require')(Js(u'./lib/hoister')))
    var.put(u'_hoister2', var.get(u'_interopRequireDefault')(var.get(u'_hoister')))
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_2072_._set_name(u'anonymous')
PyJs_Object_2079_ = Js({u'../cache':Js(222.0),u'./index':Js(232.0),u'./lib/hoister':Js(237.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/helpers/typeof':Js(114.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_2080_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_assertUnremoved', u'exports', u'require', u'remove', u'_remove', u'_markRemoved', u'module', u'_removalHooks', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'_callRemovalHooks'])
    @Js
    def PyJsHoisted__assertUnremoved_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if var.get(u"this").get(u'removed'):
            PyJsTempException = JsToPyException(var.get(u"this").callprop(u'buildCodeFrameError', Js(u'NodePath has been removed so is read-only.')))
            raise PyJsTempException
    PyJsHoisted__assertUnremoved_.func_name = u'_assertUnremoved'
    var.put(u'_assertUnremoved', PyJsHoisted__assertUnremoved_)
    @Js
    def PyJsHoisted_remove_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").callprop(u'_assertUnremoved')
        var.get(u"this").callprop(u'resync')
        if var.get(u"this").callprop(u'_callRemovalHooks'):
            var.get(u"this").callprop(u'_markRemoved')
            return var.get('undefined')
        var.get(u"this").callprop(u'shareCommentsWithSiblings')
        var.get(u"this").callprop(u'_remove')
        var.get(u"this").callprop(u'_markRemoved')
    PyJsHoisted_remove_.func_name = u'remove'
    var.put(u'remove', PyJsHoisted_remove_)
    @Js
    def PyJsHoisted__remove_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if var.get(u'Array').callprop(u'isArray', var.get(u"this").get(u'container')):
            var.get(u"this").get(u'container').callprop(u'splice', var.get(u"this").get(u'key'), Js(1.0))
            var.get(u"this").callprop(u'updateSiblingKeys', var.get(u"this").get(u'key'), (-Js(1.0)))
        else:
            var.get(u"this").callprop(u'_replaceWith', var.get(u"null"))
    PyJsHoisted__remove_.func_name = u'_remove'
    var.put(u'_remove', PyJsHoisted__remove_)
    @Js
    def PyJsHoisted__markRemoved_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").put(u'shouldSkip', var.get(u'true'))
        var.get(u"this").put(u'removed', var.get(u'true'))
        var.get(u"this").put(u'node', var.get(u"null"))
    PyJsHoisted__markRemoved_.func_name = u'_markRemoved'
    var.put(u'_markRemoved', PyJsHoisted__markRemoved_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2081_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2081_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__callRemovalHooks_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'fn', u'_isArray', u'_iterator', u'_ref', u'_i'])
        #for JS loop
        var.put(u'_iterator', var.get(u'_removalHooks').get(u'hooks'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'fn', var.get(u'_ref'))
            if var.get(u'fn')(var.get(u"this"), var.get(u"this").get(u'parentPath')):
                return var.get(u'true')
        
    PyJsHoisted__callRemovalHooks_.func_name = u'_callRemovalHooks'
    var.put(u'_callRemovalHooks', PyJsHoisted__callRemovalHooks_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'remove', var.get(u'remove'))
    var.get(u'exports').put(u'_callRemovalHooks', var.get(u'_callRemovalHooks'))
    var.get(u'exports').put(u'_remove', var.get(u'_remove'))
    var.get(u'exports').put(u'_markRemoved', var.get(u'_markRemoved'))
    var.get(u'exports').put(u'_assertUnremoved', var.get(u'_assertUnremoved'))
    var.put(u'_removalHooks', var.get(u'require')(Js(u'./lib/removal-hooks')))
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_2080_._set_name(u'anonymous')
PyJs_Object_2082_ = Js({u'./lib/removal-hooks':Js(238.0),u'babel-runtime/core-js/get-iterator':Js(96.0)})
@Js
def PyJs_anonymous_2083_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'replaceExpressionWithStatements', u'module', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'replaceInline', u'replaceWithSourceString', u'_babelCodeFrame2', u'_replaceWith', u'_babylon', u'hoistVariablesVisitor', u'exports', u'_babelTypes', u'_interopRequireWildcard', u'replaceWith', u'_babelCodeFrame', u'_index4', u'_index2', u'_index3', u'_index', u'require', u't', u'replaceWithMultiple'])
    @Js
    def PyJsHoisted_replaceExpressionWithStatements_(nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'container', u'_isArray2', u'toSequenceExpression', u'completionRecords', u'_i2', u'_ref2', u'exprs', u'uid', u'path', u'nodes', u'callee', u'loop', u'_iterator2'])
        var.get(u"this").callprop(u'resync')
        var.put(u'toSequenceExpression', var.get(u't').callprop(u'toSequenceExpression', var.get(u'nodes'), var.get(u"this").get(u'scope')))
        if var.get(u't').callprop(u'isSequenceExpression', var.get(u'toSequenceExpression')):
            var.put(u'exprs', var.get(u'toSequenceExpression').get(u'expressions'))
            if ((var.get(u'exprs').get(u'length')>=Js(2.0)) and var.get(u"this").get(u'parentPath').callprop(u'isExpressionStatement')):
                var.get(u"this").callprop(u'_maybePopFromStatements', var.get(u'exprs'))
            if PyJsStrictEq(var.get(u'exprs').get(u'length'),Js(1.0)):
                var.get(u"this").callprop(u'replaceWith', var.get(u'exprs').get(u'0'))
            else:
                var.get(u"this").callprop(u'replaceWith', var.get(u'toSequenceExpression'))
        else:
            if var.get(u'toSequenceExpression'):
                var.get(u"this").callprop(u'replaceWith', var.get(u'toSequenceExpression'))
            else:
                var.put(u'container', var.get(u't').callprop(u'functionExpression', var.get(u"null"), Js([]), var.get(u't').callprop(u'blockStatement', var.get(u'nodes'))))
                var.get(u'container').put(u'shadow', var.get(u'true'))
                var.get(u"this").callprop(u'replaceWith', var.get(u't').callprop(u'callExpression', var.get(u'container'), Js([])))
                var.get(u"this").callprop(u'traverse', var.get(u'hoistVariablesVisitor'))
                var.put(u'completionRecords', var.get(u"this").callprop(u'get', Js(u'callee')).callprop(u'getCompletionRecords'))
                #for JS loop
                var.put(u'_iterator2', var.get(u'completionRecords'))
                var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
                var.put(u'_i2', Js(0.0))
                var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
                while 1:
                    pass
                    if var.get(u'_isArray2'):
                        if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                            break
                        var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                        if var.get(u'_i2').get(u'done'):
                            break
                        var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                    var.put(u'path', var.get(u'_ref2'))
                    if var.get(u'path').callprop(u'isExpressionStatement').neg():
                        continue
                    @Js
                    def PyJs_anonymous_2091_(path, this, arguments, var=var):
                        var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                        var.registers([u'path'])
                        return var.get(u'path').callprop(u'isLoop')
                    PyJs_anonymous_2091_._set_name(u'anonymous')
                    var.put(u'loop', var.get(u'path').callprop(u'findParent', PyJs_anonymous_2091_))
                    if var.get(u'loop'):
                        var.put(u'callee', var.get(u"this").callprop(u'get', Js(u'callee')))
                        var.put(u'uid', var.get(u'callee').get(u'scope').callprop(u'generateDeclaredUidIdentifier', Js(u'ret')))
                        var.get(u'callee').callprop(u'get', Js(u'body')).callprop(u'pushContainer', Js(u'body'), var.get(u't').callprop(u'returnStatement', var.get(u'uid')))
                        var.get(u'path').callprop(u'get', Js(u'expression')).callprop(u'replaceWith', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'uid'), var.get(u'path').get(u'node').get(u'expression')))
                    else:
                        var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'returnStatement', var.get(u'path').get(u'node').get(u'expression')))
                
                return var.get(u"this").get(u'node')
    PyJsHoisted_replaceExpressionWithStatements_.func_name = u'replaceExpressionWithStatements'
    var.put(u'replaceExpressionWithStatements', PyJsHoisted_replaceExpressionWithStatements_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2084_ = Js({})
            var.put(u'newObj', PyJs_Object_2084_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_replaceWith_(replacement, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'replacement':replacement}, var)
        var.registers([u'oldNode', u'replacement'])
        var.get(u"this").callprop(u'resync')
        if var.get(u"this").get(u'removed'):
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"You can't replace this node, we've already removed it")))
            raise PyJsTempException
        if var.get(u'replacement').instanceof(var.get(u'_index4').get(u'default')):
            var.put(u'replacement', var.get(u'replacement').get(u'node'))
        if var.get(u'replacement').neg():
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'You passed `path.replaceWith()` a falsy node, use `path.remove()` instead')))
            raise PyJsTempException
        if PyJsStrictEq(var.get(u"this").get(u'node'),var.get(u'replacement')):
            return var.get('undefined')
        if (var.get(u"this").callprop(u'isProgram') and var.get(u't').callprop(u'isProgram', var.get(u'replacement')).neg()):
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'You can only replace a Program root node with another Program node')))
            raise PyJsTempException
        if var.get(u'Array').callprop(u'isArray', var.get(u'replacement')):
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`")))
            raise PyJsTempException
        if PyJsStrictEq(var.get(u'replacement',throw=False).typeof(),Js(u'string')):
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`")))
            raise PyJsTempException
        if (var.get(u"this").callprop(u'isNodeType', Js(u'Statement')) and var.get(u't').callprop(u'isExpression', var.get(u'replacement'))):
            if (var.get(u"this").callprop(u'canHaveVariableDeclarationOrExpression').neg() and var.get(u"this").callprop(u'canSwapBetweenExpressionAndStatement', var.get(u'replacement')).neg()):
                var.put(u'replacement', var.get(u't').callprop(u'expressionStatement', var.get(u'replacement')))
        if (var.get(u"this").callprop(u'isNodeType', Js(u'Expression')) and var.get(u't').callprop(u'isStatement', var.get(u'replacement'))):
            if (var.get(u"this").callprop(u'canHaveVariableDeclarationOrExpression').neg() and var.get(u"this").callprop(u'canSwapBetweenExpressionAndStatement', var.get(u'replacement')).neg()):
                return var.get(u"this").callprop(u'replaceExpressionWithStatements', Js([var.get(u'replacement')]))
        var.put(u'oldNode', var.get(u"this").get(u'node'))
        if var.get(u'oldNode'):
            var.get(u't').callprop(u'inheritsComments', var.get(u'replacement'), var.get(u'oldNode'))
            var.get(u't').callprop(u'removeComments', var.get(u'oldNode'))
        var.get(u"this").callprop(u'_replaceWith', var.get(u'replacement'))
        var.get(u"this").put(u'type', var.get(u'replacement').get(u'type'))
        var.get(u"this").callprop(u'setScope')
        var.get(u"this").callprop(u'requeue')
    PyJsHoisted_replaceWith_.func_name = u'replaceWith'
    var.put(u'replaceWith', PyJsHoisted_replaceWith_)
    @Js
    def PyJsHoisted__replaceWith_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u"this").get(u'container').neg():
            PyJsTempException = JsToPyException(var.get(u'ReferenceError').create(Js(u'Container is falsy')))
            raise PyJsTempException
        if var.get(u"this").get(u'inList'):
            var.get(u't').callprop(u'validate', var.get(u"this").get(u'parent'), var.get(u"this").get(u'key'), Js([var.get(u'node')]))
        else:
            var.get(u't').callprop(u'validate', var.get(u"this").get(u'parent'), var.get(u"this").get(u'key'), var.get(u'node'))
        @Js
        def PyJs_anonymous_2090_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return (Js(u'Replace with ')+(var.get(u'node') and var.get(u'node').get(u'type')))
        PyJs_anonymous_2090_._set_name(u'anonymous')
        var.get(u"this").callprop(u'debug', PyJs_anonymous_2090_)
        var.get(u"this").put(u'node', var.get(u"this").get(u'container').put(var.get(u"this").get(u'key'), var.get(u'node')))
    PyJsHoisted__replaceWith_.func_name = u'_replaceWith'
    var.put(u'_replaceWith', PyJsHoisted__replaceWith_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2085_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2085_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_replaceInline_(nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'nodes'])
        var.get(u"this").callprop(u'resync')
        if var.get(u'Array').callprop(u'isArray', var.get(u'nodes')):
            if var.get(u'Array').callprop(u'isArray', var.get(u"this").get(u'container')):
                var.put(u'nodes', var.get(u"this").callprop(u'_verifyNodeList', var.get(u'nodes')))
                var.get(u"this").callprop(u'_containerInsertAfter', var.get(u'nodes'))
                return var.get(u"this").callprop(u'remove')
            else:
                return var.get(u"this").callprop(u'replaceWithMultiple', var.get(u'nodes'))
        else:
            return var.get(u"this").callprop(u'replaceWith', var.get(u'nodes'))
    PyJsHoisted_replaceInline_.func_name = u'replaceInline'
    var.put(u'replaceInline', PyJsHoisted_replaceInline_)
    @Js
    def PyJsHoisted_replaceWithMultiple_(nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'nodes'])
        var.get(u"this").callprop(u'resync')
        var.put(u'nodes', var.get(u"this").callprop(u'_verifyNodeList', var.get(u'nodes')))
        var.get(u't').callprop(u'inheritLeadingComments', var.get(u'nodes').get(u'0'), var.get(u"this").get(u'node'))
        var.get(u't').callprop(u'inheritTrailingComments', var.get(u'nodes').get((var.get(u'nodes').get(u'length')-Js(1.0))), var.get(u"this").get(u'node'))
        var.get(u"this").put(u'node', var.get(u"this").get(u'container').put(var.get(u"this").get(u'key'), var.get(u"null")))
        var.get(u"this").callprop(u'insertAfter', var.get(u'nodes'))
        if var.get(u"this").get(u'node'):
            var.get(u"this").callprop(u'requeue')
        else:
            var.get(u"this").callprop(u'remove')
    PyJsHoisted_replaceWithMultiple_.func_name = u'replaceWithMultiple'
    var.put(u'replaceWithMultiple', PyJsHoisted_replaceWithMultiple_)
    @Js
    def PyJsHoisted_replaceWithSourceString_(replacement, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'replacement':replacement}, var)
        var.registers([u'loc', u'replacement'])
        var.get(u"this").callprop(u'resync')
        try:
            var.put(u'replacement', ((Js(u'(')+var.get(u'replacement'))+Js(u')')))
            var.put(u'replacement', PyJsComma(Js(0.0),var.get(u'_babylon').get(u'parse'))(var.get(u'replacement')))
        except PyJsException as PyJsTempException:
            PyJsHolder_657272_62521723 = var.own.get(u'err')
            var.force_own_put(u'err', PyExceptionToJs(PyJsTempException))
            try:
                var.put(u'loc', var.get(u'err').get(u'loc'))
                if var.get(u'loc'):
                    var.get(u'err').put(u'message', Js(u' - make sure this is an expression.'), u'+')
                    var.get(u'err').put(u'message', (Js(u'\n')+PyJsComma(Js(0.0),var.get(u'_babelCodeFrame2').get(u'default'))(var.get(u'replacement'), var.get(u'loc').get(u'line'), (var.get(u'loc').get(u'column')+Js(1.0)))), u'+')
                PyJsTempException = JsToPyException(var.get(u'err'))
                raise PyJsTempException
            finally:
                if PyJsHolder_657272_62521723 is not None:
                    var.own[u'err'] = PyJsHolder_657272_62521723
                else:
                    del var.own[u'err']
                del PyJsHolder_657272_62521723
        var.put(u'replacement', var.get(u'replacement').get(u'program').get(u'body').get(u'0').get(u'expression'))
        var.get(u'_index2').get(u'default').callprop(u'removeProperties', var.get(u'replacement'))
        return var.get(u"this").callprop(u'replaceWith', var.get(u'replacement'))
    PyJsHoisted_replaceWithSourceString_.func_name = u'replaceWithSourceString'
    var.put(u'replaceWithSourceString', PyJsHoisted_replaceWithSourceString_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'replaceWithMultiple', var.get(u'replaceWithMultiple'))
    var.get(u'exports').put(u'replaceWithSourceString', var.get(u'replaceWithSourceString'))
    var.get(u'exports').put(u'replaceWith', var.get(u'replaceWith'))
    var.get(u'exports').put(u'_replaceWith', var.get(u'_replaceWith'))
    var.get(u'exports').put(u'replaceExpressionWithStatements', var.get(u'replaceExpressionWithStatements'))
    var.get(u'exports').put(u'replaceInline', var.get(u'replaceInline'))
    var.put(u'_babelCodeFrame', var.get(u'require')(Js(u'babel-code-frame')))
    var.put(u'_babelCodeFrame2', var.get(u'_interopRequireDefault')(var.get(u'_babelCodeFrame')))
    var.put(u'_index', var.get(u'require')(Js(u'../index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    var.put(u'_index3', var.get(u'require')(Js(u'./index')))
    var.put(u'_index4', var.get(u'_interopRequireDefault')(var.get(u'_index3')))
    var.put(u'_babylon', var.get(u'require')(Js(u'babylon')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    @Js
    def PyJs_Function_2087_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'Function':PyJs_Function_2087_, u'arguments':arguments}, var)
        var.registers([u'path'])
        var.get(u'path').callprop(u'skip')
    PyJs_Function_2087_._set_name(u'Function')
    @Js
    def PyJs_VariableDeclaration_2088_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'VariableDeclaration':PyJs_VariableDeclaration_2088_}, var)
        var.registers([u'_isArray', u'_iterator', u'key', u'exprs', u'declar', u'_i', u'path', u'bindings', u'_ref'])
        if PyJsStrictNeq(var.get(u'path').get(u'node').get(u'kind'),Js(u'var')):
            return var.get('undefined')
        var.put(u'bindings', var.get(u'path').callprop(u'getBindingIdentifiers'))
        for PyJsTemp in var.get(u'bindings'):
            var.put(u'key', PyJsTemp)
            PyJs_Object_2089_ = Js({u'id':var.get(u'bindings').get(var.get(u'key'))})
            var.get(u'path').get(u'scope').callprop(u'push', PyJs_Object_2089_)
        var.put(u'exprs', Js([]))
        #for JS loop
        var.put(u'_iterator', var.get(u'path').get(u'node').get(u'declarations'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'declar', var.get(u'_ref'))
            if var.get(u'declar').get(u'init'):
                var.get(u'exprs').callprop(u'push', var.get(u't').callprop(u'expressionStatement', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'declar').get(u'id'), var.get(u'declar').get(u'init'))))
        
        var.get(u'path').callprop(u'replaceWithMultiple', var.get(u'exprs'))
    PyJs_VariableDeclaration_2088_._set_name(u'VariableDeclaration')
    PyJs_Object_2086_ = Js({u'Function':PyJs_Function_2087_,u'VariableDeclaration':PyJs_VariableDeclaration_2088_})
    var.put(u'hoistVariablesVisitor', PyJs_Object_2086_)
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_2083_._set_name(u'anonymous')
PyJs_Object_2092_ = Js({u'../index':Js(225.0),u'./index':Js(232.0),u'babel-code-frame':Js(4.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-types':Js(258.0),u'babylon':Js(262.0)})
@Js
def PyJs_anonymous_2093_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'Binding', u'module', u'_interopRequireDefault', u'_classCallCheck3', u'_classCallCheck2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2094_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2094_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    pass
    @Js
    def PyJs_anonymous_2095_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'Binding'])
        @Js
        def PyJsHoisted_Binding_(_ref, this, arguments, var=var):
            var = Scope({u'this':this, u'_ref':_ref, u'arguments':arguments}, var)
            var.registers([u'kind', u'existing', u'path', u'scope', u'_ref', u'identifier'])
            var.put(u'existing', var.get(u'_ref').get(u'existing'))
            var.put(u'identifier', var.get(u'_ref').get(u'identifier'))
            var.put(u'scope', var.get(u'_ref').get(u'scope'))
            var.put(u'path', var.get(u'_ref').get(u'path'))
            var.put(u'kind', var.get(u'_ref').get(u'kind'))
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Binding'))
            var.get(u"this").put(u'identifier', var.get(u'identifier'))
            var.get(u"this").put(u'scope', var.get(u'scope'))
            var.get(u"this").put(u'path', var.get(u'path'))
            var.get(u"this").put(u'kind', var.get(u'kind'))
            var.get(u"this").put(u'constantViolations', Js([]))
            var.get(u"this").put(u'constant', var.get(u'true'))
            var.get(u"this").put(u'referencePaths', Js([]))
            var.get(u"this").put(u'referenced', Js(False))
            var.get(u"this").put(u'references', Js(0.0))
            var.get(u"this").callprop(u'clearValue')
            if var.get(u'existing'):
                var.get(u"this").put(u'constantViolations', Js([]).callprop(u'concat', var.get(u'existing').get(u'path'), var.get(u'existing').get(u'constantViolations'), var.get(u"this").get(u'constantViolations')))
        PyJsHoisted_Binding_.func_name = u'Binding'
        var.put(u'Binding', PyJsHoisted_Binding_)
        pass
        @Js
        def PyJs_deoptValue_2096_(this, arguments, var=var):
            var = Scope({u'this':this, u'deoptValue':PyJs_deoptValue_2096_, u'arguments':arguments}, var)
            var.registers([])
            var.get(u"this").callprop(u'clearValue')
            var.get(u"this").put(u'hasDeoptedValue', var.get(u'true'))
        PyJs_deoptValue_2096_._set_name(u'deoptValue')
        var.get(u'Binding').get(u'prototype').put(u'deoptValue', PyJs_deoptValue_2096_)
        @Js
        def PyJs_setValue_2097_(value, this, arguments, var=var):
            var = Scope({u'this':this, u'setValue':PyJs_setValue_2097_, u'arguments':arguments, u'value':value}, var)
            var.registers([u'value'])
            if var.get(u"this").get(u'hasDeoptedValue'):
                return var.get('undefined')
            var.get(u"this").put(u'hasValue', var.get(u'true'))
            var.get(u"this").put(u'value', var.get(u'value'))
        PyJs_setValue_2097_._set_name(u'setValue')
        var.get(u'Binding').get(u'prototype').put(u'setValue', PyJs_setValue_2097_)
        @Js
        def PyJs_clearValue_2098_(this, arguments, var=var):
            var = Scope({u'this':this, u'clearValue':PyJs_clearValue_2098_, u'arguments':arguments}, var)
            var.registers([])
            var.get(u"this").put(u'hasDeoptedValue', Js(False))
            var.get(u"this").put(u'hasValue', Js(False))
            var.get(u"this").put(u'value', var.get(u"null"))
        PyJs_clearValue_2098_._set_name(u'clearValue')
        var.get(u'Binding').get(u'prototype').put(u'clearValue', PyJs_clearValue_2098_)
        @Js
        def PyJs_reassign_2099_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'reassign':PyJs_reassign_2099_}, var)
            var.registers([u'path'])
            var.get(u"this").put(u'constant', Js(False))
            if PyJsStrictNeq(var.get(u"this").get(u'constantViolations').callprop(u'indexOf', var.get(u'path')),(-Js(1.0))):
                return var.get('undefined')
            var.get(u"this").get(u'constantViolations').callprop(u'push', var.get(u'path'))
        PyJs_reassign_2099_._set_name(u'reassign')
        var.get(u'Binding').get(u'prototype').put(u'reassign', PyJs_reassign_2099_)
        @Js
        def PyJs_reference_2100_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'reference':PyJs_reference_2100_}, var)
            var.registers([u'path'])
            if PyJsStrictNeq(var.get(u"this").get(u'referencePaths').callprop(u'indexOf', var.get(u'path')),(-Js(1.0))):
                return var.get('undefined')
            var.get(u"this").put(u'referenced', var.get(u'true'))
            (var.get(u"this").put(u'references',Js(var.get(u"this").get(u'references').to_number())+Js(1))-Js(1))
            var.get(u"this").get(u'referencePaths').callprop(u'push', var.get(u'path'))
        PyJs_reference_2100_._set_name(u'reference')
        var.get(u'Binding').get(u'prototype').put(u'reference', PyJs_reference_2100_)
        @Js
        def PyJs_dereference_2101_(this, arguments, var=var):
            var = Scope({u'this':this, u'dereference':PyJs_dereference_2101_, u'arguments':arguments}, var)
            var.registers([])
            (var.get(u"this").put(u'references',Js(var.get(u"this").get(u'references').to_number())-Js(1))+Js(1))
            var.get(u"this").put(u'referenced', var.get(u"this").get(u'references').neg().neg())
        PyJs_dereference_2101_._set_name(u'dereference')
        var.get(u'Binding').get(u'prototype').put(u'dereference', PyJs_dereference_2101_)
        return var.get(u'Binding')
    PyJs_anonymous_2095_._set_name(u'anonymous')
    var.put(u'Binding', PyJs_anonymous_2095_())
    var.get(u'exports').put(u'default', var.get(u'Binding'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_2093_._set_name(u'anonymous')
PyJs_Object_2102_ = Js({u'babel-runtime/helpers/classCallCheck':Js(110.0)})
@Js
def PyJs_anonymous_2103_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_binding3', u'_binding2', u'uid', u'_defaults', u'module', u'Scope', u'_interopRequireDefault', u'_cache', u'_getIterator2', u'_getIterator3', u'_renamer2', u'_create2', u'_keys', u'_globals2', u't', u'_classCallCheck3', u'_classCallCheck2', u'_babelMessages', u'_create', u'_renamer', u'exports', u'_interopRequireWildcard', u'_babelTypes', u'_includes2', u'_globals', u'_keys2', u'collectorVisitor', u'_index2', u'_defaults2', u'_repeat2', u'getCache', u'_map2', u'_map', u'_crawlCallsCount', u'require', u'_index', u'messages', u'_repeat', u'_includes'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2105_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2105_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_getCache_(path, parentScope, self, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'self':self, u'arguments':arguments, u'parentScope':parentScope}, var)
        var.registers([u'scopes', u'_isArray', u'_iterator', u'self', u'parentScope', u'_i', u'path', u'scope', u'_ref'])
        var.put(u'scopes', (var.get(u'_cache').get(u'scope').callprop(u'get', var.get(u'path').get(u'node')) or Js([])))
        #for JS loop
        var.put(u'_iterator', var.get(u'scopes'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'scope', var.get(u'_ref'))
            if (PyJsStrictEq(var.get(u'scope').get(u'parent'),var.get(u'parentScope')) and PyJsStrictEq(var.get(u'scope').get(u'path'),var.get(u'path'))):
                return var.get(u'scope')
        
        var.get(u'scopes').callprop(u'push', var.get(u'self'))
        if var.get(u'_cache').get(u'scope').callprop(u'has', var.get(u'path').get(u'node')).neg():
            var.get(u'_cache').get(u'scope').callprop(u'set', var.get(u'path').get(u'node'), var.get(u'scopes'))
    PyJsHoisted_getCache_.func_name = u'getCache'
    var.put(u'getCache', PyJsHoisted_getCache_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2104_ = Js({})
            var.put(u'newObj', PyJs_Object_2104_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_keys', var.get(u'require')(Js(u'babel-runtime/core-js/object/keys')))
    var.put(u'_keys2', var.get(u'_interopRequireDefault')(var.get(u'_keys')))
    var.put(u'_create', var.get(u'require')(Js(u'babel-runtime/core-js/object/create')))
    var.put(u'_create2', var.get(u'_interopRequireDefault')(var.get(u'_create')))
    var.put(u'_map', var.get(u'require')(Js(u'babel-runtime/core-js/map')))
    var.put(u'_map2', var.get(u'_interopRequireDefault')(var.get(u'_map')))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_includes', var.get(u'require')(Js(u'lodash/includes')))
    var.put(u'_includes2', var.get(u'_interopRequireDefault')(var.get(u'_includes')))
    var.put(u'_repeat', var.get(u'require')(Js(u'lodash/repeat')))
    var.put(u'_repeat2', var.get(u'_interopRequireDefault')(var.get(u'_repeat')))
    var.put(u'_renamer', var.get(u'require')(Js(u'./lib/renamer')))
    var.put(u'_renamer2', var.get(u'_interopRequireDefault')(var.get(u'_renamer')))
    var.put(u'_index', var.get(u'require')(Js(u'../index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    var.put(u'_defaults', var.get(u'require')(Js(u'lodash/defaults')))
    var.put(u'_defaults2', var.get(u'_interopRequireDefault')(var.get(u'_defaults')))
    var.put(u'_babelMessages', var.get(u'require')(Js(u'babel-messages')))
    var.put(u'messages', var.get(u'_interopRequireWildcard')(var.get(u'_babelMessages')))
    var.put(u'_binding2', var.get(u'require')(Js(u'./binding')))
    var.put(u'_binding3', var.get(u'_interopRequireDefault')(var.get(u'_binding2')))
    var.put(u'_globals', var.get(u'require')(Js(u'globals')))
    var.put(u'_globals2', var.get(u'_interopRequireDefault')(var.get(u'_globals')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_cache', var.get(u'require')(Js(u'../cache')))
    pass
    pass
    var.put(u'_crawlCallsCount', Js(0.0))
    pass
    @Js
    def PyJs_For_2107_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'For':PyJs_For_2107_}, var)
        var.registers([u'_isArray2', u'_i2', u'_ref2', u'declar', u'key', u'path', u'_iterator2'])
        #for JS loop
        var.put(u'_iterator2', var.get(u't').get(u'FOR_INIT_KEYS'))
        var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
        var.put(u'_i2', Js(0.0))
        var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
        while 1:
            pass
            if var.get(u'_isArray2'):
                if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                    break
                var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                if var.get(u'_i2').get(u'done'):
                    break
                var.put(u'_ref2', var.get(u'_i2').get(u'value'))
            var.put(u'key', var.get(u'_ref2'))
            var.put(u'declar', var.get(u'path').callprop(u'get', var.get(u'key')))
            if var.get(u'declar').callprop(u'isVar'):
                var.get(u'path').get(u'scope').callprop(u'getFunctionParent').callprop(u'registerBinding', Js(u'var'), var.get(u'declar'))
        
    PyJs_For_2107_._set_name(u'For')
    @Js
    def PyJs_Declaration_2108_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'Declaration':PyJs_Declaration_2108_}, var)
        var.registers([u'path'])
        if var.get(u'path').callprop(u'isBlockScoped'):
            return var.get('undefined')
        if (var.get(u'path').callprop(u'isExportDeclaration') and var.get(u'path').callprop(u'get', Js(u'declaration')).callprop(u'isDeclaration')):
            return var.get('undefined')
        var.get(u'path').get(u'scope').callprop(u'getFunctionParent').callprop(u'registerDeclaration', var.get(u'path'))
    PyJs_Declaration_2108_._set_name(u'Declaration')
    @Js
    def PyJs_ReferencedIdentifier_2109_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_2109_, u'arguments':arguments}, var)
        var.registers([u'path', u'state'])
        var.get(u'state').get(u'references').callprop(u'push', var.get(u'path'))
    PyJs_ReferencedIdentifier_2109_._set_name(u'ReferencedIdentifier')
    @Js
    def PyJs_ForXStatement_2110_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'ForXStatement':PyJs_ForXStatement_2110_}, var)
        var.registers([u'path', u'state', u'left'])
        var.put(u'left', var.get(u'path').callprop(u'get', Js(u'left')))
        if (var.get(u'left').callprop(u'isPattern') or var.get(u'left').callprop(u'isIdentifier')):
            var.get(u'state').get(u'constantViolations').callprop(u'push', var.get(u'left'))
    PyJs_ForXStatement_2110_._set_name(u'ForXStatement')
    @Js
    def PyJs_exit_2112_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'exit':PyJs_exit_2112_, u'arguments':arguments}, var)
        var.registers([u'node', u'decl', u'_isArray3', u'name', u'_i3', u'binding', u'ids', u'declar', u'_binding', u'path', u'scope', u'_id', u'_ref3', u'_iterator3'])
        var.put(u'node', var.get(u'path').get(u'node'))
        var.put(u'scope', var.get(u'path').get(u'scope'))
        var.put(u'declar', var.get(u'node').get(u'declaration'))
        if (var.get(u't').callprop(u'isClassDeclaration', var.get(u'declar')) or var.get(u't').callprop(u'isFunctionDeclaration', var.get(u'declar'))):
            var.put(u'_id', var.get(u'declar').get(u'id'))
            if var.get(u'_id').neg():
                return var.get('undefined')
            var.put(u'binding', var.get(u'scope').callprop(u'getBinding', var.get(u'_id').get(u'name')))
            if var.get(u'binding'):
                var.get(u'binding').callprop(u'reference', var.get(u'path'))
        else:
            if var.get(u't').callprop(u'isVariableDeclaration', var.get(u'declar')):
                #for JS loop
                var.put(u'_iterator3', var.get(u'declar').get(u'declarations'))
                var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
                var.put(u'_i3', Js(0.0))
                var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
                while 1:
                    pass
                    if var.get(u'_isArray3'):
                        if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                            break
                        var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                        if var.get(u'_i3').get(u'done'):
                            break
                        var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                    var.put(u'decl', var.get(u'_ref3'))
                    var.put(u'ids', var.get(u't').callprop(u'getBindingIdentifiers', var.get(u'decl')))
                    for PyJsTemp in var.get(u'ids'):
                        var.put(u'name', PyJsTemp)
                        var.put(u'_binding', var.get(u'scope').callprop(u'getBinding', var.get(u'name')))
                        if var.get(u'_binding'):
                            var.get(u'_binding').callprop(u'reference', var.get(u'path'))
                
    PyJs_exit_2112_._set_name(u'exit')
    PyJs_Object_2111_ = Js({u'exit':PyJs_exit_2112_})
    @Js
    def PyJs_LabeledStatement_2113_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'LabeledStatement':PyJs_LabeledStatement_2113_, u'arguments':arguments}, var)
        var.registers([u'path'])
        var.get(u'path').get(u'scope').callprop(u'getProgramParent').callprop(u'addGlobal', var.get(u'path').get(u'node'))
        var.get(u'path').get(u'scope').callprop(u'getBlockParent').callprop(u'registerDeclaration', var.get(u'path'))
    PyJs_LabeledStatement_2113_._set_name(u'LabeledStatement')
    @Js
    def PyJs_AssignmentExpression_2114_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'AssignmentExpression':PyJs_AssignmentExpression_2114_}, var)
        var.registers([u'path', u'state'])
        var.get(u'state').get(u'assignments').callprop(u'push', var.get(u'path'))
    PyJs_AssignmentExpression_2114_._set_name(u'AssignmentExpression')
    @Js
    def PyJs_UpdateExpression_2115_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'UpdateExpression':PyJs_UpdateExpression_2115_}, var)
        var.registers([u'path', u'state'])
        var.get(u'state').get(u'constantViolations').callprop(u'push', var.get(u'path').callprop(u'get', Js(u'argument')))
    PyJs_UpdateExpression_2115_._set_name(u'UpdateExpression')
    @Js
    def PyJs_UnaryExpression_2116_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'UnaryExpression':PyJs_UnaryExpression_2116_, u'arguments':arguments}, var)
        var.registers([u'path', u'state'])
        if PyJsStrictEq(var.get(u'path').get(u'node').get(u'operator'),Js(u'delete')):
            var.get(u'state').get(u'constantViolations').callprop(u'push', var.get(u'path').callprop(u'get', Js(u'argument')))
    PyJs_UnaryExpression_2116_._set_name(u'UnaryExpression')
    @Js
    def PyJs_BlockScoped_2117_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'BlockScoped':PyJs_BlockScoped_2117_}, var)
        var.registers([u'scope', u'path'])
        var.put(u'scope', var.get(u'path').get(u'scope'))
        if PyJsStrictEq(var.get(u'scope').get(u'path'),var.get(u'path')):
            var.put(u'scope', var.get(u'scope').get(u'parent'))
        var.get(u'scope').callprop(u'getBlockParent').callprop(u'registerDeclaration', var.get(u'path'))
    PyJs_BlockScoped_2117_._set_name(u'BlockScoped')
    @Js
    def PyJs_ClassDeclaration_2118_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'ClassDeclaration':PyJs_ClassDeclaration_2118_, u'arguments':arguments}, var)
        var.registers([u'path', u'id', u'name'])
        var.put(u'id', var.get(u'path').get(u'node').get(u'id'))
        if var.get(u'id').neg():
            return var.get('undefined')
        var.put(u'name', var.get(u'id').get(u'name'))
        var.get(u'path').get(u'scope').get(u'bindings').put(var.get(u'name'), var.get(u'path').get(u'scope').callprop(u'getBinding', var.get(u'name')))
    PyJs_ClassDeclaration_2118_._set_name(u'ClassDeclaration')
    @Js
    def PyJs_Block_2119_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'Block':PyJs_Block_2119_}, var)
        var.registers([u'paths', u'_isArray4', u'bodyPath', u'_ref4', u'_i4', u'path', u'_iterator4'])
        var.put(u'paths', var.get(u'path').callprop(u'get', Js(u'body')))
        #for JS loop
        var.put(u'_iterator4', var.get(u'paths'))
        var.put(u'_isArray4', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator4')))
        var.put(u'_i4', Js(0.0))
        var.put(u'_iterator4', (var.get(u'_iterator4') if var.get(u'_isArray4') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator4'))))
        while 1:
            pass
            if var.get(u'_isArray4'):
                if (var.get(u'_i4')>=var.get(u'_iterator4').get(u'length')):
                    break
                var.put(u'_ref4', var.get(u'_iterator4').get((var.put(u'_i4',Js(var.get(u'_i4').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i4', var.get(u'_iterator4').callprop(u'next'))
                if var.get(u'_i4').get(u'done'):
                    break
                var.put(u'_ref4', var.get(u'_i4').get(u'value'))
            var.put(u'bodyPath', var.get(u'_ref4'))
            if var.get(u'bodyPath').callprop(u'isFunctionDeclaration'):
                var.get(u'path').get(u'scope').callprop(u'getBlockParent').callprop(u'registerDeclaration', var.get(u'bodyPath'))
        
    PyJs_Block_2119_._set_name(u'Block')
    PyJs_Object_2106_ = Js({u'For':PyJs_For_2107_,u'Declaration':PyJs_Declaration_2108_,u'ReferencedIdentifier':PyJs_ReferencedIdentifier_2109_,u'ForXStatement':PyJs_ForXStatement_2110_,u'ExportDeclaration':PyJs_Object_2111_,u'LabeledStatement':PyJs_LabeledStatement_2113_,u'AssignmentExpression':PyJs_AssignmentExpression_2114_,u'UpdateExpression':PyJs_UpdateExpression_2115_,u'UnaryExpression':PyJs_UnaryExpression_2116_,u'BlockScoped':PyJs_BlockScoped_2117_,u'ClassDeclaration':PyJs_ClassDeclaration_2118_,u'Block':PyJs_Block_2119_})
    var.put(u'collectorVisitor', PyJs_Object_2106_)
    var.put(u'uid', Js(0.0))
    @Js
    def PyJs_anonymous_2120_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'Scope'])
        @Js
        def PyJsHoisted_Scope_(path, parentScope, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'parentScope':parentScope}, var)
            var.registers([u'cached', u'path', u'parentScope'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Scope'))
            if (var.get(u'parentScope') and PyJsStrictEq(var.get(u'parentScope').get(u'block'),var.get(u'path').get(u'node'))):
                return var.get(u'parentScope')
            var.put(u'cached', var.get(u'getCache')(var.get(u'path'), var.get(u'parentScope'), var.get(u"this")))
            if var.get(u'cached'):
                return var.get(u'cached')
            var.get(u"this").put(u'uid', (var.put(u'uid',Js(var.get(u'uid').to_number())+Js(1))-Js(1)))
            var.get(u"this").put(u'parent', var.get(u'parentScope'))
            var.get(u"this").put(u'hub', var.get(u'path').get(u'hub'))
            var.get(u"this").put(u'parentBlock', var.get(u'path').get(u'parent'))
            var.get(u"this").put(u'block', var.get(u'path').get(u'node'))
            var.get(u"this").put(u'path', var.get(u'path'))
            var.get(u"this").put(u'labels', var.get(u'_map2').get(u'default').create())
        PyJsHoisted_Scope_.func_name = u'Scope'
        var.put(u'Scope', PyJsHoisted_Scope_)
        pass
        @Js
        def PyJs_traverse_2121_(node, opts, state, this, arguments, var=var):
            var = Scope({u'node':node, u'traverse':PyJs_traverse_2121_, u'this':this, u'state':state, u'arguments':arguments, u'opts':opts}, var)
            var.registers([u'node', u'state', u'opts'])
            PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(var.get(u'node'), var.get(u'opts'), var.get(u"this"), var.get(u'state'), var.get(u"this").get(u'path'))
        PyJs_traverse_2121_._set_name(u'traverse')
        var.get(u'Scope').get(u'prototype').put(u'traverse', PyJs_traverse_2121_)
        @Js
        def PyJs_generateDeclaredUidIdentifier_2122_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'generateDeclaredUidIdentifier':PyJs_generateDeclaredUidIdentifier_2122_}, var)
            var.registers([u'name', u'id'])
            var.put(u'name', (var.get(u'arguments').get(u'0') if ((var.get(u'arguments').get(u'length')>Js(0.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'0'),var.get(u'undefined'))) else Js(u'temp')))
            var.put(u'id', var.get(u"this").callprop(u'generateUidIdentifier', var.get(u'name')))
            PyJs_Object_2123_ = Js({u'id':var.get(u'id')})
            var.get(u"this").callprop(u'push', PyJs_Object_2123_)
            return var.get(u'id')
        PyJs_generateDeclaredUidIdentifier_2122_._set_name(u'generateDeclaredUidIdentifier')
        var.get(u'Scope').get(u'prototype').put(u'generateDeclaredUidIdentifier', PyJs_generateDeclaredUidIdentifier_2122_)
        @Js
        def PyJs_generateUidIdentifier_2124_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'generateUidIdentifier':PyJs_generateUidIdentifier_2124_}, var)
            var.registers([u'name'])
            var.put(u'name', (var.get(u'arguments').get(u'0') if ((var.get(u'arguments').get(u'length')>Js(0.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'0'),var.get(u'undefined'))) else Js(u'temp')))
            return var.get(u't').callprop(u'identifier', var.get(u"this").callprop(u'generateUid', var.get(u'name')))
        PyJs_generateUidIdentifier_2124_._set_name(u'generateUidIdentifier')
        var.get(u'Scope').get(u'prototype').put(u'generateUidIdentifier', PyJs_generateUidIdentifier_2124_)
        @Js
        def PyJs_generateUid_2125_(this, arguments, var=var):
            var = Scope({u'this':this, u'generateUid':PyJs_generateUid_2125_, u'arguments':arguments}, var)
            var.registers([u'i', u'program', u'name', u'uid'])
            var.put(u'name', (var.get(u'arguments').get(u'0') if ((var.get(u'arguments').get(u'length')>Js(0.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'0'),var.get(u'undefined'))) else Js(u'temp')))
            var.put(u'name', var.get(u't').callprop(u'toIdentifier', var.get(u'name')).callprop(u'replace', JsRegExp(u'/^_+/'), Js(u'')).callprop(u'replace', JsRegExp(u'/[0-9]+$/g'), Js(u'')))
            var.put(u'uid', PyJsComma(Js(0.0), Js(None)))
            var.put(u'i', Js(0.0))
            while 1:
                var.put(u'uid', var.get(u"this").callprop(u'_generateUid', var.get(u'name'), var.get(u'i')))
                (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                if not (((var.get(u"this").callprop(u'hasLabel', var.get(u'uid')) or var.get(u"this").callprop(u'hasBinding', var.get(u'uid'))) or var.get(u"this").callprop(u'hasGlobal', var.get(u'uid'))) or var.get(u"this").callprop(u'hasReference', var.get(u'uid'))):
                    break
            var.put(u'program', var.get(u"this").callprop(u'getProgramParent'))
            var.get(u'program').get(u'references').put(var.get(u'uid'), var.get(u'true'))
            var.get(u'program').get(u'uids').put(var.get(u'uid'), var.get(u'true'))
            return var.get(u'uid')
        PyJs_generateUid_2125_._set_name(u'generateUid')
        var.get(u'Scope').get(u'prototype').put(u'generateUid', PyJs_generateUid_2125_)
        @Js
        def PyJs__generateUid_2126_(name, i, this, arguments, var=var):
            var = Scope({u'i':i, u'this':this, u'_generateUid':PyJs__generateUid_2126_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'i', u'id', u'name'])
            var.put(u'id', var.get(u'name'))
            if (var.get(u'i')>Js(1.0)):
                var.put(u'id', var.get(u'i'), u'+')
            return (Js(u'_')+var.get(u'id'))
        PyJs__generateUid_2126_._set_name(u'_generateUid')
        var.get(u'Scope').get(u'prototype').put(u'_generateUid', PyJs__generateUid_2126_)
        @Js
        def PyJs_generateUidIdentifierBasedOnNode_2127_(parent, defaultName, this, arguments, var=var):
            var = Scope({u'this':this, u'defaultName':defaultName, u'generateUidIdentifierBasedOnNode':PyJs_generateUidIdentifierBasedOnNode_2127_, u'arguments':arguments, u'parent':parent}, var)
            var.registers([u'node', u'parent', u'defaultName', u'add', u'parts', u'id'])
            var.put(u'node', var.get(u'parent'))
            if var.get(u't').callprop(u'isAssignmentExpression', var.get(u'parent')):
                var.put(u'node', var.get(u'parent').get(u'left'))
            else:
                if var.get(u't').callprop(u'isVariableDeclarator', var.get(u'parent')):
                    var.put(u'node', var.get(u'parent').get(u'id'))
                else:
                    if (var.get(u't').callprop(u'isObjectProperty', var.get(u'node')) or var.get(u't').callprop(u'isObjectMethod', var.get(u'node'))):
                        var.put(u'node', var.get(u'node').get(u'key'))
            var.put(u'parts', Js([]))
            @Js
            def PyJs_add_2128_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'add':PyJs_add_2128_, u'arguments':arguments}, var)
                var.registers([u'node', u'specifier', u'_isArray5', u'_isArray6', u'_i6', u'_ref5', u'prop', u'_ref6', u'_iterator5', u'_iterator6', u'_i5'])
                if var.get(u't').callprop(u'isModuleDeclaration', var.get(u'node')):
                    if var.get(u'node').get(u'source'):
                        var.get(u'add')(var.get(u'node').get(u'source'))
                    else:
                        if (var.get(u'node').get(u'specifiers') and var.get(u'node').get(u'specifiers').get(u'length')):
                            #for JS loop
                            var.put(u'_iterator5', var.get(u'node').get(u'specifiers'))
                            var.put(u'_isArray5', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator5')))
                            var.put(u'_i5', Js(0.0))
                            var.put(u'_iterator5', (var.get(u'_iterator5') if var.get(u'_isArray5') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator5'))))
                            while 1:
                                pass
                                if var.get(u'_isArray5'):
                                    if (var.get(u'_i5')>=var.get(u'_iterator5').get(u'length')):
                                        break
                                    var.put(u'_ref5', var.get(u'_iterator5').get((var.put(u'_i5',Js(var.get(u'_i5').to_number())+Js(1))-Js(1))))
                                else:
                                    var.put(u'_i5', var.get(u'_iterator5').callprop(u'next'))
                                    if var.get(u'_i5').get(u'done'):
                                        break
                                    var.put(u'_ref5', var.get(u'_i5').get(u'value'))
                                var.put(u'specifier', var.get(u'_ref5'))
                                var.get(u'add')(var.get(u'specifier'))
                            
                        else:
                            if var.get(u'node').get(u'declaration'):
                                var.get(u'add')(var.get(u'node').get(u'declaration'))
                else:
                    if var.get(u't').callprop(u'isModuleSpecifier', var.get(u'node')):
                        var.get(u'add')(var.get(u'node').get(u'local'))
                    else:
                        if var.get(u't').callprop(u'isMemberExpression', var.get(u'node')):
                            var.get(u'add')(var.get(u'node').get(u'object'))
                            var.get(u'add')(var.get(u'node').get(u'property'))
                        else:
                            if var.get(u't').callprop(u'isIdentifier', var.get(u'node')):
                                var.get(u'parts').callprop(u'push', var.get(u'node').get(u'name'))
                            else:
                                if var.get(u't').callprop(u'isLiteral', var.get(u'node')):
                                    var.get(u'parts').callprop(u'push', var.get(u'node').get(u'value'))
                                else:
                                    if var.get(u't').callprop(u'isCallExpression', var.get(u'node')):
                                        var.get(u'add')(var.get(u'node').get(u'callee'))
                                    else:
                                        if (var.get(u't').callprop(u'isObjectExpression', var.get(u'node')) or var.get(u't').callprop(u'isObjectPattern', var.get(u'node'))):
                                            #for JS loop
                                            var.put(u'_iterator6', var.get(u'node').get(u'properties'))
                                            var.put(u'_isArray6', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator6')))
                                            var.put(u'_i6', Js(0.0))
                                            var.put(u'_iterator6', (var.get(u'_iterator6') if var.get(u'_isArray6') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator6'))))
                                            while 1:
                                                pass
                                                if var.get(u'_isArray6'):
                                                    if (var.get(u'_i6')>=var.get(u'_iterator6').get(u'length')):
                                                        break
                                                    var.put(u'_ref6', var.get(u'_iterator6').get((var.put(u'_i6',Js(var.get(u'_i6').to_number())+Js(1))-Js(1))))
                                                else:
                                                    var.put(u'_i6', var.get(u'_iterator6').callprop(u'next'))
                                                    if var.get(u'_i6').get(u'done'):
                                                        break
                                                    var.put(u'_ref6', var.get(u'_i6').get(u'value'))
                                                var.put(u'prop', var.get(u'_ref6'))
                                                var.get(u'add')((var.get(u'prop').get(u'key') or var.get(u'prop').get(u'argument')))
                                            
            PyJs_add_2128_._set_name(u'add')
            var.put(u'add', PyJs_add_2128_)
            var.get(u'add')(var.get(u'node'))
            var.put(u'id', var.get(u'parts').callprop(u'join', Js(u'$')))
            var.put(u'id', ((var.get(u'id').callprop(u'replace', JsRegExp(u'/^_/'), Js(u'')) or var.get(u'defaultName')) or Js(u'ref')))
            return var.get(u"this").callprop(u'generateUidIdentifier', var.get(u'id').callprop(u'slice', Js(0.0), Js(20.0)))
        PyJs_generateUidIdentifierBasedOnNode_2127_._set_name(u'generateUidIdentifierBasedOnNode')
        var.get(u'Scope').get(u'prototype').put(u'generateUidIdentifierBasedOnNode', PyJs_generateUidIdentifierBasedOnNode_2127_)
        @Js
        def PyJs_isStatic_2129_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'isStatic':PyJs_isStatic_2129_, u'arguments':arguments}, var)
            var.registers([u'node', u'binding'])
            if (var.get(u't').callprop(u'isThisExpression', var.get(u'node')) or var.get(u't').callprop(u'isSuper', var.get(u'node'))):
                return var.get(u'true')
            if var.get(u't').callprop(u'isIdentifier', var.get(u'node')):
                var.put(u'binding', var.get(u"this").callprop(u'getBinding', var.get(u'node').get(u'name')))
                if var.get(u'binding'):
                    return var.get(u'binding').get(u'constant')
                else:
                    return var.get(u"this").callprop(u'hasBinding', var.get(u'node').get(u'name'))
            return Js(False)
        PyJs_isStatic_2129_._set_name(u'isStatic')
        var.get(u'Scope').get(u'prototype').put(u'isStatic', PyJs_isStatic_2129_)
        @Js
        def PyJs_maybeGenerateMemoised_2130_(node, dontPush, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'maybeGenerateMemoised':PyJs_maybeGenerateMemoised_2130_, u'dontPush':dontPush, u'arguments':arguments}, var)
            var.registers([u'node', u'dontPush', u'_id2'])
            if var.get(u"this").callprop(u'isStatic', var.get(u'node')):
                return var.get(u"null")
            else:
                var.put(u'_id2', var.get(u"this").callprop(u'generateUidIdentifierBasedOnNode', var.get(u'node')))
                if var.get(u'dontPush').neg():
                    PyJs_Object_2131_ = Js({u'id':var.get(u'_id2')})
                    var.get(u"this").callprop(u'push', PyJs_Object_2131_)
                return var.get(u'_id2')
        PyJs_maybeGenerateMemoised_2130_._set_name(u'maybeGenerateMemoised')
        var.get(u'Scope').get(u'prototype').put(u'maybeGenerateMemoised', PyJs_maybeGenerateMemoised_2130_)
        @Js
        def PyJs_checkBlockScopedCollisions_2132_(local, kind, name, id, this, arguments, var=var):
            var = Scope({u'kind':kind, u'name':name, u'this':this, u'checkBlockScopedCollisions':PyJs_checkBlockScopedCollisions_2132_, u'local':local, u'id':id, u'arguments':arguments}, var)
            var.registers([u'id', u'duplicate', u'local', u'kind', u'name'])
            if PyJsStrictEq(var.get(u'kind'),Js(u'param')):
                return var.get('undefined')
            if (PyJsStrictEq(var.get(u'kind'),Js(u'hoisted')) and PyJsStrictEq(var.get(u'local').get(u'kind'),Js(u'let'))):
                return var.get('undefined')
            var.put(u'duplicate', Js(False))
            if var.get(u'duplicate').neg():
                var.put(u'duplicate', (((PyJsStrictEq(var.get(u'kind'),Js(u'let')) or PyJsStrictEq(var.get(u'local').get(u'kind'),Js(u'let'))) or PyJsStrictEq(var.get(u'local').get(u'kind'),Js(u'const'))) or PyJsStrictEq(var.get(u'local').get(u'kind'),Js(u'module'))))
            if var.get(u'duplicate').neg():
                var.put(u'duplicate', (PyJsStrictEq(var.get(u'local').get(u'kind'),Js(u'param')) and (PyJsStrictEq(var.get(u'kind'),Js(u'let')) or PyJsStrictEq(var.get(u'kind'),Js(u'const')))))
            if var.get(u'duplicate'):
                PyJsTempException = JsToPyException(var.get(u"this").get(u'hub').get(u'file').callprop(u'buildCodeFrameError', var.get(u'id'), var.get(u'messages').callprop(u'get', Js(u'scopeDuplicateDeclaration'), var.get(u'name')), var.get(u'TypeError')))
                raise PyJsTempException
        PyJs_checkBlockScopedCollisions_2132_._set_name(u'checkBlockScopedCollisions')
        var.get(u'Scope').get(u'prototype').put(u'checkBlockScopedCollisions', PyJs_checkBlockScopedCollisions_2132_)
        @Js
        def PyJs_rename_2133_(oldName, newName, block, this, arguments, var=var):
            var = Scope({u'rename':PyJs_rename_2133_, u'newName':newName, u'this':this, u'oldName':oldName, u'block':block, u'arguments':arguments}, var)
            var.registers([u'newName', u'binding', u'oldName', u'block'])
            var.put(u'binding', var.get(u"this").callprop(u'getBinding', var.get(u'oldName')))
            if var.get(u'binding'):
                var.put(u'newName', (var.get(u'newName') or var.get(u"this").callprop(u'generateUidIdentifier', var.get(u'oldName')).get(u'name')))
                return var.get(u'_renamer2').get(u'default').create(var.get(u'binding'), var.get(u'oldName'), var.get(u'newName')).callprop(u'rename', var.get(u'block'))
        PyJs_rename_2133_._set_name(u'rename')
        var.get(u'Scope').get(u'prototype').put(u'rename', PyJs_rename_2133_)
        @Js
        def PyJs__renameFromMap_2134_(map, oldName, newName, value, this, arguments, var=var):
            var = Scope({u'map':map, u'_renameFromMap':PyJs__renameFromMap_2134_, u'oldName':oldName, u'newName':newName, u'this':this, u'value':value, u'arguments':arguments}, var)
            var.registers([u'newName', u'map', u'oldName', u'value'])
            if var.get(u'map').get(var.get(u'oldName')):
                var.get(u'map').put(var.get(u'newName'), var.get(u'value'))
                var.get(u'map').put(var.get(u'oldName'), var.get(u"null"))
        PyJs__renameFromMap_2134_._set_name(u'_renameFromMap')
        var.get(u'Scope').get(u'prototype').put(u'_renameFromMap', PyJs__renameFromMap_2134_)
        @Js
        def PyJs_dump_2135_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'dump':PyJs_dump_2135_}, var)
            var.registers([u'scope', u'binding', u'name', u'sep'])
            var.put(u'sep', PyJsComma(Js(0.0),var.get(u'_repeat2').get(u'default'))(Js(u'-'), Js(60.0)))
            var.get(u'console').callprop(u'log', var.get(u'sep'))
            var.put(u'scope', var.get(u"this"))
            while 1:
                var.get(u'console').callprop(u'log', Js(u'#'), var.get(u'scope').get(u'block').get(u'type'))
                for PyJsTemp in var.get(u'scope').get(u'bindings'):
                    var.put(u'name', PyJsTemp)
                    var.put(u'binding', var.get(u'scope').get(u'bindings').get(var.get(u'name')))
                    PyJs_Object_2136_ = Js({u'constant':var.get(u'binding').get(u'constant'),u'references':var.get(u'binding').get(u'references'),u'violations':var.get(u'binding').get(u'constantViolations').get(u'length'),u'kind':var.get(u'binding').get(u'kind')})
                    var.get(u'console').callprop(u'log', Js(u' -'), var.get(u'name'), PyJs_Object_2136_)
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
            var.get(u'console').callprop(u'log', var.get(u'sep'))
        PyJs_dump_2135_._set_name(u'dump')
        var.get(u'Scope').get(u'prototype').put(u'dump', PyJs_dump_2135_)
        @Js
        def PyJs_toArray_2137_(node, i, this, arguments, var=var):
            var = Scope({u'node':node, u'i':i, u'this':this, u'arguments':arguments, u'toArray':PyJs_toArray_2137_}, var)
            var.registers([u'node', u'helperName', u'i', u'args', u'binding', u'file'])
            var.put(u'file', var.get(u"this").get(u'hub').get(u'file'))
            if var.get(u't').callprop(u'isIdentifier', var.get(u'node')):
                var.put(u'binding', var.get(u"this").callprop(u'getBinding', var.get(u'node').get(u'name')))
                if ((var.get(u'binding') and var.get(u'binding').get(u'constant')) and var.get(u'binding').get(u'path').callprop(u'isGenericType', Js(u'Array'))):
                    return var.get(u'node')
            if var.get(u't').callprop(u'isArrayExpression', var.get(u'node')):
                return var.get(u'node')
            PyJs_Object_2138_ = Js({u'name':Js(u'arguments')})
            if var.get(u't').callprop(u'isIdentifier', var.get(u'node'), PyJs_Object_2138_):
                def PyJs_LONG_2139_(var=var):
                    return var.get(u't').callprop(u'callExpression', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'memberExpression', var.get(u't').callprop(u'identifier', Js(u'Array')), var.get(u't').callprop(u'identifier', Js(u'prototype'))), var.get(u't').callprop(u'identifier', Js(u'slice'))), var.get(u't').callprop(u'identifier', Js(u'call'))), Js([var.get(u'node')]))
                return PyJs_LONG_2139_()
            var.put(u'helperName', Js(u'toArray'))
            var.put(u'args', Js([var.get(u'node')]))
            if PyJsStrictEq(var.get(u'i'),var.get(u'true')):
                var.put(u'helperName', Js(u'toConsumableArray'))
            else:
                if var.get(u'i'):
                    var.get(u'args').callprop(u'push', var.get(u't').callprop(u'numericLiteral', var.get(u'i')))
                    var.put(u'helperName', Js(u'slicedToArray'))
            return var.get(u't').callprop(u'callExpression', var.get(u'file').callprop(u'addHelper', var.get(u'helperName')), var.get(u'args'))
        PyJs_toArray_2137_._set_name(u'toArray')
        var.get(u'Scope').get(u'prototype').put(u'toArray', PyJs_toArray_2137_)
        @Js
        def PyJs_hasLabel_2140_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'hasLabel':PyJs_hasLabel_2140_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'name'])
            return var.get(u"this").callprop(u'getLabel', var.get(u'name')).neg().neg()
        PyJs_hasLabel_2140_._set_name(u'hasLabel')
        var.get(u'Scope').get(u'prototype').put(u'hasLabel', PyJs_hasLabel_2140_)
        @Js
        def PyJs_getLabel_2141_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'name':name, u'getLabel':PyJs_getLabel_2141_, u'arguments':arguments}, var)
            var.registers([u'name'])
            return var.get(u"this").get(u'labels').callprop(u'get', var.get(u'name'))
        PyJs_getLabel_2141_._set_name(u'getLabel')
        var.get(u'Scope').get(u'prototype').put(u'getLabel', PyJs_getLabel_2141_)
        @Js
        def PyJs_registerLabel_2142_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'registerLabel':PyJs_registerLabel_2142_}, var)
            var.registers([u'path'])
            var.get(u"this").get(u'labels').callprop(u'set', var.get(u'path').get(u'node').get(u'label').get(u'name'), var.get(u'path'))
        PyJs_registerLabel_2142_._set_name(u'registerLabel')
        var.get(u'Scope').get(u'prototype').put(u'registerLabel', PyJs_registerLabel_2142_)
        @Js
        def PyJs_registerDeclaration_2143_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'registerDeclaration':PyJs_registerDeclaration_2143_}, var)
            var.registers([u'_isArray7', u'specifiers', u'_ref8', u'_i8', u'_i7', u'declarations', u'_isArray8', u'_ref7', u'declar', u'_iterator8', u'path', u'specifier', u'_declar', u'_iterator7'])
            if var.get(u'path').callprop(u'isLabeledStatement'):
                var.get(u"this").callprop(u'registerLabel', var.get(u'path'))
            else:
                if var.get(u'path').callprop(u'isFunctionDeclaration'):
                    var.get(u"this").callprop(u'registerBinding', Js(u'hoisted'), var.get(u'path').callprop(u'get', Js(u'id')), var.get(u'path'))
                else:
                    if var.get(u'path').callprop(u'isVariableDeclaration'):
                        var.put(u'declarations', var.get(u'path').callprop(u'get', Js(u'declarations')))
                        #for JS loop
                        var.put(u'_iterator7', var.get(u'declarations'))
                        var.put(u'_isArray7', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator7')))
                        var.put(u'_i7', Js(0.0))
                        var.put(u'_iterator7', (var.get(u'_iterator7') if var.get(u'_isArray7') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator7'))))
                        while 1:
                            pass
                            if var.get(u'_isArray7'):
                                if (var.get(u'_i7')>=var.get(u'_iterator7').get(u'length')):
                                    break
                                var.put(u'_ref7', var.get(u'_iterator7').get((var.put(u'_i7',Js(var.get(u'_i7').to_number())+Js(1))-Js(1))))
                            else:
                                var.put(u'_i7', var.get(u'_iterator7').callprop(u'next'))
                                if var.get(u'_i7').get(u'done'):
                                    break
                                var.put(u'_ref7', var.get(u'_i7').get(u'value'))
                            var.put(u'declar', var.get(u'_ref7'))
                            var.get(u"this").callprop(u'registerBinding', var.get(u'path').get(u'node').get(u'kind'), var.get(u'declar'))
                        
                    else:
                        if var.get(u'path').callprop(u'isClassDeclaration'):
                            var.get(u"this").callprop(u'registerBinding', Js(u'let'), var.get(u'path'))
                        else:
                            if var.get(u'path').callprop(u'isImportDeclaration'):
                                var.put(u'specifiers', var.get(u'path').callprop(u'get', Js(u'specifiers')))
                                #for JS loop
                                var.put(u'_iterator8', var.get(u'specifiers'))
                                var.put(u'_isArray8', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator8')))
                                var.put(u'_i8', Js(0.0))
                                var.put(u'_iterator8', (var.get(u'_iterator8') if var.get(u'_isArray8') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator8'))))
                                while 1:
                                    pass
                                    if var.get(u'_isArray8'):
                                        if (var.get(u'_i8')>=var.get(u'_iterator8').get(u'length')):
                                            break
                                        var.put(u'_ref8', var.get(u'_iterator8').get((var.put(u'_i8',Js(var.get(u'_i8').to_number())+Js(1))-Js(1))))
                                    else:
                                        var.put(u'_i8', var.get(u'_iterator8').callprop(u'next'))
                                        if var.get(u'_i8').get(u'done'):
                                            break
                                        var.put(u'_ref8', var.get(u'_i8').get(u'value'))
                                    var.put(u'specifier', var.get(u'_ref8'))
                                    var.get(u"this").callprop(u'registerBinding', Js(u'module'), var.get(u'specifier'))
                                
                            else:
                                if var.get(u'path').callprop(u'isExportDeclaration'):
                                    var.put(u'_declar', var.get(u'path').callprop(u'get', Js(u'declaration')))
                                    if ((var.get(u'_declar').callprop(u'isClassDeclaration') or var.get(u'_declar').callprop(u'isFunctionDeclaration')) or var.get(u'_declar').callprop(u'isVariableDeclaration')):
                                        var.get(u"this").callprop(u'registerDeclaration', var.get(u'_declar'))
                                else:
                                    var.get(u"this").callprop(u'registerBinding', Js(u'unknown'), var.get(u'path'))
        PyJs_registerDeclaration_2143_._set_name(u'registerDeclaration')
        var.get(u'Scope').get(u'prototype').put(u'registerDeclaration', PyJs_registerDeclaration_2143_)
        @Js
        def PyJs_buildUndefinedNode_2144_(this, arguments, var=var):
            var = Scope({u'this':this, u'buildUndefinedNode':PyJs_buildUndefinedNode_2144_, u'arguments':arguments}, var)
            var.registers([])
            if var.get(u"this").callprop(u'hasBinding', Js(u'undefined')):
                return var.get(u't').callprop(u'unaryExpression', Js(u'void'), var.get(u't').callprop(u'numericLiteral', Js(0.0)), var.get(u'true'))
            else:
                return var.get(u't').callprop(u'identifier', Js(u'undefined'))
        PyJs_buildUndefinedNode_2144_._set_name(u'buildUndefinedNode')
        var.get(u'Scope').get(u'prototype').put(u'buildUndefinedNode', PyJs_buildUndefinedNode_2144_)
        @Js
        def PyJs_registerConstantViolation_2145_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'registerConstantViolation':PyJs_registerConstantViolation_2145_}, var)
            var.registers([u'path', u'binding', u'ids', u'name'])
            var.put(u'ids', var.get(u'path').callprop(u'getBindingIdentifiers'))
            for PyJsTemp in var.get(u'ids'):
                var.put(u'name', PyJsTemp)
                var.put(u'binding', var.get(u"this").callprop(u'getBinding', var.get(u'name')))
                if var.get(u'binding'):
                    var.get(u'binding').callprop(u'reassign', var.get(u'path'))
        PyJs_registerConstantViolation_2145_._set_name(u'registerConstantViolation')
        var.get(u'Scope').get(u'prototype').put(u'registerConstantViolation', PyJs_registerConstantViolation_2145_)
        @Js
        def PyJs_registerBinding_2146_(kind, path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'kind':kind, u'arguments':arguments, u'registerBinding':PyJs_registerBinding_2146_}, var)
            var.registers([u'parent', u'kind', u'_i10', u'_i9', u'_ref9', u'name', u'_ref10', u'ids', u'_isArray9', u'declarators', u'declar', u'_iterator9', u'_isArray10', u'_iterator10', u'path', u'_id3', u'local', u'bindingPath'])
            var.put(u'bindingPath', (var.get(u'arguments').get(u'2') if ((var.get(u'arguments').get(u'length')>Js(2.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'2'),var.get(u'undefined'))) else var.get(u'path')))
            if var.get(u'kind').neg():
                PyJsTempException = JsToPyException(var.get(u'ReferenceError').create(Js(u'no `kind`')))
                raise PyJsTempException
            if var.get(u'path').callprop(u'isVariableDeclaration'):
                var.put(u'declarators', var.get(u'path').callprop(u'get', Js(u'declarations')))
                #for JS loop
                var.put(u'_iterator9', var.get(u'declarators'))
                var.put(u'_isArray9', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator9')))
                var.put(u'_i9', Js(0.0))
                var.put(u'_iterator9', (var.get(u'_iterator9') if var.get(u'_isArray9') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator9'))))
                while 1:
                    pass
                    if var.get(u'_isArray9'):
                        if (var.get(u'_i9')>=var.get(u'_iterator9').get(u'length')):
                            break
                        var.put(u'_ref9', var.get(u'_iterator9').get((var.put(u'_i9',Js(var.get(u'_i9').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i9', var.get(u'_iterator9').callprop(u'next'))
                        if var.get(u'_i9').get(u'done'):
                            break
                        var.put(u'_ref9', var.get(u'_i9').get(u'value'))
                    var.put(u'declar', var.get(u'_ref9'))
                    var.get(u"this").callprop(u'registerBinding', var.get(u'kind'), var.get(u'declar'))
                
                return var.get('undefined')
            var.put(u'parent', var.get(u"this").callprop(u'getProgramParent'))
            var.put(u'ids', var.get(u'path').callprop(u'getBindingIdentifiers', var.get(u'true')))
            for PyJsTemp in var.get(u'ids'):
                var.put(u'name', PyJsTemp)
                #for JS loop
                var.put(u'_iterator10', var.get(u'ids').get(var.get(u'name')))
                var.put(u'_isArray10', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator10')))
                var.put(u'_i10', Js(0.0))
                var.put(u'_iterator10', (var.get(u'_iterator10') if var.get(u'_isArray10') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator10'))))
                while 1:
                    pass
                    if var.get(u'_isArray10'):
                        if (var.get(u'_i10')>=var.get(u'_iterator10').get(u'length')):
                            break
                        var.put(u'_ref10', var.get(u'_iterator10').get((var.put(u'_i10',Js(var.get(u'_i10').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i10', var.get(u'_iterator10').callprop(u'next'))
                        if var.get(u'_i10').get(u'done'):
                            break
                        var.put(u'_ref10', var.get(u'_i10').get(u'value'))
                    var.put(u'_id3', var.get(u'_ref10'))
                    var.put(u'local', var.get(u"this").callprop(u'getOwnBinding', var.get(u'name')))
                    if var.get(u'local'):
                        if PyJsStrictEq(var.get(u'local').get(u'identifier'),var.get(u'_id3')):
                            continue
                        var.get(u"this").callprop(u'checkBlockScopedCollisions', var.get(u'local'), var.get(u'kind'), var.get(u'name'), var.get(u'_id3'))
                    if (var.get(u'local') and var.get(u'local').get(u'path').callprop(u'isFlow')):
                        var.put(u'local', var.get(u"null"))
                    var.get(u'parent').get(u'references').put(var.get(u'name'), var.get(u'true'))
                    PyJs_Object_2147_ = Js({u'identifier':var.get(u'_id3'),u'existing':var.get(u'local'),u'scope':var.get(u"this"),u'path':var.get(u'bindingPath'),u'kind':var.get(u'kind')})
                    var.get(u"this").get(u'bindings').put(var.get(u'name'), var.get(u'_binding3').get(u'default').create(PyJs_Object_2147_))
                
        PyJs_registerBinding_2146_._set_name(u'registerBinding')
        var.get(u'Scope').get(u'prototype').put(u'registerBinding', PyJs_registerBinding_2146_)
        @Js
        def PyJs_addGlobal_2148_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'addGlobal':PyJs_addGlobal_2148_}, var)
            var.registers([u'node'])
            var.get(u"this").get(u'globals').put(var.get(u'node').get(u'name'), var.get(u'node'))
        PyJs_addGlobal_2148_._set_name(u'addGlobal')
        var.get(u'Scope').get(u'prototype').put(u'addGlobal', PyJs_addGlobal_2148_)
        @Js
        def PyJs_hasUid_2149_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'hasUid':PyJs_hasUid_2149_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'scope', u'name'])
            var.put(u'scope', var.get(u"this"))
            while 1:
                if var.get(u'scope').get(u'uids').get(var.get(u'name')):
                    return var.get(u'true')
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
            return Js(False)
        PyJs_hasUid_2149_._set_name(u'hasUid')
        var.get(u'Scope').get(u'prototype').put(u'hasUid', PyJs_hasUid_2149_)
        @Js
        def PyJs_hasGlobal_2150_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'hasGlobal':PyJs_hasGlobal_2150_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'scope', u'name'])
            var.put(u'scope', var.get(u"this"))
            while 1:
                if var.get(u'scope').get(u'globals').get(var.get(u'name')):
                    return var.get(u'true')
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
            return Js(False)
        PyJs_hasGlobal_2150_._set_name(u'hasGlobal')
        var.get(u'Scope').get(u'prototype').put(u'hasGlobal', PyJs_hasGlobal_2150_)
        @Js
        def PyJs_hasReference_2151_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'hasReference':PyJs_hasReference_2151_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'scope', u'name'])
            var.put(u'scope', var.get(u"this"))
            while 1:
                if var.get(u'scope').get(u'references').get(var.get(u'name')):
                    return var.get(u'true')
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
            return Js(False)
        PyJs_hasReference_2151_._set_name(u'hasReference')
        var.get(u'Scope').get(u'prototype').put(u'hasReference', PyJs_hasReference_2151_)
        @Js
        def PyJs_isPure_2152_(node, constantsOnly, this, arguments, var=var):
            var = Scope({u'node':node, u'constantsOnly':constantsOnly, u'this':this, u'arguments':arguments, u'isPure':PyJs_isPure_2152_}, var)
            var.registers([u'node', u'constantsOnly', u'_isArray11', u'binding', u'elem', u'prop', u'_i13', u'_i12', u'_i11', u'_isArray13', u'_isArray12', u'_ref11', u'_iterator11', u'_ref13', u'_iterator13', u'_iterator12', u'method', u'_ref12'])
            if var.get(u't').callprop(u'isIdentifier', var.get(u'node')):
                var.put(u'binding', var.get(u"this").callprop(u'getBinding', var.get(u'node').get(u'name')))
                if var.get(u'binding').neg():
                    return Js(False)
                if var.get(u'constantsOnly'):
                    return var.get(u'binding').get(u'constant')
                return var.get(u'true')
            else:
                if var.get(u't').callprop(u'isClass', var.get(u'node')):
                    if (var.get(u'node').get(u'superClass') and var.get(u"this").callprop(u'isPure', var.get(u'node').get(u'superClass'), var.get(u'constantsOnly')).neg()):
                        return Js(False)
                    return var.get(u"this").callprop(u'isPure', var.get(u'node').get(u'body'), var.get(u'constantsOnly'))
                else:
                    if var.get(u't').callprop(u'isClassBody', var.get(u'node')):
                        #for JS loop
                        var.put(u'_iterator11', var.get(u'node').get(u'body'))
                        var.put(u'_isArray11', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator11')))
                        var.put(u'_i11', Js(0.0))
                        var.put(u'_iterator11', (var.get(u'_iterator11') if var.get(u'_isArray11') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator11'))))
                        while 1:
                            pass
                            if var.get(u'_isArray11'):
                                if (var.get(u'_i11')>=var.get(u'_iterator11').get(u'length')):
                                    break
                                var.put(u'_ref11', var.get(u'_iterator11').get((var.put(u'_i11',Js(var.get(u'_i11').to_number())+Js(1))-Js(1))))
                            else:
                                var.put(u'_i11', var.get(u'_iterator11').callprop(u'next'))
                                if var.get(u'_i11').get(u'done'):
                                    break
                                var.put(u'_ref11', var.get(u'_i11').get(u'value'))
                            var.put(u'method', var.get(u'_ref11'))
                            if var.get(u"this").callprop(u'isPure', var.get(u'method'), var.get(u'constantsOnly')).neg():
                                return Js(False)
                        
                        return var.get(u'true')
                    else:
                        if var.get(u't').callprop(u'isBinary', var.get(u'node')):
                            return (var.get(u"this").callprop(u'isPure', var.get(u'node').get(u'left'), var.get(u'constantsOnly')) and var.get(u"this").callprop(u'isPure', var.get(u'node').get(u'right'), var.get(u'constantsOnly')))
                        else:
                            if var.get(u't').callprop(u'isArrayExpression', var.get(u'node')):
                                #for JS loop
                                var.put(u'_iterator12', var.get(u'node').get(u'elements'))
                                var.put(u'_isArray12', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator12')))
                                var.put(u'_i12', Js(0.0))
                                var.put(u'_iterator12', (var.get(u'_iterator12') if var.get(u'_isArray12') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator12'))))
                                while 1:
                                    pass
                                    if var.get(u'_isArray12'):
                                        if (var.get(u'_i12')>=var.get(u'_iterator12').get(u'length')):
                                            break
                                        var.put(u'_ref12', var.get(u'_iterator12').get((var.put(u'_i12',Js(var.get(u'_i12').to_number())+Js(1))-Js(1))))
                                    else:
                                        var.put(u'_i12', var.get(u'_iterator12').callprop(u'next'))
                                        if var.get(u'_i12').get(u'done'):
                                            break
                                        var.put(u'_ref12', var.get(u'_i12').get(u'value'))
                                    var.put(u'elem', var.get(u'_ref12'))
                                    if var.get(u"this").callprop(u'isPure', var.get(u'elem'), var.get(u'constantsOnly')).neg():
                                        return Js(False)
                                
                                return var.get(u'true')
                            else:
                                if var.get(u't').callprop(u'isObjectExpression', var.get(u'node')):
                                    #for JS loop
                                    var.put(u'_iterator13', var.get(u'node').get(u'properties'))
                                    var.put(u'_isArray13', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator13')))
                                    var.put(u'_i13', Js(0.0))
                                    var.put(u'_iterator13', (var.get(u'_iterator13') if var.get(u'_isArray13') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator13'))))
                                    while 1:
                                        pass
                                        if var.get(u'_isArray13'):
                                            if (var.get(u'_i13')>=var.get(u'_iterator13').get(u'length')):
                                                break
                                            var.put(u'_ref13', var.get(u'_iterator13').get((var.put(u'_i13',Js(var.get(u'_i13').to_number())+Js(1))-Js(1))))
                                        else:
                                            var.put(u'_i13', var.get(u'_iterator13').callprop(u'next'))
                                            if var.get(u'_i13').get(u'done'):
                                                break
                                            var.put(u'_ref13', var.get(u'_i13').get(u'value'))
                                        var.put(u'prop', var.get(u'_ref13'))
                                        if var.get(u"this").callprop(u'isPure', var.get(u'prop'), var.get(u'constantsOnly')).neg():
                                            return Js(False)
                                    
                                    return var.get(u'true')
                                else:
                                    if var.get(u't').callprop(u'isClassMethod', var.get(u'node')):
                                        if (var.get(u'node').get(u'computed') and var.get(u"this").callprop(u'isPure', var.get(u'node').get(u'key'), var.get(u'constantsOnly')).neg()):
                                            return Js(False)
                                        if (PyJsStrictEq(var.get(u'node').get(u'kind'),Js(u'get')) or PyJsStrictEq(var.get(u'node').get(u'kind'),Js(u'set'))):
                                            return Js(False)
                                        return var.get(u'true')
                                    else:
                                        if (var.get(u't').callprop(u'isClassProperty', var.get(u'node')) or var.get(u't').callprop(u'isObjectProperty', var.get(u'node'))):
                                            if (var.get(u'node').get(u'computed') and var.get(u"this").callprop(u'isPure', var.get(u'node').get(u'key'), var.get(u'constantsOnly')).neg()):
                                                return Js(False)
                                            return var.get(u"this").callprop(u'isPure', var.get(u'node').get(u'value'), var.get(u'constantsOnly'))
                                        else:
                                            if var.get(u't').callprop(u'isUnaryExpression', var.get(u'node')):
                                                return var.get(u"this").callprop(u'isPure', var.get(u'node').get(u'argument'), var.get(u'constantsOnly'))
                                            else:
                                                return var.get(u't').callprop(u'isPureish', var.get(u'node'))
        PyJs_isPure_2152_._set_name(u'isPure')
        var.get(u'Scope').get(u'prototype').put(u'isPure', PyJs_isPure_2152_)
        @Js
        def PyJs_setData_2153_(key, val, this, arguments, var=var):
            var = Scope({u'this':this, u'setData':PyJs_setData_2153_, u'val':val, u'key':key, u'arguments':arguments}, var)
            var.registers([u'val', u'key'])
            return var.get(u"this").get(u'data').put(var.get(u'key'), var.get(u'val'))
        PyJs_setData_2153_._set_name(u'setData')
        var.get(u'Scope').get(u'prototype').put(u'setData', PyJs_setData_2153_)
        @Js
        def PyJs_getData_2154_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'getData':PyJs_getData_2154_, u'arguments':arguments, u'key':key}, var)
            var.registers([u'scope', u'data', u'key'])
            var.put(u'scope', var.get(u"this"))
            while 1:
                var.put(u'data', var.get(u'scope').get(u'data').get(var.get(u'key')))
                if (var.get(u'data')!=var.get(u"null")):
                    return var.get(u'data')
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
        PyJs_getData_2154_._set_name(u'getData')
        var.get(u'Scope').get(u'prototype').put(u'getData', PyJs_getData_2154_)
        @Js
        def PyJs_removeData_2155_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'removeData':PyJs_removeData_2155_, u'arguments':arguments, u'key':key}, var)
            var.registers([u'scope', u'data', u'key'])
            var.put(u'scope', var.get(u"this"))
            while 1:
                var.put(u'data', var.get(u'scope').get(u'data').get(var.get(u'key')))
                if (var.get(u'data')!=var.get(u"null")):
                    var.get(u'scope').get(u'data').put(var.get(u'key'), var.get(u"null"))
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
        PyJs_removeData_2155_._set_name(u'removeData')
        var.get(u'Scope').get(u'prototype').put(u'removeData', PyJs_removeData_2155_)
        @Js
        def PyJs_init_2156_(this, arguments, var=var):
            var = Scope({u'this':this, u'init':PyJs_init_2156_, u'arguments':arguments}, var)
            var.registers([])
            if var.get(u"this").get(u'references').neg():
                var.get(u"this").callprop(u'crawl')
        PyJs_init_2156_._set_name(u'init')
        var.get(u'Scope').get(u'prototype').put(u'init', PyJs_init_2156_)
        @Js
        def PyJs_crawl_2157_(this, arguments, var=var):
            var = Scope({u'this':this, u'crawl':PyJs_crawl_2157_, u'arguments':arguments}, var)
            var.registers([])
            (var.put(u'_crawlCallsCount',Js(var.get(u'_crawlCallsCount').to_number())+Js(1))-Js(1))
            var.get(u"this").callprop(u'_crawl')
            (var.put(u'_crawlCallsCount',Js(var.get(u'_crawlCallsCount').to_number())-Js(1))+Js(1))
        PyJs_crawl_2157_._set_name(u'crawl')
        var.get(u'Scope').get(u'prototype').put(u'crawl', PyJs_crawl_2157_)
        @Js
        def PyJs__crawl_2158_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'_crawl':PyJs__crawl_2158_}, var)
            var.registers([u'binding', u'_ref15', u'param', u'_ref17', u'_ref16', u'state', u'_ref14', u'params', u'_isArray18', u'ref', u'_ref18', u'node', u'parent', u'_isArray17', u'_isArray16', u'_isArray15', u'_isArray14', u'key', u'path', u'_path2', u'_iterator15', u'_iterator14', u'_iterator17', u'_iterator16', u'name', u'_iterator18', u'ids', u'programParent', u'_i17', u'_i16', u'_i15', u'_i14', u'_i18', u'_path'])
            var.put(u'path', var.get(u"this").get(u'path'))
            var.get(u"this").put(u'references', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.get(u"this").put(u'bindings', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.get(u"this").put(u'globals', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.get(u"this").put(u'uids', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.get(u"this").put(u'data', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            if var.get(u'path').callprop(u'isLoop'):
                #for JS loop
                var.put(u'_iterator14', var.get(u't').get(u'FOR_INIT_KEYS'))
                var.put(u'_isArray14', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator14')))
                var.put(u'_i14', Js(0.0))
                var.put(u'_iterator14', (var.get(u'_iterator14') if var.get(u'_isArray14') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator14'))))
                while 1:
                    pass
                    if var.get(u'_isArray14'):
                        if (var.get(u'_i14')>=var.get(u'_iterator14').get(u'length')):
                            break
                        var.put(u'_ref14', var.get(u'_iterator14').get((var.put(u'_i14',Js(var.get(u'_i14').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i14', var.get(u'_iterator14').callprop(u'next'))
                        if var.get(u'_i14').get(u'done'):
                            break
                        var.put(u'_ref14', var.get(u'_i14').get(u'value'))
                    var.put(u'key', var.get(u'_ref14'))
                    var.put(u'node', var.get(u'path').callprop(u'get', var.get(u'key')))
                    if var.get(u'node').callprop(u'isBlockScoped'):
                        var.get(u"this").callprop(u'registerBinding', var.get(u'node').get(u'node').get(u'kind'), var.get(u'node'))
                
            if (var.get(u'path').callprop(u'isFunctionExpression') and var.get(u'path').callprop(u'has', Js(u'id'))):
                if var.get(u'path').callprop(u'get', Js(u'id')).get(u'node').get(var.get(u't').get(u'NOT_LOCAL_BINDING')).neg():
                    var.get(u"this").callprop(u'registerBinding', Js(u'local'), var.get(u'path').callprop(u'get', Js(u'id')), var.get(u'path'))
            if (var.get(u'path').callprop(u'isClassExpression') and var.get(u'path').callprop(u'has', Js(u'id'))):
                if var.get(u'path').callprop(u'get', Js(u'id')).get(u'node').get(var.get(u't').get(u'NOT_LOCAL_BINDING')).neg():
                    var.get(u"this").callprop(u'registerBinding', Js(u'local'), var.get(u'path'))
            if var.get(u'path').callprop(u'isFunction'):
                var.put(u'params', var.get(u'path').callprop(u'get', Js(u'params')))
                #for JS loop
                var.put(u'_iterator15', var.get(u'params'))
                var.put(u'_isArray15', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator15')))
                var.put(u'_i15', Js(0.0))
                var.put(u'_iterator15', (var.get(u'_iterator15') if var.get(u'_isArray15') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator15'))))
                while 1:
                    pass
                    if var.get(u'_isArray15'):
                        if (var.get(u'_i15')>=var.get(u'_iterator15').get(u'length')):
                            break
                        var.put(u'_ref15', var.get(u'_iterator15').get((var.put(u'_i15',Js(var.get(u'_i15').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i15', var.get(u'_iterator15').callprop(u'next'))
                        if var.get(u'_i15').get(u'done'):
                            break
                        var.put(u'_ref15', var.get(u'_i15').get(u'value'))
                    var.put(u'param', var.get(u'_ref15'))
                    var.get(u"this").callprop(u'registerBinding', Js(u'param'), var.get(u'param'))
                
            if var.get(u'path').callprop(u'isCatchClause'):
                var.get(u"this").callprop(u'registerBinding', Js(u'let'), var.get(u'path'))
            var.put(u'parent', var.get(u"this").callprop(u'getProgramParent'))
            if var.get(u'parent').get(u'crawling'):
                return var.get('undefined')
            PyJs_Object_2159_ = Js({u'references':Js([]),u'constantViolations':Js([]),u'assignments':Js([])})
            var.put(u'state', PyJs_Object_2159_)
            var.get(u"this").put(u'crawling', var.get(u'true'))
            var.get(u'path').callprop(u'traverse', var.get(u'collectorVisitor'), var.get(u'state'))
            var.get(u"this").put(u'crawling', Js(False))
            #for JS loop
            var.put(u'_iterator16', var.get(u'state').get(u'assignments'))
            var.put(u'_isArray16', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator16')))
            var.put(u'_i16', Js(0.0))
            var.put(u'_iterator16', (var.get(u'_iterator16') if var.get(u'_isArray16') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator16'))))
            while 1:
                pass
                if var.get(u'_isArray16'):
                    if (var.get(u'_i16')>=var.get(u'_iterator16').get(u'length')):
                        break
                    var.put(u'_ref16', var.get(u'_iterator16').get((var.put(u'_i16',Js(var.get(u'_i16').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i16', var.get(u'_iterator16').callprop(u'next'))
                    if var.get(u'_i16').get(u'done'):
                        break
                    var.put(u'_ref16', var.get(u'_i16').get(u'value'))
                var.put(u'_path', var.get(u'_ref16'))
                var.put(u'ids', var.get(u'_path').callprop(u'getBindingIdentifiers'))
                var.put(u'programParent', PyJsComma(Js(0.0), Js(None)))
                for PyJsTemp in var.get(u'ids'):
                    var.put(u'name', PyJsTemp)
                    if var.get(u'_path').get(u'scope').callprop(u'getBinding', var.get(u'name')):
                        continue
                    var.put(u'programParent', (var.get(u'programParent') or var.get(u'_path').get(u'scope').callprop(u'getProgramParent')))
                    var.get(u'programParent').callprop(u'addGlobal', var.get(u'ids').get(var.get(u'name')))
                var.get(u'_path').get(u'scope').callprop(u'registerConstantViolation', var.get(u'_path'))
            
            #for JS loop
            var.put(u'_iterator17', var.get(u'state').get(u'references'))
            var.put(u'_isArray17', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator17')))
            var.put(u'_i17', Js(0.0))
            var.put(u'_iterator17', (var.get(u'_iterator17') if var.get(u'_isArray17') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator17'))))
            while 1:
                pass
                if var.get(u'_isArray17'):
                    if (var.get(u'_i17')>=var.get(u'_iterator17').get(u'length')):
                        break
                    var.put(u'_ref17', var.get(u'_iterator17').get((var.put(u'_i17',Js(var.get(u'_i17').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i17', var.get(u'_iterator17').callprop(u'next'))
                    if var.get(u'_i17').get(u'done'):
                        break
                    var.put(u'_ref17', var.get(u'_i17').get(u'value'))
                var.put(u'ref', var.get(u'_ref17'))
                var.put(u'binding', var.get(u'ref').get(u'scope').callprop(u'getBinding', var.get(u'ref').get(u'node').get(u'name')))
                if var.get(u'binding'):
                    var.get(u'binding').callprop(u'reference', var.get(u'ref'))
                else:
                    var.get(u'ref').get(u'scope').callprop(u'getProgramParent').callprop(u'addGlobal', var.get(u'ref').get(u'node'))
            
            #for JS loop
            var.put(u'_iterator18', var.get(u'state').get(u'constantViolations'))
            var.put(u'_isArray18', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator18')))
            var.put(u'_i18', Js(0.0))
            var.put(u'_iterator18', (var.get(u'_iterator18') if var.get(u'_isArray18') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator18'))))
            while 1:
                pass
                if var.get(u'_isArray18'):
                    if (var.get(u'_i18')>=var.get(u'_iterator18').get(u'length')):
                        break
                    var.put(u'_ref18', var.get(u'_iterator18').get((var.put(u'_i18',Js(var.get(u'_i18').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i18', var.get(u'_iterator18').callprop(u'next'))
                    if var.get(u'_i18').get(u'done'):
                        break
                    var.put(u'_ref18', var.get(u'_i18').get(u'value'))
                var.put(u'_path2', var.get(u'_ref18'))
                var.get(u'_path2').get(u'scope').callprop(u'registerConstantViolation', var.get(u'_path2'))
            
        PyJs__crawl_2158_._set_name(u'_crawl')
        var.get(u'Scope').get(u'prototype').put(u'_crawl', PyJs__crawl_2158_)
        @Js
        def PyJs_push_2160_(opts, this, arguments, var=var):
            var = Scope({u'this':this, u'push':PyJs_push_2160_, u'arguments':arguments, u'opts':opts}, var)
            var.registers([u'kind', u'blockHoist', u'_path$unshiftContaine', u'declarPath', u'declar', u'declarator', u'path', u'dataKey', u'unique', u'opts'])
            var.put(u'path', var.get(u"this").get(u'path'))
            if (var.get(u'path').callprop(u'isBlockStatement').neg() and var.get(u'path').callprop(u'isProgram').neg()):
                var.put(u'path', var.get(u"this").callprop(u'getBlockParent').get(u'path'))
            if var.get(u'path').callprop(u'isSwitchStatement'):
                var.put(u'path', var.get(u"this").callprop(u'getFunctionParent').get(u'path'))
            if ((var.get(u'path').callprop(u'isLoop') or var.get(u'path').callprop(u'isCatchClause')) or var.get(u'path').callprop(u'isFunction')):
                var.get(u't').callprop(u'ensureBlock', var.get(u'path').get(u'node'))
                var.put(u'path', var.get(u'path').callprop(u'get', Js(u'body')))
            var.put(u'unique', var.get(u'opts').get(u'unique'))
            var.put(u'kind', (var.get(u'opts').get(u'kind') or Js(u'var')))
            var.put(u'blockHoist', (Js(2.0) if (var.get(u'opts').get(u'_blockHoist')==var.get(u"null")) else var.get(u'opts').get(u'_blockHoist')))
            var.put(u'dataKey', (((Js(u'declaration:')+var.get(u'kind'))+Js(u':'))+var.get(u'blockHoist')))
            var.put(u'declarPath', (var.get(u'unique').neg() and var.get(u'path').callprop(u'getData', var.get(u'dataKey'))))
            if var.get(u'declarPath').neg():
                var.put(u'declar', var.get(u't').callprop(u'variableDeclaration', var.get(u'kind'), Js([])))
                var.get(u'declar').put(u'_generated', var.get(u'true'))
                var.get(u'declar').put(u'_blockHoist', var.get(u'blockHoist'))
                var.put(u'_path$unshiftContaine', var.get(u'path').callprop(u'unshiftContainer', Js(u'body'), Js([var.get(u'declar')])))
                var.put(u'declarPath', var.get(u'_path$unshiftContaine').get(u'0'))
                if var.get(u'unique').neg():
                    var.get(u'path').callprop(u'setData', var.get(u'dataKey'), var.get(u'declarPath'))
            var.put(u'declarator', var.get(u't').callprop(u'variableDeclarator', var.get(u'opts').get(u'id'), var.get(u'opts').get(u'init')))
            var.get(u'declarPath').get(u'node').get(u'declarations').callprop(u'push', var.get(u'declarator'))
            var.get(u"this").callprop(u'registerBinding', var.get(u'kind'), var.get(u'declarPath').callprop(u'get', Js(u'declarations')).callprop(u'pop'))
        PyJs_push_2160_._set_name(u'push')
        var.get(u'Scope').get(u'prototype').put(u'push', PyJs_push_2160_)
        @Js
        def PyJs_getProgramParent_2161_(this, arguments, var=var):
            var = Scope({u'this':this, u'getProgramParent':PyJs_getProgramParent_2161_, u'arguments':arguments}, var)
            var.registers([u'scope'])
            var.put(u'scope', var.get(u"this"))
            while 1:
                if var.get(u'scope').get(u'path').callprop(u'isProgram'):
                    return var.get(u'scope')
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"We couldn't find a Function or Program...")))
            raise PyJsTempException
        PyJs_getProgramParent_2161_._set_name(u'getProgramParent')
        var.get(u'Scope').get(u'prototype').put(u'getProgramParent', PyJs_getProgramParent_2161_)
        @Js
        def PyJs_getFunctionParent_2162_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'getFunctionParent':PyJs_getFunctionParent_2162_}, var)
            var.registers([u'scope'])
            var.put(u'scope', var.get(u"this"))
            while 1:
                if var.get(u'scope').get(u'path').callprop(u'isFunctionParent'):
                    return var.get(u'scope')
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"We couldn't find a Function or Program...")))
            raise PyJsTempException
        PyJs_getFunctionParent_2162_._set_name(u'getFunctionParent')
        var.get(u'Scope').get(u'prototype').put(u'getFunctionParent', PyJs_getFunctionParent_2162_)
        @Js
        def PyJs_getBlockParent_2163_(this, arguments, var=var):
            var = Scope({u'this':this, u'getBlockParent':PyJs_getBlockParent_2163_, u'arguments':arguments}, var)
            var.registers([u'scope'])
            var.put(u'scope', var.get(u"this"))
            while 1:
                if var.get(u'scope').get(u'path').callprop(u'isBlockParent'):
                    return var.get(u'scope')
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...")))
            raise PyJsTempException
        PyJs_getBlockParent_2163_._set_name(u'getBlockParent')
        var.get(u'Scope').get(u'prototype').put(u'getBlockParent', PyJs_getBlockParent_2163_)
        @Js
        def PyJs_getAllBindings_2164_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'getAllBindings':PyJs_getAllBindings_2164_}, var)
            var.registers([u'scope', u'ids'])
            var.put(u'ids', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            var.put(u'scope', var.get(u"this"))
            while 1:
                PyJsComma(Js(0.0),var.get(u'_defaults2').get(u'default'))(var.get(u'ids'), var.get(u'scope').get(u'bindings'))
                var.put(u'scope', var.get(u'scope').get(u'parent'))
                if not var.get(u'scope'):
                    break
            return var.get(u'ids')
        PyJs_getAllBindings_2164_._set_name(u'getAllBindings')
        var.get(u'Scope').get(u'prototype').put(u'getAllBindings', PyJs_getAllBindings_2164_)
        @Js
        def PyJs_getAllBindingsOfKind_2165_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'getAllBindingsOfKind':PyJs_getAllBindingsOfKind_2165_}, var)
            var.registers([u'kind', u'name', u'binding', u'ids', u'_iterator19', u'_ref19', u'scope', u'_i19', u'_isArray19'])
            var.put(u'ids', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
            #for JS loop
            var.put(u'_iterator19', var.get(u'arguments'))
            var.put(u'_isArray19', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator19')))
            var.put(u'_i19', Js(0.0))
            var.put(u'_iterator19', (var.get(u'_iterator19') if var.get(u'_isArray19') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator19'))))
            while 1:
                pass
                if var.get(u'_isArray19'):
                    if (var.get(u'_i19')>=var.get(u'_iterator19').get(u'length')):
                        break
                    var.put(u'_ref19', var.get(u'_iterator19').get((var.put(u'_i19',Js(var.get(u'_i19').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i19', var.get(u'_iterator19').callprop(u'next'))
                    if var.get(u'_i19').get(u'done'):
                        break
                    var.put(u'_ref19', var.get(u'_i19').get(u'value'))
                var.put(u'kind', var.get(u'_ref19'))
                var.put(u'scope', var.get(u"this"))
                while 1:
                    for PyJsTemp in var.get(u'scope').get(u'bindings'):
                        var.put(u'name', PyJsTemp)
                        var.put(u'binding', var.get(u'scope').get(u'bindings').get(var.get(u'name')))
                        if PyJsStrictEq(var.get(u'binding').get(u'kind'),var.get(u'kind')):
                            var.get(u'ids').put(var.get(u'name'), var.get(u'binding'))
                    var.put(u'scope', var.get(u'scope').get(u'parent'))
                    if not var.get(u'scope'):
                        break
            
            return var.get(u'ids')
        PyJs_getAllBindingsOfKind_2165_._set_name(u'getAllBindingsOfKind')
        var.get(u'Scope').get(u'prototype').put(u'getAllBindingsOfKind', PyJs_getAllBindingsOfKind_2165_)
        @Js
        def PyJs_bindingIdentifierEquals_2166_(name, node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'bindingIdentifierEquals':PyJs_bindingIdentifierEquals_2166_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'node', u'name'])
            return PyJsStrictEq(var.get(u"this").callprop(u'getBindingIdentifier', var.get(u'name')),var.get(u'node'))
        PyJs_bindingIdentifierEquals_2166_._set_name(u'bindingIdentifierEquals')
        var.get(u'Scope').get(u'prototype').put(u'bindingIdentifierEquals', PyJs_bindingIdentifierEquals_2166_)
        @Js
        def PyJs_warnOnFlowBinding_2167_(binding, this, arguments, var=var):
            var = Scope({u'this':this, u'binding':binding, u'arguments':arguments, u'warnOnFlowBinding':PyJs_warnOnFlowBinding_2167_}, var)
            var.registers([u'binding'])
            if ((PyJsStrictEq(var.get(u'_crawlCallsCount'),Js(0.0)) and var.get(u'binding')) and var.get(u'binding').get(u'path').callprop(u'isFlow')):
                var.get(u'console').callprop(u'warn', Js(u'\n        You or one of the Babel plugins you are using are using Flow declarations as bindings.\n        Support for this will be removed in version 6.8. To find out the caller, grep for this\n        message and change it to a `console.trace()`.\n      '))
            return var.get(u'binding')
        PyJs_warnOnFlowBinding_2167_._set_name(u'warnOnFlowBinding')
        var.get(u'Scope').get(u'prototype').put(u'warnOnFlowBinding', PyJs_warnOnFlowBinding_2167_)
        @Js
        def PyJs_getBinding_2168_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'getBinding':PyJs_getBinding_2168_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'scope', u'binding', u'name'])
            var.put(u'scope', var.get(u"this"))
            while 1:
                var.put(u'binding', var.get(u'scope').callprop(u'getOwnBinding', var.get(u'name')))
                if var.get(u'binding'):
                    return var.get(u"this").callprop(u'warnOnFlowBinding', var.get(u'binding'))
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
        PyJs_getBinding_2168_._set_name(u'getBinding')
        var.get(u'Scope').get(u'prototype').put(u'getBinding', PyJs_getBinding_2168_)
        @Js
        def PyJs_getOwnBinding_2169_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'getOwnBinding':PyJs_getOwnBinding_2169_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'name'])
            return var.get(u"this").callprop(u'warnOnFlowBinding', var.get(u"this").get(u'bindings').get(var.get(u'name')))
        PyJs_getOwnBinding_2169_._set_name(u'getOwnBinding')
        var.get(u'Scope').get(u'prototype').put(u'getOwnBinding', PyJs_getOwnBinding_2169_)
        @Js
        def PyJs_getBindingIdentifier_2170_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'name':name, u'getBindingIdentifier':PyJs_getBindingIdentifier_2170_, u'arguments':arguments}, var)
            var.registers([u'info', u'name'])
            var.put(u'info', var.get(u"this").callprop(u'getBinding', var.get(u'name')))
            return (var.get(u'info') and var.get(u'info').get(u'identifier'))
        PyJs_getBindingIdentifier_2170_._set_name(u'getBindingIdentifier')
        var.get(u'Scope').get(u'prototype').put(u'getBindingIdentifier', PyJs_getBindingIdentifier_2170_)
        @Js
        def PyJs_getOwnBindingIdentifier_2171_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'getOwnBindingIdentifier':PyJs_getOwnBindingIdentifier_2171_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'binding', u'name'])
            var.put(u'binding', var.get(u"this").get(u'bindings').get(var.get(u'name')))
            return (var.get(u'binding') and var.get(u'binding').get(u'identifier'))
        PyJs_getOwnBindingIdentifier_2171_._set_name(u'getOwnBindingIdentifier')
        var.get(u'Scope').get(u'prototype').put(u'getOwnBindingIdentifier', PyJs_getOwnBindingIdentifier_2171_)
        @Js
        def PyJs_hasOwnBinding_2172_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'name':name, u'hasOwnBinding':PyJs_hasOwnBinding_2172_, u'arguments':arguments}, var)
            var.registers([u'name'])
            return var.get(u"this").callprop(u'getOwnBinding', var.get(u'name')).neg().neg()
        PyJs_hasOwnBinding_2172_._set_name(u'hasOwnBinding')
        var.get(u'Scope').get(u'prototype').put(u'hasOwnBinding', PyJs_hasOwnBinding_2172_)
        @Js
        def PyJs_hasBinding_2173_(name, noGlobals, this, arguments, var=var):
            var = Scope({u'this':this, u'hasBinding':PyJs_hasBinding_2173_, u'name':name, u'noGlobals':noGlobals, u'arguments':arguments}, var)
            var.registers([u'name', u'noGlobals'])
            if var.get(u'name').neg():
                return Js(False)
            if var.get(u"this").callprop(u'hasOwnBinding', var.get(u'name')):
                return var.get(u'true')
            if var.get(u"this").callprop(u'parentHasBinding', var.get(u'name'), var.get(u'noGlobals')):
                return var.get(u'true')
            if var.get(u"this").callprop(u'hasUid', var.get(u'name')):
                return var.get(u'true')
            if (var.get(u'noGlobals').neg() and PyJsComma(Js(0.0),var.get(u'_includes2').get(u'default'))(var.get(u'Scope').get(u'globals'), var.get(u'name'))):
                return var.get(u'true')
            if (var.get(u'noGlobals').neg() and PyJsComma(Js(0.0),var.get(u'_includes2').get(u'default'))(var.get(u'Scope').get(u'contextVariables'), var.get(u'name'))):
                return var.get(u'true')
            return Js(False)
        PyJs_hasBinding_2173_._set_name(u'hasBinding')
        var.get(u'Scope').get(u'prototype').put(u'hasBinding', PyJs_hasBinding_2173_)
        @Js
        def PyJs_parentHasBinding_2174_(name, noGlobals, this, arguments, var=var):
            var = Scope({u'this':this, u'parentHasBinding':PyJs_parentHasBinding_2174_, u'name':name, u'noGlobals':noGlobals, u'arguments':arguments}, var)
            var.registers([u'name', u'noGlobals'])
            return (var.get(u"this").get(u'parent') and var.get(u"this").get(u'parent').callprop(u'hasBinding', var.get(u'name'), var.get(u'noGlobals')))
        PyJs_parentHasBinding_2174_._set_name(u'parentHasBinding')
        var.get(u'Scope').get(u'prototype').put(u'parentHasBinding', PyJs_parentHasBinding_2174_)
        @Js
        def PyJs_moveBindingTo_2175_(name, scope, this, arguments, var=var):
            var = Scope({u'this':this, u'scope':scope, u'moveBindingTo':PyJs_moveBindingTo_2175_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'info', u'scope', u'name'])
            var.put(u'info', var.get(u"this").callprop(u'getBinding', var.get(u'name')))
            if var.get(u'info'):
                var.get(u'info').get(u'scope').callprop(u'removeOwnBinding', var.get(u'name'))
                var.get(u'info').put(u'scope', var.get(u'scope'))
                var.get(u'scope').get(u'bindings').put(var.get(u'name'), var.get(u'info'))
        PyJs_moveBindingTo_2175_._set_name(u'moveBindingTo')
        var.get(u'Scope').get(u'prototype').put(u'moveBindingTo', PyJs_moveBindingTo_2175_)
        @Js
        def PyJs_removeOwnBinding_2176_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'removeOwnBinding':PyJs_removeOwnBinding_2176_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'name'])
            var.get(u"this").get(u'bindings').delete(var.get(u'name'))
        PyJs_removeOwnBinding_2176_._set_name(u'removeOwnBinding')
        var.get(u'Scope').get(u'prototype').put(u'removeOwnBinding', PyJs_removeOwnBinding_2176_)
        @Js
        def PyJs_removeBinding_2177_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'name':name, u'removeBinding':PyJs_removeBinding_2177_, u'arguments':arguments}, var)
            var.registers([u'info', u'scope', u'name'])
            var.put(u'info', var.get(u"this").callprop(u'getBinding', var.get(u'name')))
            if var.get(u'info'):
                var.get(u'info').get(u'scope').callprop(u'removeOwnBinding', var.get(u'name'))
            var.put(u'scope', var.get(u"this"))
            while 1:
                if var.get(u'scope').get(u'uids').get(var.get(u'name')):
                    var.get(u'scope').get(u'uids').put(var.get(u'name'), Js(False))
                if not var.put(u'scope', var.get(u'scope').get(u'parent')):
                    break
        PyJs_removeBinding_2177_._set_name(u'removeBinding')
        var.get(u'Scope').get(u'prototype').put(u'removeBinding', PyJs_removeBinding_2177_)
        return var.get(u'Scope')
    PyJs_anonymous_2120_._set_name(u'anonymous')
    var.put(u'Scope', PyJs_anonymous_2120_())
    var.get(u'Scope').put(u'globals', PyJsComma(Js(0.0),var.get(u'_keys2').get(u'default'))(var.get(u'_globals2').get(u'default').get(u'builtin')))
    var.get(u'Scope').put(u'contextVariables', Js([Js(u'arguments'), Js(u'undefined'), Js(u'Infinity'), Js(u'NaN')]))
    var.get(u'exports').put(u'default', var.get(u'Scope'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_2103_._set_name(u'anonymous')
PyJs_Object_2178_ = Js({u'../cache':Js(222.0),u'../index':Js(225.0),u'./binding':Js(243.0),u'./lib/renamer':Js(245.0),u'babel-messages':Js(57.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/map':Js(98.0),u'babel-runtime/core-js/object/create':Js(101.0),u'babel-runtime/core-js/object/keys':Js(103.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-types':Js(258.0),u'globals':Js(278.0),u'lodash/defaults':Js(442.0),u'lodash/includes':Js(456.0),u'lodash/repeat':Js(483.0)})
@Js
def PyJs_anonymous_2179_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_binding2', u'exports', u'_interopRequireWildcard', u'Renamer', u'require', u'_babelTypes', u'renameVisitor', u'module', u't', u'_binding', u'_interopRequireDefault', u'_classCallCheck3', u'_classCallCheck2'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2181_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2181_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2180_ = Js({})
            var.put(u'newObj', PyJs_Object_2180_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_classCallCheck2', var.get(u'require')(Js(u'babel-runtime/helpers/classCallCheck')))
    var.put(u'_classCallCheck3', var.get(u'_interopRequireDefault')(var.get(u'_classCallCheck2')))
    var.put(u'_binding', var.get(u'require')(Js(u'../binding')))
    var.put(u'_binding2', var.get(u'_interopRequireDefault')(var.get(u'_binding')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    pass
    pass
    @Js
    def PyJs_ReferencedIdentifier_2183_(_ref, state, this, arguments, var=var):
        var = Scope({u'this':this, u'_ref':_ref, u'ReferencedIdentifier':PyJs_ReferencedIdentifier_2183_, u'state':state, u'arguments':arguments}, var)
        var.registers([u'node', u'_ref', u'state'])
        var.put(u'node', var.get(u'_ref').get(u'node'))
        if PyJsStrictEq(var.get(u'node').get(u'name'),var.get(u'state').get(u'oldName')):
            var.get(u'node').put(u'name', var.get(u'state').get(u'newName'))
    PyJs_ReferencedIdentifier_2183_._set_name(u'ReferencedIdentifier')
    @Js
    def PyJs_Scope_2184_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'arguments':arguments, u'Scope':PyJs_Scope_2184_}, var)
        var.registers([u'path', u'state'])
        if var.get(u'path').get(u'scope').callprop(u'bindingIdentifierEquals', var.get(u'state').get(u'oldName'), var.get(u'state').get(u'binding').get(u'identifier')).neg():
            var.get(u'path').callprop(u'skip')
    PyJs_Scope_2184_._set_name(u'Scope')
    @Js
    def PyJs_AssignmentExpressionDeclaration_2185_(path, state, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'state':state, u'AssignmentExpressionDeclaration':PyJs_AssignmentExpressionDeclaration_2185_, u'arguments':arguments}, var)
        var.registers([u'path', u'state', u'ids', u'name'])
        var.put(u'ids', var.get(u'path').callprop(u'getOuterBindingIdentifiers'))
        for PyJsTemp in var.get(u'ids'):
            var.put(u'name', PyJsTemp)
            if PyJsStrictEq(var.get(u'name'),var.get(u'state').get(u'oldName')):
                var.get(u'ids').get(var.get(u'name')).put(u'name', var.get(u'state').get(u'newName'))
    PyJs_AssignmentExpressionDeclaration_2185_._set_name(u'AssignmentExpressionDeclaration')
    PyJs_Object_2182_ = Js({u'ReferencedIdentifier':PyJs_ReferencedIdentifier_2183_,u'Scope':PyJs_Scope_2184_,u'AssignmentExpression|Declaration':PyJs_AssignmentExpressionDeclaration_2185_})
    var.put(u'renameVisitor', PyJs_Object_2182_)
    @Js
    def PyJs_anonymous_2186_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'Renamer'])
        @Js
        def PyJsHoisted_Renamer_(binding, oldName, newName, this, arguments, var=var):
            var = Scope({u'newName':newName, u'this':this, u'binding':binding, u'oldName':oldName, u'arguments':arguments}, var)
            var.registers([u'newName', u'binding', u'oldName'])
            PyJsComma(Js(0.0),var.get(u'_classCallCheck3').get(u'default'))(var.get(u"this"), var.get(u'Renamer'))
            var.get(u"this").put(u'newName', var.get(u'newName'))
            var.get(u"this").put(u'oldName', var.get(u'oldName'))
            var.get(u"this").put(u'binding', var.get(u'binding'))
        PyJsHoisted_Renamer_.func_name = u'Renamer'
        var.put(u'Renamer', PyJsHoisted_Renamer_)
        pass
        @Js
        def PyJs_maybeConvertFromExportDeclaration_2187_(parentDeclar, this, arguments, var=var):
            var = Scope({u'this':this, u'parentDeclar':parentDeclar, u'maybeConvertFromExportDeclaration':PyJs_maybeConvertFromExportDeclaration_2187_, u'arguments':arguments}, var)
            var.registers([u'specifiers', u'exportDeclar', u'name', u'bindingIdentifiers', u'exportedName', u'parentDeclar', u'localName', u'aliasDeclar', u'isDefault'])
            var.put(u'exportDeclar', (var.get(u'parentDeclar').get(u'parentPath').callprop(u'isExportDeclaration') and var.get(u'parentDeclar').get(u'parentPath')))
            if var.get(u'exportDeclar').neg():
                return var.get('undefined')
            var.put(u'isDefault', var.get(u'exportDeclar').callprop(u'isExportDefaultDeclaration'))
            if ((var.get(u'isDefault') and (var.get(u'parentDeclar').callprop(u'isFunctionDeclaration') or var.get(u'parentDeclar').callprop(u'isClassDeclaration'))) and var.get(u'parentDeclar').get(u'node').get(u'id').neg()):
                var.get(u'parentDeclar').get(u'node').put(u'id', var.get(u'parentDeclar').get(u'scope').callprop(u'generateUidIdentifier', Js(u'default')))
            var.put(u'bindingIdentifiers', var.get(u'parentDeclar').callprop(u'getOuterBindingIdentifiers'))
            var.put(u'specifiers', Js([]))
            for PyJsTemp in var.get(u'bindingIdentifiers'):
                var.put(u'name', PyJsTemp)
                var.put(u'localName', (var.get(u"this").get(u'newName') if PyJsStrictEq(var.get(u'name'),var.get(u"this").get(u'oldName')) else var.get(u'name')))
                var.put(u'exportedName', (Js(u'default') if var.get(u'isDefault') else var.get(u'name')))
                var.get(u'specifiers').callprop(u'push', var.get(u't').callprop(u'exportSpecifier', var.get(u't').callprop(u'identifier', var.get(u'localName')), var.get(u't').callprop(u'identifier', var.get(u'exportedName'))))
            if var.get(u'specifiers').get(u'length'):
                var.put(u'aliasDeclar', var.get(u't').callprop(u'exportNamedDeclaration', var.get(u"null"), var.get(u'specifiers')))
                if var.get(u'parentDeclar').callprop(u'isFunctionDeclaration'):
                    var.get(u'aliasDeclar').put(u'_blockHoist', Js(3.0))
                var.get(u'exportDeclar').callprop(u'insertAfter', var.get(u'aliasDeclar'))
                var.get(u'exportDeclar').callprop(u'replaceWith', var.get(u'parentDeclar').get(u'node'))
        PyJs_maybeConvertFromExportDeclaration_2187_._set_name(u'maybeConvertFromExportDeclaration')
        var.get(u'Renamer').get(u'prototype').put(u'maybeConvertFromExportDeclaration', PyJs_maybeConvertFromExportDeclaration_2187_)
        @Js
        def PyJs_maybeConvertFromClassFunctionDeclaration_2188_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'maybeConvertFromClassFunctionDeclaration':PyJs_maybeConvertFromClassFunctionDeclaration_2188_}, var)
            var.registers([u'path'])
            return var.get('undefined')
            if (var.get(u'path').callprop(u'isFunctionDeclaration').neg() and var.get(u'path').callprop(u'isClassDeclaration').neg()):
                return var.get('undefined')
            if PyJsStrictNeq(var.get(u"this").get(u'binding').get(u'kind'),Js(u'hoisted')):
                return var.get('undefined')
            var.get(u'path').get(u'node').put(u'id', var.get(u't').callprop(u'identifier', var.get(u"this").get(u'oldName')))
            var.get(u'path').get(u'node').put(u'_blockHoist', Js(3.0))
            var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'variableDeclaration', Js(u'let'), Js([var.get(u't').callprop(u'variableDeclarator', var.get(u't').callprop(u'identifier', var.get(u"this").get(u'newName')), var.get(u't').callprop(u'toExpression', var.get(u'path').get(u'node')))])))
        PyJs_maybeConvertFromClassFunctionDeclaration_2188_._set_name(u'maybeConvertFromClassFunctionDeclaration')
        var.get(u'Renamer').get(u'prototype').put(u'maybeConvertFromClassFunctionDeclaration', PyJs_maybeConvertFromClassFunctionDeclaration_2188_)
        @Js
        def PyJs_maybeConvertFromClassFunctionExpression_2189_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'maybeConvertFromClassFunctionExpression':PyJs_maybeConvertFromClassFunctionExpression_2189_}, var)
            var.registers([u'path'])
            return var.get('undefined')
            if (var.get(u'path').callprop(u'isFunctionExpression').neg() and var.get(u'path').callprop(u'isClassExpression').neg()):
                return var.get('undefined')
            if PyJsStrictNeq(var.get(u"this").get(u'binding').get(u'kind'),Js(u'local')):
                return var.get('undefined')
            var.get(u'path').get(u'node').put(u'id', var.get(u't').callprop(u'identifier', var.get(u"this").get(u'oldName')))
            PyJs_Object_2190_ = Js({u'id':var.get(u't').callprop(u'identifier', var.get(u"this").get(u'newName'))})
            var.get(u"this").get(u'binding').get(u'scope').get(u'parent').callprop(u'push', PyJs_Object_2190_)
            var.get(u'path').callprop(u'replaceWith', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u't').callprop(u'identifier', var.get(u"this").get(u'newName')), var.get(u'path').get(u'node')))
        PyJs_maybeConvertFromClassFunctionExpression_2189_._set_name(u'maybeConvertFromClassFunctionExpression')
        var.get(u'Renamer').get(u'prototype').put(u'maybeConvertFromClassFunctionExpression', PyJs_maybeConvertFromClassFunctionExpression_2189_)
        @Js
        def PyJs_rename_2191_(block, this, arguments, var=var):
            var = Scope({u'this':this, u'rename':PyJs_rename_2191_, u'arguments':arguments, u'block':block}, var)
            var.registers([u'newName', u'binding', u'oldName', u'parentDeclar', u'scope', u'path', u'block'])
            var.put(u'binding', var.get(u"this").get(u'binding'))
            var.put(u'oldName', var.get(u"this").get(u'oldName'))
            var.put(u'newName', var.get(u"this").get(u'newName'))
            var.put(u'scope', var.get(u'binding').get(u'scope'))
            var.put(u'path', var.get(u'binding').get(u'path'))
            @Js
            def PyJs_anonymous_2192_(path, this, arguments, var=var):
                var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
                var.registers([u'path'])
                return (var.get(u'path').callprop(u'isDeclaration') or var.get(u'path').callprop(u'isFunctionExpression'))
            PyJs_anonymous_2192_._set_name(u'anonymous')
            var.put(u'parentDeclar', var.get(u'path').callprop(u'find', PyJs_anonymous_2192_))
            if var.get(u'parentDeclar'):
                var.get(u"this").callprop(u'maybeConvertFromExportDeclaration', var.get(u'parentDeclar'))
            var.get(u'scope').callprop(u'traverse', (var.get(u'block') or var.get(u'scope').get(u'block')), var.get(u'renameVisitor'), var.get(u"this"))
            if var.get(u'block').neg():
                var.get(u'scope').callprop(u'removeOwnBinding', var.get(u'oldName'))
                var.get(u'scope').get(u'bindings').put(var.get(u'newName'), var.get(u'binding'))
                var.get(u"this").get(u'binding').get(u'identifier').put(u'name', var.get(u'newName'))
            if PyJsStrictEq(var.get(u'binding').get(u'type'),Js(u'hoisted')):
                pass
            if var.get(u'parentDeclar'):
                var.get(u"this").callprop(u'maybeConvertFromClassFunctionDeclaration', var.get(u'parentDeclar'))
                var.get(u"this").callprop(u'maybeConvertFromClassFunctionExpression', var.get(u'parentDeclar'))
        PyJs_rename_2191_._set_name(u'rename')
        var.get(u'Renamer').get(u'prototype').put(u'rename', PyJs_rename_2191_)
        return var.get(u'Renamer')
    PyJs_anonymous_2186_._set_name(u'anonymous')
    var.put(u'Renamer', PyJs_anonymous_2186_())
    var.get(u'exports').put(u'default', var.get(u'Renamer'))
    var.get(u'module').put(u'exports', var.get(u'exports').get(u'default'))
PyJs_anonymous_2179_._set_name(u'anonymous')
PyJs_Object_2193_ = Js({u'../binding':Js(243.0),u'babel-runtime/helpers/classCallCheck':Js(110.0),u'babel-types':Js(258.0)})
@Js
def PyJs_anonymous_2194_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'module', u'_clone', u'_virtualTypes', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'virtualTypes', u'_typeof2', u'_typeof3', u'shouldIgnoreKey', u'validateVisitorMethods', u'verify', u'_keys', u'wrapWithStateOrWrapper', u'_babelMessages', u'exports', u'_interopRequireWildcard', u'mergePair', u'_babelTypes', u'_keys2', u'ensureCallbackArrays', u'ensureEntranceObjects', u'require', u'messages', u'wrapCheck', u'_clone2', u'explode', u'merge', u't'])
    @Js
    def PyJsHoisted_mergePair_(dest, src, this, arguments, var=var):
        var = Scope({u'dest':dest, u'src':src, u'this':this, u'arguments':arguments}, var)
        var.registers([u'dest', u'src', u'key'])
        for PyJsTemp in var.get(u'src'):
            var.put(u'key', PyJsTemp)
            var.get(u'dest').put(var.get(u'key'), Js([]).callprop(u'concat', (var.get(u'dest').get(var.get(u'key')) or Js([])), var.get(u'src').get(var.get(u'key'))))
    PyJsHoisted_mergePair_.func_name = u'mergePair'
    var.put(u'mergePair', PyJsHoisted_mergePair_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2195_ = Js({})
            var.put(u'newObj', PyJs_Object_2195_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_shouldIgnoreKey_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        if PyJsStrictEq(var.get(u'key').get(u'0'),Js(u'_')):
            return var.get(u'true')
        if ((PyJsStrictEq(var.get(u'key'),Js(u'enter')) or PyJsStrictEq(var.get(u'key'),Js(u'exit'))) or PyJsStrictEq(var.get(u'key'),Js(u'shouldSkip'))):
            return var.get(u'true')
        if ((PyJsStrictEq(var.get(u'key'),Js(u'blacklist')) or PyJsStrictEq(var.get(u'key'),Js(u'noScope'))) or PyJsStrictEq(var.get(u'key'),Js(u'skipKeys'))):
            return var.get(u'true')
        return Js(False)
    PyJsHoisted_shouldIgnoreKey_.func_name = u'shouldIgnoreKey'
    var.put(u'shouldIgnoreKey', PyJsHoisted_shouldIgnoreKey_)
    @Js
    def PyJsHoisted_validateVisitorMethods_(path, val, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments, u'val':val}, var)
        var.registers([u'_isArray5', u'fns', u'val', u'_ref5', u'_iterator5', u'path', u'_i5', u'fn'])
        var.put(u'fns', Js([]).callprop(u'concat', var.get(u'val')))
        #for JS loop
        var.put(u'_iterator5', var.get(u'fns'))
        var.put(u'_isArray5', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator5')))
        var.put(u'_i5', Js(0.0))
        var.put(u'_iterator5', (var.get(u'_iterator5') if var.get(u'_isArray5') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator5'))))
        while 1:
            pass
            if var.get(u'_isArray5'):
                if (var.get(u'_i5')>=var.get(u'_iterator5').get(u'length')):
                    break
                var.put(u'_ref5', var.get(u'_iterator5').get((var.put(u'_i5',Js(var.get(u'_i5').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i5', var.get(u'_iterator5').callprop(u'next'))
                if var.get(u'_i5').get(u'done'):
                    break
                var.put(u'_ref5', var.get(u'_i5').get(u'value'))
            var.put(u'fn', var.get(u'_ref5'))
            if PyJsStrictNeq(var.get(u'fn',throw=False).typeof(),Js(u'function')):
                PyJsTempException = JsToPyException(var.get(u'TypeError').create((((Js(u'Non-function found defined in ')+var.get(u'path'))+Js(u' with type '))+(Js(u'undefined') if PyJsStrictEq(var.get(u'fn',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'fn'))))))
                raise PyJsTempException
        
    PyJsHoisted_validateVisitorMethods_.func_name = u'validateVisitorMethods'
    var.put(u'validateVisitorMethods', PyJsHoisted_validateVisitorMethods_)
    @Js
    def PyJsHoisted_verify_(visitor, this, arguments, var=var):
        var = Scope({u'this':this, u'visitor':visitor, u'arguments':arguments}, var)
        var.registers([u'visitors', u'nodeType', u'visitor', u'visitorKey'])
        if var.get(u'visitor').get(u'_verified'):
            return var.get('undefined')
        if PyJsStrictEq(var.get(u'visitor',throw=False).typeof(),Js(u'function')):
            PyJsTempException = JsToPyException(var.get(u'Error').create(var.get(u'messages').callprop(u'get', Js(u'traverseVerifyRootFunction'))))
            raise PyJsTempException
        for PyJsTemp in var.get(u'visitor'):
            var.put(u'nodeType', PyJsTemp)
            if (PyJsStrictEq(var.get(u'nodeType'),Js(u'enter')) or PyJsStrictEq(var.get(u'nodeType'),Js(u'exit'))):
                var.get(u'validateVisitorMethods')(var.get(u'nodeType'), var.get(u'visitor').get(var.get(u'nodeType')))
            if var.get(u'shouldIgnoreKey')(var.get(u'nodeType')):
                continue
            if (var.get(u't').get(u'TYPES').callprop(u'indexOf', var.get(u'nodeType'))<Js(0.0)):
                PyJsTempException = JsToPyException(var.get(u'Error').create(var.get(u'messages').callprop(u'get', Js(u'traverseVerifyNodeType'), var.get(u'nodeType'))))
                raise PyJsTempException
            var.put(u'visitors', var.get(u'visitor').get(var.get(u'nodeType')))
            if PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'visitors',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'visitors'))),Js(u'object')):
                for PyJsTemp in var.get(u'visitors'):
                    var.put(u'visitorKey', PyJsTemp)
                    if (PyJsStrictEq(var.get(u'visitorKey'),Js(u'enter')) or PyJsStrictEq(var.get(u'visitorKey'),Js(u'exit'))):
                        var.get(u'validateVisitorMethods')(((var.get(u'nodeType')+Js(u'.'))+var.get(u'visitorKey')), var.get(u'visitors').get(var.get(u'visitorKey')))
                    else:
                        PyJsTempException = JsToPyException(var.get(u'Error').create(var.get(u'messages').callprop(u'get', Js(u'traverseVerifyVisitorProperty'), var.get(u'nodeType'), var.get(u'visitorKey'))))
                        raise PyJsTempException
        var.get(u'visitor').put(u'_verified', var.get(u'true'))
    PyJsHoisted_verify_.func_name = u'verify'
    var.put(u'verify', PyJsHoisted_verify_)
    @Js
    def PyJsHoisted_wrapCheck_(wrapper, fn, this, arguments, var=var):
        var = Scope({u'this':this, u'fn':fn, u'wrapper':wrapper, u'arguments':arguments}, var)
        var.registers([u'newFn', u'fn', u'wrapper'])
        @Js
        def PyJs_newFn_2204_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'newFn':PyJs_newFn_2204_, u'arguments':arguments}, var)
            var.registers([u'path'])
            if var.get(u'wrapper').callprop(u'checkPath', var.get(u'path')):
                return var.get(u'fn').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))
        PyJs_newFn_2204_._set_name(u'newFn')
        var.put(u'newFn', PyJs_newFn_2204_)
        @Js
        def PyJs_anonymous_2205_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return var.get(u'fn').callprop(u'toString')
        PyJs_anonymous_2205_._set_name(u'anonymous')
        var.get(u'newFn').put(u'toString', PyJs_anonymous_2205_)
        return var.get(u'newFn')
    PyJsHoisted_wrapCheck_.func_name = u'wrapCheck'
    var.put(u'wrapCheck', PyJsHoisted_wrapCheck_)
    @Js
    def PyJsHoisted_explode_(visitor, this, arguments, var=var):
        var = Scope({u'this':this, u'visitor':visitor, u'arguments':arguments}, var)
        var.registers([u'_isArray4', u'_isArray3', u'_isArray2', u'visitor', u'existing', u'_nodeType3', u'_nodeType2', u'_ref', u'aliases', u'_iterator', u'_i4', u'_i3', u'_i2', u'wrapper', u'parts', u'_i', u'type', u'_type', u'nodeType', u'_nodeType', u'part', u'deprecratedKey', u'_isArray', u'fns', u'_fns', u'_ref4', u'_ref3', u'_ref2', u'alias', u'_iterator4', u'_fns2', u'_iterator3', u'_iterator2'])
        if var.get(u'visitor').get(u'_exploded'):
            return var.get(u'visitor')
        var.get(u'visitor').put(u'_exploded', var.get(u'true'))
        for PyJsTemp in var.get(u'visitor'):
            var.put(u'nodeType', PyJsTemp)
            if var.get(u'shouldIgnoreKey')(var.get(u'nodeType')):
                continue
            var.put(u'parts', var.get(u'nodeType').callprop(u'split', Js(u'|')))
            if PyJsStrictEq(var.get(u'parts').get(u'length'),Js(1.0)):
                continue
            var.put(u'fns', var.get(u'visitor').get(var.get(u'nodeType')))
            var.get(u'visitor').delete(var.get(u'nodeType'))
            #for JS loop
            var.put(u'_iterator', var.get(u'parts'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'part', var.get(u'_ref'))
                var.get(u'visitor').put(var.get(u'part'), var.get(u'fns'))
            
        var.get(u'verify')(var.get(u'visitor'))
        var.get(u'visitor').delete(u'__esModule')
        var.get(u'ensureEntranceObjects')(var.get(u'visitor'))
        var.get(u'ensureCallbackArrays')(var.get(u'visitor'))
        #for JS loop
        var.put(u'_iterator2', PyJsComma(Js(0.0),var.get(u'_keys2').get(u'default'))(var.get(u'visitor')))
        var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
        var.put(u'_i2', Js(0.0))
        var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
        while 1:
            pass
            if var.get(u'_isArray2'):
                if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                    break
                var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                if var.get(u'_i2').get(u'done'):
                    break
                var.put(u'_ref2', var.get(u'_i2').get(u'value'))
            var.put(u'_nodeType3', var.get(u'_ref2'))
            if var.get(u'shouldIgnoreKey')(var.get(u'_nodeType3')):
                continue
            var.put(u'wrapper', var.get(u'virtualTypes').get(var.get(u'_nodeType3')))
            if var.get(u'wrapper').neg():
                continue
            var.put(u'_fns2', var.get(u'visitor').get(var.get(u'_nodeType3')))
            for PyJsTemp in var.get(u'_fns2'):
                var.put(u'type', PyJsTemp)
                var.get(u'_fns2').put(var.get(u'type'), var.get(u'wrapCheck')(var.get(u'wrapper'), var.get(u'_fns2').get(var.get(u'type'))))
            var.get(u'visitor').delete(var.get(u'_nodeType3'))
            if var.get(u'wrapper').get(u'types'):
                #for JS loop
                var.put(u'_iterator4', var.get(u'wrapper').get(u'types'))
                var.put(u'_isArray4', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator4')))
                var.put(u'_i4', Js(0.0))
                var.put(u'_iterator4', (var.get(u'_iterator4') if var.get(u'_isArray4') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator4'))))
                while 1:
                    pass
                    if var.get(u'_isArray4'):
                        if (var.get(u'_i4')>=var.get(u'_iterator4').get(u'length')):
                            break
                        var.put(u'_ref4', var.get(u'_iterator4').get((var.put(u'_i4',Js(var.get(u'_i4').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i4', var.get(u'_iterator4').callprop(u'next'))
                        if var.get(u'_i4').get(u'done'):
                            break
                        var.put(u'_ref4', var.get(u'_i4').get(u'value'))
                    var.put(u'_type', var.get(u'_ref4'))
                    if var.get(u'visitor').get(var.get(u'_type')):
                        var.get(u'mergePair')(var.get(u'visitor').get(var.get(u'_type')), var.get(u'_fns2'))
                    else:
                        var.get(u'visitor').put(var.get(u'_type'), var.get(u'_fns2'))
                
            else:
                var.get(u'mergePair')(var.get(u'visitor'), var.get(u'_fns2'))
        
        for PyJsTemp in var.get(u'visitor'):
            var.put(u'_nodeType', PyJsTemp)
            if var.get(u'shouldIgnoreKey')(var.get(u'_nodeType')):
                continue
            var.put(u'_fns', var.get(u'visitor').get(var.get(u'_nodeType')))
            var.put(u'aliases', var.get(u't').get(u'FLIPPED_ALIAS_KEYS').get(var.get(u'_nodeType')))
            var.put(u'deprecratedKey', var.get(u't').get(u'DEPRECATED_KEYS').get(var.get(u'_nodeType')))
            if var.get(u'deprecratedKey'):
                var.get(u'console').callprop(u'trace', (((Js(u'Visitor defined for ')+var.get(u'_nodeType'))+Js(u' but it has been renamed to '))+var.get(u'deprecratedKey')))
                var.put(u'aliases', Js([var.get(u'deprecratedKey')]))
            if var.get(u'aliases').neg():
                continue
            var.get(u'visitor').delete(var.get(u'_nodeType'))
            #for JS loop
            var.put(u'_iterator3', var.get(u'aliases'))
            var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
            var.put(u'_i3', Js(0.0))
            var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
            while 1:
                pass
                if var.get(u'_isArray3'):
                    if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                        break
                    var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                    if var.get(u'_i3').get(u'done'):
                        break
                    var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                var.put(u'alias', var.get(u'_ref3'))
                var.put(u'existing', var.get(u'visitor').get(var.get(u'alias')))
                if var.get(u'existing'):
                    var.get(u'mergePair')(var.get(u'existing'), var.get(u'_fns'))
                else:
                    var.get(u'visitor').put(var.get(u'alias'), PyJsComma(Js(0.0),var.get(u'_clone2').get(u'default'))(var.get(u'_fns')))
            
        for PyJsTemp in var.get(u'visitor'):
            var.put(u'_nodeType2', PyJsTemp)
            if var.get(u'shouldIgnoreKey')(var.get(u'_nodeType2')):
                continue
            var.get(u'ensureCallbackArrays')(var.get(u'visitor').get(var.get(u'_nodeType2')))
        return var.get(u'visitor')
    PyJsHoisted_explode_.func_name = u'explode'
    var.put(u'explode', PyJsHoisted_explode_)
    @Js
    def PyJsHoisted_merge_(visitors, this, arguments, var=var):
        var = Scope({u'this':this, u'visitors':visitors, u'arguments':arguments}, var)
        var.registers([u'visitorType', u'i', u'visitor', u'rootVisitor', u'wrapper', u'states', u'visitors', u'state', u'nodeVisitor', u'type'])
        var.put(u'states', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else Js([])))
        var.put(u'wrapper', var.get(u'arguments').get(u'2'))
        PyJs_Object_2197_ = Js({})
        var.put(u'rootVisitor', PyJs_Object_2197_)
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'visitors').get(u'length')):
            try:
                var.put(u'visitor', var.get(u'visitors').get(var.get(u'i')))
                var.put(u'state', var.get(u'states').get(var.get(u'i')))
                var.get(u'explode')(var.get(u'visitor'))
                for PyJsTemp in var.get(u'visitor'):
                    var.put(u'type', PyJsTemp)
                    var.put(u'visitorType', var.get(u'visitor').get(var.get(u'type')))
                    if (var.get(u'state') or var.get(u'wrapper')):
                        var.put(u'visitorType', var.get(u'wrapWithStateOrWrapper')(var.get(u'visitorType'), var.get(u'state'), var.get(u'wrapper')))
                    PyJs_Object_2198_ = Js({})
                    var.put(u'nodeVisitor', var.get(u'rootVisitor').put(var.get(u'type'), (var.get(u'rootVisitor').get(var.get(u'type')) or PyJs_Object_2198_)))
                    var.get(u'mergePair')(var.get(u'nodeVisitor'), var.get(u'visitorType'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'rootVisitor')
    PyJsHoisted_merge_.func_name = u'merge'
    var.put(u'merge', PyJsHoisted_merge_)
    @Js
    def PyJsHoisted_ensureCallbackArrays_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        if (var.get(u'obj').get(u'enter') and var.get(u'Array').callprop(u'isArray', var.get(u'obj').get(u'enter')).neg()):
            var.get(u'obj').put(u'enter', Js([var.get(u'obj').get(u'enter')]))
        if (var.get(u'obj').get(u'exit') and var.get(u'Array').callprop(u'isArray', var.get(u'obj').get(u'exit')).neg()):
            var.get(u'obj').put(u'exit', Js([var.get(u'obj').get(u'exit')]))
    PyJsHoisted_ensureCallbackArrays_.func_name = u'ensureCallbackArrays'
    var.put(u'ensureCallbackArrays', PyJsHoisted_ensureCallbackArrays_)
    @Js
    def PyJsHoisted_wrapWithStateOrWrapper_(oldVisitor, state, wrapper, this, arguments, var=var):
        var = Scope({u'this':this, u'oldVisitor':oldVisitor, u'state':state, u'arguments':arguments, u'wrapper':wrapper}, var)
        var.registers([u'_loop', u'_ret', u'newVisitor', u'oldVisitor', u'state', u'wrapper', u'key'])
        PyJs_Object_2199_ = Js({})
        var.put(u'newVisitor', PyJs_Object_2199_)
        @Js
        def PyJs__loop_2200_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'_loop':PyJs__loop_2200_, u'arguments':arguments, u'key':key}, var)
            var.registers([u'fns', u'key'])
            var.put(u'fns', var.get(u'oldVisitor').get(var.get(u'key')))
            if var.get(u'Array').callprop(u'isArray', var.get(u'fns')).neg():
                return Js(u'continue')
            @Js
            def PyJs_anonymous_2201_(fn, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'fn':fn}, var)
                var.registers([u'newFn', u'fn'])
                var.put(u'newFn', var.get(u'fn'))
                if var.get(u'state'):
                    @Js
                    def PyJs_newFn_2202_(path, this, arguments, var=var):
                        var = Scope({u'this':this, u'path':path, u'newFn':PyJs_newFn_2202_, u'arguments':arguments}, var)
                        var.registers([u'path'])
                        return var.get(u'fn').callprop(u'call', var.get(u'state'), var.get(u'path'), var.get(u'state'))
                    PyJs_newFn_2202_._set_name(u'newFn')
                    var.put(u'newFn', PyJs_newFn_2202_)
                if var.get(u'wrapper'):
                    var.put(u'newFn', var.get(u'wrapper')(var.get(u'state').get(u'key'), var.get(u'key'), var.get(u'newFn')))
                return var.get(u'newFn')
            PyJs_anonymous_2201_._set_name(u'anonymous')
            var.put(u'fns', var.get(u'fns').callprop(u'map', PyJs_anonymous_2201_))
            var.get(u'newVisitor').put(var.get(u'key'), var.get(u'fns'))
        PyJs__loop_2200_._set_name(u'_loop')
        var.put(u'_loop', PyJs__loop_2200_)
        for PyJsTemp in var.get(u'oldVisitor'):
            var.put(u'key', PyJsTemp)
            var.put(u'_ret', var.get(u'_loop')(var.get(u'key')))
            if PyJsStrictEq(var.get(u'_ret'),Js(u'continue')):
                continue
        return var.get(u'newVisitor')
    PyJsHoisted_wrapWithStateOrWrapper_.func_name = u'wrapWithStateOrWrapper'
    var.put(u'wrapWithStateOrWrapper', PyJsHoisted_wrapWithStateOrWrapper_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2196_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2196_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_ensureEntranceObjects_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'fns', u'key'])
        for PyJsTemp in var.get(u'obj'):
            var.put(u'key', PyJsTemp)
            if var.get(u'shouldIgnoreKey')(var.get(u'key')):
                continue
            var.put(u'fns', var.get(u'obj').get(var.get(u'key')))
            if PyJsStrictEq(var.get(u'fns',throw=False).typeof(),Js(u'function')):
                PyJs_Object_2203_ = Js({u'enter':var.get(u'fns')})
                var.get(u'obj').put(var.get(u'key'), PyJs_Object_2203_)
    PyJsHoisted_ensureEntranceObjects_.func_name = u'ensureEntranceObjects'
    var.put(u'ensureEntranceObjects', PyJsHoisted_ensureEntranceObjects_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_typeof2', var.get(u'require')(Js(u'babel-runtime/helpers/typeof')))
    var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
    var.put(u'_keys', var.get(u'require')(Js(u'babel-runtime/core-js/object/keys')))
    var.put(u'_keys2', var.get(u'_interopRequireDefault')(var.get(u'_keys')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'explode', var.get(u'explode'))
    var.get(u'exports').put(u'verify', var.get(u'verify'))
    var.get(u'exports').put(u'merge', var.get(u'merge'))
    var.put(u'_virtualTypes', var.get(u'require')(Js(u'./path/lib/virtual-types')))
    var.put(u'virtualTypes', var.get(u'_interopRequireWildcard')(var.get(u'_virtualTypes')))
    var.put(u'_babelMessages', var.get(u'require')(Js(u'babel-messages')))
    var.put(u'messages', var.get(u'_interopRequireWildcard')(var.get(u'_babelMessages')))
    var.put(u'_babelTypes', var.get(u'require')(Js(u'babel-types')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_babelTypes')))
    var.put(u'_clone', var.get(u'require')(Js(u'lodash/clone')))
    var.put(u'_clone2', var.get(u'_interopRequireDefault')(var.get(u'_clone')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_2194_._set_name(u'anonymous')
PyJs_Object_2206_ = Js({u'./path/lib/virtual-types':Js(239.0),u'babel-messages':Js(57.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/object/keys':Js(103.0),u'babel-runtime/helpers/typeof':Js(114.0),u'babel-types':Js(258.0),u'lodash/clone':Js(438.0)})
@Js
def PyJs_anonymous_2207_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'BOOLEAN_UNARY_OPERATORS', u'_for', u'module', u'STATEMENT_OR_BLOCK_KEYS', u'BLOCK_SCOPED_SYMBOL', u'_interopRequireDefault', u'COMMENT_KEYS', u'INHERIT_KEYS', u'BOOLEAN_BINARY_OPERATORS', u'UNARY_OPERATORS', u'FOR_INIT_KEYS', u'exports', u'COMPARISON_BINARY_OPERATORS', u'NUMBER_UNARY_OPERATORS', u'_for2', u'FLATTENABLE_KEYS', u'LOGICAL_OPERATORS', u'STRING_UNARY_OPERATORS', u'NUMBER_BINARY_OPERATORS', u'UPDATE_OPERATORS', u'require', u'NOT_LOCAL_BINDING', u'BINARY_OPERATORS', u'EQUALITY_BINARY_OPERATORS', u'BOOLEAN_NUMBER_BINARY_OPERATORS'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2210_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2210_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    def PyJs_LONG_2209_(var=var):
        def PyJs_LONG_2208_(var=var):
            return var.get(u'exports').put(u'EQUALITY_BINARY_OPERATORS', var.get(u'exports').put(u'BOOLEAN_NUMBER_BINARY_OPERATORS', var.get(u'exports').put(u'UPDATE_OPERATORS', var.get(u'exports').put(u'LOGICAL_OPERATORS', var.get(u'exports').put(u'COMMENT_KEYS', var.get(u'exports').put(u'FOR_INIT_KEYS', var.get(u'exports').put(u'FLATTENABLE_KEYS', var.get(u'exports').put(u'STATEMENT_OR_BLOCK_KEYS', var.get(u'undefined')))))))))
        return var.get(u'exports').put(u'UNARY_OPERATORS', var.get(u'exports').put(u'STRING_UNARY_OPERATORS', var.get(u'exports').put(u'NUMBER_UNARY_OPERATORS', var.get(u'exports').put(u'BOOLEAN_UNARY_OPERATORS', var.get(u'exports').put(u'BINARY_OPERATORS', var.get(u'exports').put(u'NUMBER_BINARY_OPERATORS', var.get(u'exports').put(u'BOOLEAN_BINARY_OPERATORS', var.get(u'exports').put(u'COMPARISON_BINARY_OPERATORS', PyJs_LONG_2208_()))))))))
    var.get(u'exports').put(u'NOT_LOCAL_BINDING', var.get(u'exports').put(u'BLOCK_SCOPED_SYMBOL', var.get(u'exports').put(u'INHERIT_KEYS', PyJs_LONG_2209_())))
    var.put(u'_for', var.get(u'require')(Js(u'babel-runtime/core-js/symbol/for')))
    var.put(u'_for2', var.get(u'_interopRequireDefault')(var.get(u'_for')))
    pass
    var.put(u'STATEMENT_OR_BLOCK_KEYS', var.get(u'exports').put(u'STATEMENT_OR_BLOCK_KEYS', Js([Js(u'consequent'), Js(u'body'), Js(u'alternate')])))
    var.put(u'FLATTENABLE_KEYS', var.get(u'exports').put(u'FLATTENABLE_KEYS', Js([Js(u'body'), Js(u'expressions')])))
    var.put(u'FOR_INIT_KEYS', var.get(u'exports').put(u'FOR_INIT_KEYS', Js([Js(u'left'), Js(u'init')])))
    var.put(u'COMMENT_KEYS', var.get(u'exports').put(u'COMMENT_KEYS', Js([Js(u'leadingComments'), Js(u'trailingComments'), Js(u'innerComments')])))
    var.put(u'LOGICAL_OPERATORS', var.get(u'exports').put(u'LOGICAL_OPERATORS', Js([Js(u'||'), Js(u'&&')])))
    var.put(u'UPDATE_OPERATORS', var.get(u'exports').put(u'UPDATE_OPERATORS', Js([Js(u'++'), Js(u'--')])))
    var.put(u'BOOLEAN_NUMBER_BINARY_OPERATORS', var.get(u'exports').put(u'BOOLEAN_NUMBER_BINARY_OPERATORS', Js([Js(u'>'), Js(u'<'), Js(u'>='), Js(u'<=')])))
    var.put(u'EQUALITY_BINARY_OPERATORS', var.get(u'exports').put(u'EQUALITY_BINARY_OPERATORS', Js([Js(u'=='), Js(u'==='), Js(u'!='), Js(u'!==')])))
    var.put(u'COMPARISON_BINARY_OPERATORS', var.get(u'exports').put(u'COMPARISON_BINARY_OPERATORS', Js([]).callprop(u'concat', var.get(u'EQUALITY_BINARY_OPERATORS'), Js([Js(u'in'), Js(u'instanceof')]))))
    var.put(u'BOOLEAN_BINARY_OPERATORS', var.get(u'exports').put(u'BOOLEAN_BINARY_OPERATORS', Js([]).callprop(u'concat', var.get(u'COMPARISON_BINARY_OPERATORS'), var.get(u'BOOLEAN_NUMBER_BINARY_OPERATORS'))))
    var.put(u'NUMBER_BINARY_OPERATORS', var.get(u'exports').put(u'NUMBER_BINARY_OPERATORS', Js([Js(u'-'), Js(u'/'), Js(u'%'), Js(u'*'), Js(u'**'), Js(u'&'), Js(u'|'), Js(u'>>'), Js(u'>>>'), Js(u'<<'), Js(u'^')])))
    var.put(u'BINARY_OPERATORS', var.get(u'exports').put(u'BINARY_OPERATORS', Js([Js(u'+')]).callprop(u'concat', var.get(u'NUMBER_BINARY_OPERATORS'), var.get(u'BOOLEAN_BINARY_OPERATORS'))))
    var.put(u'BOOLEAN_UNARY_OPERATORS', var.get(u'exports').put(u'BOOLEAN_UNARY_OPERATORS', Js([Js(u'delete'), Js(u'!')])))
    var.put(u'NUMBER_UNARY_OPERATORS', var.get(u'exports').put(u'NUMBER_UNARY_OPERATORS', Js([Js(u'+'), Js(u'-'), Js(u'++'), Js(u'--'), Js(u'~')])))
    var.put(u'STRING_UNARY_OPERATORS', var.get(u'exports').put(u'STRING_UNARY_OPERATORS', Js([Js(u'typeof')])))
    var.put(u'UNARY_OPERATORS', var.get(u'exports').put(u'UNARY_OPERATORS', Js([Js(u'void')]).callprop(u'concat', var.get(u'BOOLEAN_UNARY_OPERATORS'), var.get(u'NUMBER_UNARY_OPERATORS'), var.get(u'STRING_UNARY_OPERATORS'))))
    PyJs_Object_2211_ = Js({u'optional':Js([Js(u'typeAnnotation'), Js(u'typeParameters'), Js(u'returnType')]),u'force':Js([Js(u'start'), Js(u'loc'), Js(u'end')])})
    var.put(u'INHERIT_KEYS', var.get(u'exports').put(u'INHERIT_KEYS', PyJs_Object_2211_))
    var.put(u'BLOCK_SCOPED_SYMBOL', var.get(u'exports').put(u'BLOCK_SCOPED_SYMBOL', PyJsComma(Js(0.0),var.get(u'_for2').get(u'default'))(Js(u'var used to be block scoped'))))
    var.put(u'NOT_LOCAL_BINDING', var.get(u'exports').put(u'NOT_LOCAL_BINDING', PyJsComma(Js(0.0),var.get(u'_for2').get(u'default'))(Js(u'should not be considered a local binding'))))
PyJs_anonymous_2207_._set_name(u'anonymous')
PyJs_Object_2212_ = Js({u'babel-runtime/core-js/symbol/for':Js(106.0)})
@Js
def PyJs_anonymous_2213_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'toComputedKey', u'toBindingIdentifierName', u'module', u'_isString2', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'toKeyAlias', u'_isNumber', u'toSequenceExpression', u'_isRegExp2', u'_isRegExp', u'toIdentifier', u't', u'_isNumber2', u'exports', u'_stringify2', u'_interopRequireWildcard', u'toExpression', u'_maxSafeInteger2', u'_isPlainObject2', u'_index', u'_isString', u'require', u'toBlock', u'toStatement', u'_stringify', u'_maxSafeInteger', u'_isPlainObject', u'valueToNode'])
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2214_ = Js({})
            var.put(u'newObj', PyJs_Object_2214_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_toSequenceExpression_(nodes, scope, this, arguments, var=var):
        var = Scope({u'this':this, u'scope':scope, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'convert', u'bailed', u'i', u'declars', u'result', u'scope', u'nodes'])
        @Js
        def PyJsHoisted_convert_(nodes, this, arguments, var=var):
            var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
            var.registers([u'node', u'_isArray', u'_iterator', u'_isArray2', u'ensureLastUndefined', u'alternate', u'nodes', u'_i2', u'_ref2', u'key', u'exprs', u'declar', u'_i', u'_ref', u'consequent', u'bindings', u'_iterator2'])
            var.put(u'ensureLastUndefined', Js(False))
            var.put(u'exprs', Js([]))
            #for JS loop
            var.put(u'_iterator', var.get(u'nodes'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'node', var.get(u'_ref'))
                if var.get(u't').callprop(u'isExpression', var.get(u'node')):
                    var.get(u'exprs').callprop(u'push', var.get(u'node'))
                else:
                    if var.get(u't').callprop(u'isExpressionStatement', var.get(u'node')):
                        var.get(u'exprs').callprop(u'push', var.get(u'node').get(u'expression'))
                    else:
                        if var.get(u't').callprop(u'isVariableDeclaration', var.get(u'node')):
                            if PyJsStrictNeq(var.get(u'node').get(u'kind'),Js(u'var')):
                                return var.put(u'bailed', var.get(u'true'))
                            #for JS loop
                            var.put(u'_iterator2', var.get(u'node').get(u'declarations'))
                            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
                            var.put(u'_i2', Js(0.0))
                            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
                            while 1:
                                pass
                                if var.get(u'_isArray2'):
                                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                                        break
                                    var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                                else:
                                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                                    if var.get(u'_i2').get(u'done'):
                                        break
                                    var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                                var.put(u'declar', var.get(u'_ref2'))
                                var.put(u'bindings', var.get(u't').callprop(u'getBindingIdentifiers', var.get(u'declar')))
                                for PyJsTemp in var.get(u'bindings'):
                                    var.put(u'key', PyJsTemp)
                                    PyJs_Object_2216_ = Js({u'kind':var.get(u'node').get(u'kind'),u'id':var.get(u'bindings').get(var.get(u'key'))})
                                    var.get(u'declars').callprop(u'push', PyJs_Object_2216_)
                                if var.get(u'declar').get(u'init'):
                                    var.get(u'exprs').callprop(u'push', var.get(u't').callprop(u'assignmentExpression', Js(u'='), var.get(u'declar').get(u'id'), var.get(u'declar').get(u'init')))
                            
                            var.put(u'ensureLastUndefined', var.get(u'true'))
                            continue
                        else:
                            if var.get(u't').callprop(u'isIfStatement', var.get(u'node')):
                                var.put(u'consequent', (var.get(u'convert')(Js([var.get(u'node').get(u'consequent')])) if var.get(u'node').get(u'consequent') else var.get(u'scope').callprop(u'buildUndefinedNode')))
                                var.put(u'alternate', (var.get(u'convert')(Js([var.get(u'node').get(u'alternate')])) if var.get(u'node').get(u'alternate') else var.get(u'scope').callprop(u'buildUndefinedNode')))
                                if (var.get(u'consequent').neg() or var.get(u'alternate').neg()):
                                    return var.put(u'bailed', var.get(u'true'))
                                var.get(u'exprs').callprop(u'push', var.get(u't').callprop(u'conditionalExpression', var.get(u'node').get(u'test'), var.get(u'consequent'), var.get(u'alternate')))
                            else:
                                if var.get(u't').callprop(u'isBlockStatement', var.get(u'node')):
                                    var.get(u'exprs').callprop(u'push', var.get(u'convert')(var.get(u'node').get(u'body')))
                                else:
                                    if var.get(u't').callprop(u'isEmptyStatement', var.get(u'node')):
                                        var.put(u'ensureLastUndefined', var.get(u'true'))
                                        continue
                                    else:
                                        return var.put(u'bailed', var.get(u'true'))
                var.put(u'ensureLastUndefined', Js(False))
            
            if (var.get(u'ensureLastUndefined') or PyJsStrictEq(var.get(u'exprs').get(u'length'),Js(0.0))):
                var.get(u'exprs').callprop(u'push', var.get(u'scope').callprop(u'buildUndefinedNode'))
            if PyJsStrictEq(var.get(u'exprs').get(u'length'),Js(1.0)):
                return var.get(u'exprs').get(u'0')
            else:
                return var.get(u't').callprop(u'sequenceExpression', var.get(u'exprs'))
        PyJsHoisted_convert_.func_name = u'convert'
        var.put(u'convert', PyJsHoisted_convert_)
        if (var.get(u'nodes').neg() or var.get(u'nodes').get(u'length').neg()):
            return var.get('undefined')
        var.put(u'declars', Js([]))
        var.put(u'bailed', Js(False))
        var.put(u'result', var.get(u'convert')(var.get(u'nodes')))
        if var.get(u'bailed'):
            return var.get('undefined')
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'declars').get(u'length')):
            try:
                var.get(u'scope').callprop(u'push', var.get(u'declars').get(var.get(u'i')))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'result')
        pass
    PyJsHoisted_toSequenceExpression_.func_name = u'toSequenceExpression'
    var.put(u'toSequenceExpression', PyJsHoisted_toSequenceExpression_)
    @Js
    def PyJsHoisted_toExpression_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u't').callprop(u'isExpressionStatement', var.get(u'node')):
            var.put(u'node', var.get(u'node').get(u'expression'))
        if var.get(u't').callprop(u'isExpression', var.get(u'node')):
            return var.get(u'node')
        if var.get(u't').callprop(u'isClass', var.get(u'node')):
            var.get(u'node').put(u'type', Js(u'ClassExpression'))
        else:
            if var.get(u't').callprop(u'isFunction', var.get(u'node')):
                var.get(u'node').put(u'type', Js(u'FunctionExpression'))
        if var.get(u't').callprop(u'isExpression', var.get(u'node')).neg():
            PyJsTempException = JsToPyException(var.get(u'Error').create(((Js(u'cannot turn ')+var.get(u'node').get(u'type'))+Js(u' to an expression'))))
            raise PyJsTempException
        return var.get(u'node')
    PyJsHoisted_toExpression_.func_name = u'toExpression'
    var.put(u'toExpression', PyJsHoisted_toExpression_)
    @Js
    def PyJsHoisted_toComputedKey_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'key'])
        var.put(u'key', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else (var.get(u'node').get(u'key') or var.get(u'node').get(u'property'))))
        if var.get(u'node').get(u'computed').neg():
            if var.get(u't').callprop(u'isIdentifier', var.get(u'key')):
                var.put(u'key', var.get(u't').callprop(u'stringLiteral', var.get(u'key').get(u'name')))
        return var.get(u'key')
    PyJsHoisted_toComputedKey_.func_name = u'toComputedKey'
    var.put(u'toComputedKey', PyJsHoisted_toComputedKey_)
    @Js
    def PyJsHoisted_toBindingIdentifierName_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name'])
        var.put(u'name', var.get(u'toIdentifier')(var.get(u'name')))
        if (PyJsStrictEq(var.get(u'name'),Js(u'eval')) or PyJsStrictEq(var.get(u'name'),Js(u'arguments'))):
            var.put(u'name', (Js(u'_')+var.get(u'name')))
        return var.get(u'name')
    PyJsHoisted_toBindingIdentifierName_.func_name = u'toBindingIdentifierName'
    var.put(u'toBindingIdentifierName', PyJsHoisted_toBindingIdentifierName_)
    @Js
    def PyJsHoisted_toBlock_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        if var.get(u't').callprop(u'isBlockStatement', var.get(u'node')):
            return var.get(u'node')
        if var.get(u't').callprop(u'isEmptyStatement', var.get(u'node')):
            var.put(u'node', Js([]))
        if var.get(u'Array').callprop(u'isArray', var.get(u'node')).neg():
            if var.get(u't').callprop(u'isStatement', var.get(u'node')).neg():
                if var.get(u't').callprop(u'isFunction', var.get(u'parent')):
                    var.put(u'node', var.get(u't').callprop(u'returnStatement', var.get(u'node')))
                else:
                    var.put(u'node', var.get(u't').callprop(u'expressionStatement', var.get(u'node')))
            var.put(u'node', Js([var.get(u'node')]))
        return var.get(u't').callprop(u'blockStatement', var.get(u'node'))
    PyJsHoisted_toBlock_.func_name = u'toBlock'
    var.put(u'toBlock', PyJsHoisted_toBlock_)
    @Js
    def PyJsHoisted_toStatement_(node, ignore, this, arguments, var=var):
        var = Scope({u'node':node, u'ignore':ignore, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'ignore', u'mustHaveId', u'newType'])
        if var.get(u't').callprop(u'isStatement', var.get(u'node')):
            return var.get(u'node')
        var.put(u'mustHaveId', Js(False))
        var.put(u'newType', PyJsComma(Js(0.0), Js(None)))
        if var.get(u't').callprop(u'isClass', var.get(u'node')):
            var.put(u'mustHaveId', var.get(u'true'))
            var.put(u'newType', Js(u'ClassDeclaration'))
        else:
            if var.get(u't').callprop(u'isFunction', var.get(u'node')):
                var.put(u'mustHaveId', var.get(u'true'))
                var.put(u'newType', Js(u'FunctionDeclaration'))
            else:
                if var.get(u't').callprop(u'isAssignmentExpression', var.get(u'node')):
                    return var.get(u't').callprop(u'expressionStatement', var.get(u'node'))
        if (var.get(u'mustHaveId') and var.get(u'node').get(u'id').neg()):
            var.put(u'newType', Js(False))
        if var.get(u'newType').neg():
            if var.get(u'ignore'):
                return Js(False)
            else:
                PyJsTempException = JsToPyException(var.get(u'Error').create(((Js(u'cannot turn ')+var.get(u'node').get(u'type'))+Js(u' to a statement'))))
                raise PyJsTempException
        var.get(u'node').put(u'type', var.get(u'newType'))
        return var.get(u'node')
    PyJsHoisted_toStatement_.func_name = u'toStatement'
    var.put(u'toStatement', PyJsHoisted_toStatement_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2215_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2215_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_toIdentifier_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name'])
        var.put(u'name', (var.get(u'name')+Js(u'')))
        var.put(u'name', var.get(u'name').callprop(u'replace', JsRegExp(u'/[^a-zA-Z0-9$_]/g'), Js(u'-')))
        var.put(u'name', var.get(u'name').callprop(u'replace', JsRegExp(u'/^[-0-9]+/'), Js(u'')))
        @Js
        def PyJs_anonymous_2218_(match, c, this, arguments, var=var):
            var = Scope({u'this':this, u'c':c, u'arguments':arguments, u'match':match}, var)
            var.registers([u'c', u'match'])
            return (var.get(u'c').callprop(u'toUpperCase') if var.get(u'c') else Js(u''))
        PyJs_anonymous_2218_._set_name(u'anonymous')
        var.put(u'name', var.get(u'name').callprop(u'replace', JsRegExp(u'/[-\\s]+(.)?/g'), PyJs_anonymous_2218_))
        if var.get(u't').callprop(u'isValidIdentifier', var.get(u'name')).neg():
            var.put(u'name', (Js(u'_')+var.get(u'name')))
        return (var.get(u'name') or Js(u'_'))
    PyJsHoisted_toIdentifier_.func_name = u'toIdentifier'
    var.put(u'toIdentifier', PyJsHoisted_toIdentifier_)
    @Js
    def PyJsHoisted_toKeyAlias_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'alias', u'key'])
        var.put(u'key', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else var.get(u'node').get(u'key')))
        var.put(u'alias', PyJsComma(Js(0.0), Js(None)))
        if PyJsStrictEq(var.get(u'node').get(u'kind'),Js(u'method')):
            return (var.get(u'toKeyAlias').callprop(u'increment')+Js(u''))
        else:
            if var.get(u't').callprop(u'isIdentifier', var.get(u'key')):
                var.put(u'alias', var.get(u'key').get(u'name'))
            else:
                if var.get(u't').callprop(u'isStringLiteral', var.get(u'key')):
                    var.put(u'alias', PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'key').get(u'value')))
                else:
                    var.put(u'alias', PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u't').callprop(u'removePropertiesDeep', var.get(u't').callprop(u'cloneDeep', var.get(u'key')))))
        if var.get(u'node').get(u'computed'):
            var.put(u'alias', ((Js(u'[')+var.get(u'alias'))+Js(u']')))
        if var.get(u'node').get(u'static'):
            var.put(u'alias', (Js(u'static:')+var.get(u'alias')))
        return var.get(u'alias')
    PyJsHoisted_toKeyAlias_.func_name = u'toKeyAlias'
    var.put(u'toKeyAlias', PyJsHoisted_toKeyAlias_)
    @Js
    def PyJsHoisted_valueToNode_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'pattern', u'value', u'flags', u'nodeKey', u'key', u'props'])
        if PyJsStrictEq(var.get(u'value'),var.get(u'undefined')):
            return var.get(u't').callprop(u'identifier', Js(u'undefined'))
        if (PyJsStrictEq(var.get(u'value'),var.get(u'true')) or PyJsStrictEq(var.get(u'value'),Js(False))):
            return var.get(u't').callprop(u'booleanLiteral', var.get(u'value'))
        if PyJsStrictEq(var.get(u'value'),var.get(u"null")):
            return var.get(u't').callprop(u'nullLiteral')
        if PyJsComma(Js(0.0),var.get(u'_isString2').get(u'default'))(var.get(u'value')):
            return var.get(u't').callprop(u'stringLiteral', var.get(u'value'))
        if PyJsComma(Js(0.0),var.get(u'_isNumber2').get(u'default'))(var.get(u'value')):
            return var.get(u't').callprop(u'numericLiteral', var.get(u'value'))
        if PyJsComma(Js(0.0),var.get(u'_isRegExp2').get(u'default'))(var.get(u'value')):
            var.put(u'pattern', var.get(u'value').get(u'source'))
            var.put(u'flags', var.get(u'value').callprop(u'toString').callprop(u'match', JsRegExp(u'/\\/([a-z]+|)$/')).get(u'1'))
            return var.get(u't').callprop(u'regExpLiteral', var.get(u'pattern'), var.get(u'flags'))
        if var.get(u'Array').callprop(u'isArray', var.get(u'value')):
            return var.get(u't').callprop(u'arrayExpression', var.get(u'value').callprop(u'map', var.get(u't').get(u'valueToNode')))
        if PyJsComma(Js(0.0),var.get(u'_isPlainObject2').get(u'default'))(var.get(u'value')):
            var.put(u'props', Js([]))
            for PyJsTemp in var.get(u'value'):
                var.put(u'key', PyJsTemp)
                var.put(u'nodeKey', PyJsComma(Js(0.0), Js(None)))
                if var.get(u't').callprop(u'isValidIdentifier', var.get(u'key')):
                    var.put(u'nodeKey', var.get(u't').callprop(u'identifier', var.get(u'key')))
                else:
                    var.put(u'nodeKey', var.get(u't').callprop(u'stringLiteral', var.get(u'key')))
                var.get(u'props').callprop(u'push', var.get(u't').callprop(u'objectProperty', var.get(u'nodeKey'), var.get(u't').callprop(u'valueToNode', var.get(u'value').get(var.get(u'key')))))
            return var.get(u't').callprop(u'objectExpression', var.get(u'props'))
        PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u"don't know how to turn this value into a node")))
        raise PyJsTempException
    PyJsHoisted_valueToNode_.func_name = u'valueToNode'
    var.put(u'valueToNode', PyJsHoisted_valueToNode_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_maxSafeInteger', var.get(u'require')(Js(u'babel-runtime/core-js/number/max-safe-integer')))
    var.put(u'_maxSafeInteger2', var.get(u'_interopRequireDefault')(var.get(u'_maxSafeInteger')))
    var.put(u'_stringify', var.get(u'require')(Js(u'babel-runtime/core-js/json/stringify')))
    var.put(u'_stringify2', var.get(u'_interopRequireDefault')(var.get(u'_stringify')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'toComputedKey', var.get(u'toComputedKey'))
    var.get(u'exports').put(u'toSequenceExpression', var.get(u'toSequenceExpression'))
    var.get(u'exports').put(u'toKeyAlias', var.get(u'toKeyAlias'))
    var.get(u'exports').put(u'toIdentifier', var.get(u'toIdentifier'))
    var.get(u'exports').put(u'toBindingIdentifierName', var.get(u'toBindingIdentifierName'))
    var.get(u'exports').put(u'toStatement', var.get(u'toStatement'))
    var.get(u'exports').put(u'toExpression', var.get(u'toExpression'))
    var.get(u'exports').put(u'toBlock', var.get(u'toBlock'))
    var.get(u'exports').put(u'valueToNode', var.get(u'valueToNode'))
    var.put(u'_isPlainObject', var.get(u'require')(Js(u'lodash/isPlainObject')))
    var.put(u'_isPlainObject2', var.get(u'_interopRequireDefault')(var.get(u'_isPlainObject')))
    var.put(u'_isNumber', var.get(u'require')(Js(u'lodash/isNumber')))
    var.put(u'_isNumber2', var.get(u'_interopRequireDefault')(var.get(u'_isNumber')))
    var.put(u'_isRegExp', var.get(u'require')(Js(u'lodash/isRegExp')))
    var.put(u'_isRegExp2', var.get(u'_interopRequireDefault')(var.get(u'_isRegExp')))
    var.put(u'_isString', var.get(u'require')(Js(u'lodash/isString')))
    var.put(u'_isString2', var.get(u'_interopRequireDefault')(var.get(u'_isString')))
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_index')))
    pass
    pass
    pass
    pass
    pass
    var.get(u'toKeyAlias').put(u'uid', Js(0.0))
    @Js
    def PyJs_anonymous_2217_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if (var.get(u'toKeyAlias').get(u'uid')>=var.get(u'_maxSafeInteger2').get(u'default')):
            return var.get(u'toKeyAlias').put(u'uid', Js(0.0))
        else:
            return (var.get(u'toKeyAlias').put(u'uid',Js(var.get(u'toKeyAlias').get(u'uid').to_number())+Js(1))-Js(1))
    PyJs_anonymous_2217_._set_name(u'anonymous')
    var.get(u'toKeyAlias').put(u'increment', PyJs_anonymous_2217_)
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_2213_._set_name(u'anonymous')
PyJs_Object_2219_ = Js({u'./index':Js(258.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/json/stringify':Js(97.0),u'babel-runtime/core-js/number/max-safe-integer':Js(99.0),u'lodash/isNumber':Js(466.0),u'lodash/isPlainObject':Js(469.0),u'lodash/isRegExp':Js(470.0),u'lodash/isString':Js(471.0)})
@Js
def PyJs_anonymous_2220_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_constants', u'_interopRequireWildcard', u'_index', u'require', u'module', u't', u'_index2', u'_index3', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2221_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2221_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2222_ = Js({})
            var.put(u'newObj', PyJs_Object_2222_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.put(u'_index', var.get(u'require')(Js(u'../index')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_index')))
    var.put(u'_constants', var.get(u'require')(Js(u'../constants')))
    var.put(u'_index2', var.get(u'require')(Js(u'./index')))
    var.put(u'_index3', var.get(u'_interopRequireDefault')(var.get(u'_index2')))
    pass
    pass
    PyJs_Object_2225_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeOrValueType'))(Js(u'null'), Js(u'Expression'), Js(u'SpreadElement')))),u'default':Js([])})
    PyJs_Object_2224_ = Js({u'elements':PyJs_Object_2225_})
    PyJs_Object_2223_ = Js({u'fields':PyJs_Object_2224_,u'visitor':Js([Js(u'elements')]),u'aliases':Js([Js(u'Expression')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ArrayExpression'), PyJs_Object_2223_)
    PyJs_Object_2228_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'string'))})
    PyJs_Object_2229_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'LVal'))})
    PyJs_Object_2230_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2227_ = Js({u'operator':PyJs_Object_2228_,u'left':PyJs_Object_2229_,u'right':PyJs_Object_2230_})
    PyJs_Object_2226_ = Js({u'fields':PyJs_Object_2227_,u'builder':Js([Js(u'operator'), Js(u'left'), Js(u'right')]),u'visitor':Js([Js(u'left'), Js(u'right')]),u'aliases':Js([Js(u'Expression')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'AssignmentExpression'), PyJs_Object_2226_)
    PyJs_Object_2233_ = Js({u'validate':var.get(u'_index2').get(u'assertOneOf').callprop(u'apply', var.get(u'undefined'), var.get(u'_constants').get(u'BINARY_OPERATORS'))})
    PyJs_Object_2234_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2235_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2232_ = Js({u'operator':PyJs_Object_2233_,u'left':PyJs_Object_2234_,u'right':PyJs_Object_2235_})
    PyJs_Object_2231_ = Js({u'builder':Js([Js(u'operator'), Js(u'left'), Js(u'right')]),u'fields':PyJs_Object_2232_,u'visitor':Js([Js(u'left'), Js(u'right')]),u'aliases':Js([Js(u'Binary'), Js(u'Expression')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'BinaryExpression'), PyJs_Object_2231_)
    PyJs_Object_2238_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'DirectiveLiteral'))})
    PyJs_Object_2237_ = Js({u'value':PyJs_Object_2238_})
    PyJs_Object_2236_ = Js({u'visitor':Js([Js(u'value')]),u'fields':PyJs_Object_2237_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'Directive'), PyJs_Object_2236_)
    PyJs_Object_2241_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'string'))})
    PyJs_Object_2240_ = Js({u'value':PyJs_Object_2241_})
    PyJs_Object_2239_ = Js({u'builder':Js([Js(u'value')]),u'fields':PyJs_Object_2240_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'DirectiveLiteral'), PyJs_Object_2239_)
    PyJs_Object_2244_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Directive')))),u'default':Js([])})
    PyJs_Object_2245_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Statement'))))})
    PyJs_Object_2243_ = Js({u'directives':PyJs_Object_2244_,u'body':PyJs_Object_2245_})
    PyJs_Object_2242_ = Js({u'builder':Js([Js(u'body'), Js(u'directives')]),u'visitor':Js([Js(u'directives'), Js(u'body')]),u'fields':PyJs_Object_2243_,u'aliases':Js([Js(u'Scopable'), Js(u'BlockParent'), Js(u'Block'), Js(u'Statement')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'BlockStatement'), PyJs_Object_2242_)
    PyJs_Object_2248_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Identifier')),u'optional':var.get(u'true')})
    PyJs_Object_2247_ = Js({u'label':PyJs_Object_2248_})
    PyJs_Object_2246_ = Js({u'visitor':Js([Js(u'label')]),u'fields':PyJs_Object_2247_,u'aliases':Js([Js(u'Statement'), Js(u'Terminatorless'), Js(u'CompletionStatement')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'BreakStatement'), PyJs_Object_2246_)
    PyJs_Object_2251_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2252_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'), Js(u'SpreadElement'))))})
    PyJs_Object_2250_ = Js({u'callee':PyJs_Object_2251_,u'arguments':PyJs_Object_2252_})
    PyJs_Object_2249_ = Js({u'visitor':Js([Js(u'callee'), Js(u'arguments')]),u'fields':PyJs_Object_2250_,u'aliases':Js([Js(u'Expression')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'CallExpression'), PyJs_Object_2249_)
    PyJs_Object_2255_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2256_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'BlockStatement'))})
    PyJs_Object_2254_ = Js({u'param':PyJs_Object_2255_,u'body':PyJs_Object_2256_})
    PyJs_Object_2253_ = Js({u'visitor':Js([Js(u'param'), Js(u'body')]),u'fields':PyJs_Object_2254_,u'aliases':Js([Js(u'Scopable')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'CatchClause'), PyJs_Object_2253_)
    PyJs_Object_2259_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2260_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2261_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2258_ = Js({u'test':PyJs_Object_2259_,u'consequent':PyJs_Object_2260_,u'alternate':PyJs_Object_2261_})
    PyJs_Object_2257_ = Js({u'visitor':Js([Js(u'test'), Js(u'consequent'), Js(u'alternate')]),u'fields':PyJs_Object_2258_,u'aliases':Js([Js(u'Expression'), Js(u'Conditional')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ConditionalExpression'), PyJs_Object_2257_)
    PyJs_Object_2264_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Identifier')),u'optional':var.get(u'true')})
    PyJs_Object_2263_ = Js({u'label':PyJs_Object_2264_})
    PyJs_Object_2262_ = Js({u'visitor':Js([Js(u'label')]),u'fields':PyJs_Object_2263_,u'aliases':Js([Js(u'Statement'), Js(u'Terminatorless'), Js(u'CompletionStatement')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ContinueStatement'), PyJs_Object_2262_)
    PyJs_Object_2265_ = Js({u'aliases':Js([Js(u'Statement')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'DebuggerStatement'), PyJs_Object_2265_)
    PyJs_Object_2268_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2269_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Statement'))})
    PyJs_Object_2267_ = Js({u'test':PyJs_Object_2268_,u'body':PyJs_Object_2269_})
    PyJs_Object_2266_ = Js({u'visitor':Js([Js(u'test'), Js(u'body')]),u'fields':PyJs_Object_2267_,u'aliases':Js([Js(u'Statement'), Js(u'BlockParent'), Js(u'Loop'), Js(u'While'), Js(u'Scopable')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'DoWhileStatement'), PyJs_Object_2266_)
    PyJs_Object_2270_ = Js({u'aliases':Js([Js(u'Statement')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'EmptyStatement'), PyJs_Object_2270_)
    PyJs_Object_2273_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2272_ = Js({u'expression':PyJs_Object_2273_})
    PyJs_Object_2271_ = Js({u'visitor':Js([Js(u'expression')]),u'fields':PyJs_Object_2272_,u'aliases':Js([Js(u'Statement'), Js(u'ExpressionWrapper')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ExpressionStatement'), PyJs_Object_2271_)
    PyJs_Object_2276_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Program'))})
    PyJs_Object_2275_ = Js({u'program':PyJs_Object_2276_})
    PyJs_Object_2274_ = Js({u'builder':Js([Js(u'program'), Js(u'comments'), Js(u'tokens')]),u'visitor':Js([Js(u'program')]),u'fields':PyJs_Object_2275_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'File'), PyJs_Object_2274_)
    PyJs_Object_2279_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'VariableDeclaration'), Js(u'LVal'))})
    PyJs_Object_2280_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2281_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Statement'))})
    PyJs_Object_2278_ = Js({u'left':PyJs_Object_2279_,u'right':PyJs_Object_2280_,u'body':PyJs_Object_2281_})
    PyJs_Object_2277_ = Js({u'visitor':Js([Js(u'left'), Js(u'right'), Js(u'body')]),u'aliases':Js([Js(u'Scopable'), Js(u'Statement'), Js(u'For'), Js(u'BlockParent'), Js(u'Loop'), Js(u'ForXStatement')]),u'fields':PyJs_Object_2278_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ForInStatement'), PyJs_Object_2277_)
    PyJs_Object_2284_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'VariableDeclaration'), Js(u'Expression')),u'optional':var.get(u'true')})
    PyJs_Object_2285_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression')),u'optional':var.get(u'true')})
    PyJs_Object_2286_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression')),u'optional':var.get(u'true')})
    PyJs_Object_2287_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Statement'))})
    PyJs_Object_2283_ = Js({u'init':PyJs_Object_2284_,u'test':PyJs_Object_2285_,u'update':PyJs_Object_2286_,u'body':PyJs_Object_2287_})
    PyJs_Object_2282_ = Js({u'visitor':Js([Js(u'init'), Js(u'test'), Js(u'update'), Js(u'body')]),u'aliases':Js([Js(u'Scopable'), Js(u'Statement'), Js(u'For'), Js(u'BlockParent'), Js(u'Loop')]),u'fields':PyJs_Object_2283_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ForStatement'), PyJs_Object_2282_)
    PyJs_Object_2290_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2291_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'LVal'))))})
    PyJs_Object_2292_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'BlockStatement'))})
    PyJs_Object_2293_ = Js({u'default':Js(False),u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'boolean'))})
    PyJs_Object_2294_ = Js({u'default':Js(False),u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'boolean'))})
    PyJs_Object_2289_ = Js({u'id':PyJs_Object_2290_,u'params':PyJs_Object_2291_,u'body':PyJs_Object_2292_,u'generator':PyJs_Object_2293_,u'async':PyJs_Object_2294_})
    PyJs_Object_2288_ = Js({u'builder':Js([Js(u'id'), Js(u'params'), Js(u'body'), Js(u'generator'), Js(u'async')]),u'visitor':Js([Js(u'id'), Js(u'params'), Js(u'body'), Js(u'returnType'), Js(u'typeParameters')]),u'fields':PyJs_Object_2289_,u'aliases':Js([Js(u'Scopable'), Js(u'Function'), Js(u'BlockParent'), Js(u'FunctionParent'), Js(u'Statement'), Js(u'Pureish'), Js(u'Declaration')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'FunctionDeclaration'), PyJs_Object_2288_)
    PyJs_Object_2297_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Identifier')),u'optional':var.get(u'true')})
    PyJs_Object_2298_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'LVal'))))})
    PyJs_Object_2299_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'BlockStatement'))})
    PyJs_Object_2300_ = Js({u'default':Js(False),u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'boolean'))})
    PyJs_Object_2301_ = Js({u'default':Js(False),u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'boolean'))})
    PyJs_Object_2296_ = Js({u'id':PyJs_Object_2297_,u'params':PyJs_Object_2298_,u'body':PyJs_Object_2299_,u'generator':PyJs_Object_2300_,u'async':PyJs_Object_2301_})
    PyJs_Object_2295_ = Js({u'inherits':Js(u'FunctionDeclaration'),u'aliases':Js([Js(u'Scopable'), Js(u'Function'), Js(u'BlockParent'), Js(u'FunctionParent'), Js(u'Expression'), Js(u'Pureish')]),u'fields':PyJs_Object_2296_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'FunctionExpression'), PyJs_Object_2295_)
    @Js
    def PyJs_validate_2305_(node, key, val, this, arguments, var=var):
        var = Scope({u'node':node, u'val':val, u'this':this, u'arguments':arguments, u'key':key, u'validate':PyJs_validate_2305_}, var)
        var.registers([u'node', u'val', u'key'])
        if var.get(u't').callprop(u'isValidIdentifier', var.get(u'val')).neg():
            pass
    PyJs_validate_2305_._set_name(u'validate')
    PyJs_Object_2304_ = Js({u'validate':PyJs_validate_2305_})
    PyJs_Object_2306_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Decorator'))))})
    PyJs_Object_2303_ = Js({u'name':PyJs_Object_2304_,u'decorators':PyJs_Object_2306_})
    PyJs_Object_2302_ = Js({u'builder':Js([Js(u'name')]),u'visitor':Js([Js(u'typeAnnotation')]),u'aliases':Js([Js(u'Expression'), Js(u'LVal')]),u'fields':PyJs_Object_2303_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'Identifier'), PyJs_Object_2302_)
    PyJs_Object_2309_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2310_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Statement'))})
    PyJs_Object_2311_ = Js({u'optional':var.get(u'true'),u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Statement'))})
    PyJs_Object_2308_ = Js({u'test':PyJs_Object_2309_,u'consequent':PyJs_Object_2310_,u'alternate':PyJs_Object_2311_})
    PyJs_Object_2307_ = Js({u'visitor':Js([Js(u'test'), Js(u'consequent'), Js(u'alternate')]),u'aliases':Js([Js(u'Statement'), Js(u'Conditional')]),u'fields':PyJs_Object_2308_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'IfStatement'), PyJs_Object_2307_)
    PyJs_Object_2314_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2315_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Statement'))})
    PyJs_Object_2313_ = Js({u'label':PyJs_Object_2314_,u'body':PyJs_Object_2315_})
    PyJs_Object_2312_ = Js({u'visitor':Js([Js(u'label'), Js(u'body')]),u'aliases':Js([Js(u'Statement')]),u'fields':PyJs_Object_2313_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'LabeledStatement'), PyJs_Object_2312_)
    PyJs_Object_2318_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'string'))})
    PyJs_Object_2317_ = Js({u'value':PyJs_Object_2318_})
    PyJs_Object_2316_ = Js({u'builder':Js([Js(u'value')]),u'fields':PyJs_Object_2317_,u'aliases':Js([Js(u'Expression'), Js(u'Pureish'), Js(u'Literal'), Js(u'Immutable')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'StringLiteral'), PyJs_Object_2316_)
    PyJs_Object_2321_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'number'))})
    PyJs_Object_2320_ = Js({u'value':PyJs_Object_2321_})
    PyJs_Object_2319_ = Js({u'builder':Js([Js(u'value')]),u'deprecatedAlias':Js(u'NumberLiteral'),u'fields':PyJs_Object_2320_,u'aliases':Js([Js(u'Expression'), Js(u'Pureish'), Js(u'Literal'), Js(u'Immutable')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'NumericLiteral'), PyJs_Object_2319_)
    PyJs_Object_2322_ = Js({u'aliases':Js([Js(u'Expression'), Js(u'Pureish'), Js(u'Literal'), Js(u'Immutable')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'NullLiteral'), PyJs_Object_2322_)
    PyJs_Object_2325_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'boolean'))})
    PyJs_Object_2324_ = Js({u'value':PyJs_Object_2325_})
    PyJs_Object_2323_ = Js({u'builder':Js([Js(u'value')]),u'fields':PyJs_Object_2324_,u'aliases':Js([Js(u'Expression'), Js(u'Pureish'), Js(u'Literal'), Js(u'Immutable')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'BooleanLiteral'), PyJs_Object_2323_)
    PyJs_Object_2328_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'string'))})
    PyJs_Object_2329_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'string')),u'default':Js(u'')})
    PyJs_Object_2327_ = Js({u'pattern':PyJs_Object_2328_,u'flags':PyJs_Object_2329_})
    PyJs_Object_2326_ = Js({u'builder':Js([Js(u'pattern'), Js(u'flags')]),u'deprecatedAlias':Js(u'RegexLiteral'),u'aliases':Js([Js(u'Expression'), Js(u'Literal')]),u'fields':PyJs_Object_2327_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'RegExpLiteral'), PyJs_Object_2326_)
    PyJs_Object_2332_ = Js({u'validate':var.get(u'_index2').get(u'assertOneOf').callprop(u'apply', var.get(u'undefined'), var.get(u'_constants').get(u'LOGICAL_OPERATORS'))})
    PyJs_Object_2333_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2334_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2331_ = Js({u'operator':PyJs_Object_2332_,u'left':PyJs_Object_2333_,u'right':PyJs_Object_2334_})
    PyJs_Object_2330_ = Js({u'builder':Js([Js(u'operator'), Js(u'left'), Js(u'right')]),u'visitor':Js([Js(u'left'), Js(u'right')]),u'aliases':Js([Js(u'Binary'), Js(u'Expression')]),u'fields':PyJs_Object_2331_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'LogicalExpression'), PyJs_Object_2330_)
    PyJs_Object_2337_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    @Js
    def PyJs_validate_2339_(node, key, val, this, arguments, var=var):
        var = Scope({u'node':node, u'val':val, u'this':this, u'arguments':arguments, u'key':key, u'validate':PyJs_validate_2339_}, var)
        var.registers([u'node', u'expectedType', u'val', u'key'])
        var.put(u'expectedType', (Js(u'Expression') if var.get(u'node').get(u'computed') else Js(u'Identifier')))
        PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(var.get(u'expectedType'))(var.get(u'node'), var.get(u'key'), var.get(u'val'))
    PyJs_validate_2339_._set_name(u'validate')
    PyJs_Object_2338_ = Js({u'validate':PyJs_validate_2339_})
    PyJs_Object_2340_ = Js({u'default':Js(False)})
    PyJs_Object_2336_ = Js({u'object':PyJs_Object_2337_,u'property':PyJs_Object_2338_,u'computed':PyJs_Object_2340_})
    PyJs_Object_2335_ = Js({u'builder':Js([Js(u'object'), Js(u'property'), Js(u'computed')]),u'visitor':Js([Js(u'object'), Js(u'property')]),u'aliases':Js([Js(u'Expression'), Js(u'LVal')]),u'fields':PyJs_Object_2336_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'MemberExpression'), PyJs_Object_2335_)
    PyJs_Object_2343_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2344_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'), Js(u'SpreadElement'))))})
    PyJs_Object_2342_ = Js({u'callee':PyJs_Object_2343_,u'arguments':PyJs_Object_2344_})
    PyJs_Object_2341_ = Js({u'visitor':Js([Js(u'callee'), Js(u'arguments')]),u'aliases':Js([Js(u'Expression')]),u'fields':PyJs_Object_2342_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'NewExpression'), PyJs_Object_2341_)
    PyJs_Object_2347_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Directive')))),u'default':Js([])})
    PyJs_Object_2348_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Statement'))))})
    PyJs_Object_2346_ = Js({u'directives':PyJs_Object_2347_,u'body':PyJs_Object_2348_})
    PyJs_Object_2345_ = Js({u'visitor':Js([Js(u'directives'), Js(u'body')]),u'builder':Js([Js(u'body'), Js(u'directives')]),u'fields':PyJs_Object_2346_,u'aliases':Js([Js(u'Scopable'), Js(u'BlockParent'), Js(u'Block'), Js(u'FunctionParent')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'Program'), PyJs_Object_2345_)
    PyJs_Object_2351_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'ObjectMethod'), Js(u'ObjectProperty'), Js(u'SpreadProperty'))))})
    PyJs_Object_2350_ = Js({u'properties':PyJs_Object_2351_})
    PyJs_Object_2349_ = Js({u'visitor':Js([Js(u'properties')]),u'aliases':Js([Js(u'Expression')]),u'fields':PyJs_Object_2350_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ObjectExpression'), PyJs_Object_2349_)
    PyJs_Object_2354_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'string')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertOneOf'))(Js(u'method'), Js(u'get'), Js(u'set'))),u'default':Js(u'method')})
    PyJs_Object_2355_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'boolean')),u'default':Js(False)})
    @Js
    def PyJs_validate_2357_(node, key, val, this, arguments, var=var):
        var = Scope({u'node':node, u'val':val, u'this':this, u'arguments':arguments, u'key':key, u'validate':PyJs_validate_2357_}, var)
        var.registers([u'node', u'val', u'key', u'expectedTypes'])
        var.put(u'expectedTypes', (Js([Js(u'Expression')]) if var.get(u'node').get(u'computed') else Js([Js(u'Identifier'), Js(u'StringLiteral'), Js(u'NumericLiteral')])))
        var.get(u'_index2').get(u'assertNodeType').callprop(u'apply', var.get(u'undefined'), var.get(u'expectedTypes'))(var.get(u'node'), var.get(u'key'), var.get(u'val'))
    PyJs_validate_2357_._set_name(u'validate')
    PyJs_Object_2356_ = Js({u'validate':PyJs_validate_2357_})
    PyJs_Object_2358_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Decorator'))))})
    PyJs_Object_2359_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'BlockStatement'))})
    PyJs_Object_2360_ = Js({u'default':Js(False),u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'boolean'))})
    PyJs_Object_2361_ = Js({u'default':Js(False),u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'boolean'))})
    PyJs_Object_2353_ = Js({u'kind':PyJs_Object_2354_,u'computed':PyJs_Object_2355_,u'key':PyJs_Object_2356_,u'decorators':PyJs_Object_2358_,u'body':PyJs_Object_2359_,u'generator':PyJs_Object_2360_,u'async':PyJs_Object_2361_})
    PyJs_Object_2352_ = Js({u'builder':Js([Js(u'kind'), Js(u'key'), Js(u'params'), Js(u'body'), Js(u'computed')]),u'fields':PyJs_Object_2353_,u'visitor':Js([Js(u'key'), Js(u'params'), Js(u'body'), Js(u'decorators'), Js(u'returnType'), Js(u'typeParameters')]),u'aliases':Js([Js(u'UserWhitespacable'), Js(u'Function'), Js(u'Scopable'), Js(u'BlockParent'), Js(u'FunctionParent'), Js(u'Method'), Js(u'ObjectMember')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ObjectMethod'), PyJs_Object_2352_)
    PyJs_Object_2364_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'boolean')),u'default':Js(False)})
    @Js
    def PyJs_validate_2366_(node, key, val, this, arguments, var=var):
        var = Scope({u'node':node, u'val':val, u'this':this, u'arguments':arguments, u'key':key, u'validate':PyJs_validate_2366_}, var)
        var.registers([u'node', u'val', u'key', u'expectedTypes'])
        var.put(u'expectedTypes', (Js([Js(u'Expression')]) if var.get(u'node').get(u'computed') else Js([Js(u'Identifier'), Js(u'StringLiteral'), Js(u'NumericLiteral')])))
        var.get(u'_index2').get(u'assertNodeType').callprop(u'apply', var.get(u'undefined'), var.get(u'expectedTypes'))(var.get(u'node'), var.get(u'key'), var.get(u'val'))
    PyJs_validate_2366_._set_name(u'validate')
    PyJs_Object_2365_ = Js({u'validate':PyJs_validate_2366_})
    PyJs_Object_2367_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2368_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'boolean')),u'default':Js(False)})
    PyJs_Object_2369_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Decorator')))),u'optional':var.get(u'true')})
    PyJs_Object_2363_ = Js({u'computed':PyJs_Object_2364_,u'key':PyJs_Object_2365_,u'value':PyJs_Object_2367_,u'shorthand':PyJs_Object_2368_,u'decorators':PyJs_Object_2369_})
    PyJs_Object_2362_ = Js({u'builder':Js([Js(u'key'), Js(u'value'), Js(u'computed'), Js(u'shorthand'), Js(u'decorators')]),u'fields':PyJs_Object_2363_,u'visitor':Js([Js(u'key'), Js(u'value'), Js(u'decorators')]),u'aliases':Js([Js(u'UserWhitespacable'), Js(u'Property'), Js(u'ObjectMember')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ObjectProperty'), PyJs_Object_2362_)
    PyJs_Object_2372_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'LVal'))})
    PyJs_Object_2373_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Decorator'))))})
    PyJs_Object_2371_ = Js({u'argument':PyJs_Object_2372_,u'decorators':PyJs_Object_2373_})
    PyJs_Object_2370_ = Js({u'visitor':Js([Js(u'argument'), Js(u'typeAnnotation')]),u'aliases':Js([Js(u'LVal')]),u'fields':PyJs_Object_2371_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'RestElement'), PyJs_Object_2370_)
    PyJs_Object_2376_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression')),u'optional':var.get(u'true')})
    PyJs_Object_2375_ = Js({u'argument':PyJs_Object_2376_})
    PyJs_Object_2374_ = Js({u'visitor':Js([Js(u'argument')]),u'aliases':Js([Js(u'Statement'), Js(u'Terminatorless'), Js(u'CompletionStatement')]),u'fields':PyJs_Object_2375_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ReturnStatement'), PyJs_Object_2374_)
    PyJs_Object_2379_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))))})
    PyJs_Object_2378_ = Js({u'expressions':PyJs_Object_2379_})
    PyJs_Object_2377_ = Js({u'visitor':Js([Js(u'expressions')]),u'fields':PyJs_Object_2378_,u'aliases':Js([Js(u'Expression')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'SequenceExpression'), PyJs_Object_2377_)
    PyJs_Object_2382_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression')),u'optional':var.get(u'true')})
    PyJs_Object_2383_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Statement'))))})
    PyJs_Object_2381_ = Js({u'test':PyJs_Object_2382_,u'consequent':PyJs_Object_2383_})
    PyJs_Object_2380_ = Js({u'visitor':Js([Js(u'test'), Js(u'consequent')]),u'fields':PyJs_Object_2381_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'SwitchCase'), PyJs_Object_2380_)
    PyJs_Object_2386_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2387_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'SwitchCase'))))})
    PyJs_Object_2385_ = Js({u'discriminant':PyJs_Object_2386_,u'cases':PyJs_Object_2387_})
    PyJs_Object_2384_ = Js({u'visitor':Js([Js(u'discriminant'), Js(u'cases')]),u'aliases':Js([Js(u'Statement'), Js(u'BlockParent'), Js(u'Scopable')]),u'fields':PyJs_Object_2385_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'SwitchStatement'), PyJs_Object_2384_)
    PyJs_Object_2388_ = Js({u'aliases':Js([Js(u'Expression')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ThisExpression'), PyJs_Object_2388_)
    PyJs_Object_2391_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2390_ = Js({u'argument':PyJs_Object_2391_})
    PyJs_Object_2389_ = Js({u'visitor':Js([Js(u'argument')]),u'aliases':Js([Js(u'Statement'), Js(u'Terminatorless'), Js(u'CompletionStatement')]),u'fields':PyJs_Object_2390_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'ThrowStatement'), PyJs_Object_2389_)
    PyJs_Object_2394_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'BlockStatement'))})
    PyJs_Object_2395_ = Js({u'optional':var.get(u'true'),u'handler':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'BlockStatement'))})
    PyJs_Object_2396_ = Js({u'optional':var.get(u'true'),u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'BlockStatement'))})
    PyJs_Object_2393_ = Js({u'body':PyJs_Object_2394_,u'handler':PyJs_Object_2395_,u'finalizer':PyJs_Object_2396_})
    PyJs_Object_2392_ = Js({u'visitor':Js([Js(u'block'), Js(u'handler'), Js(u'finalizer')]),u'aliases':Js([Js(u'Statement')]),u'fields':PyJs_Object_2393_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'TryStatement'), PyJs_Object_2392_)
    PyJs_Object_2399_ = Js({u'default':var.get(u'true')})
    PyJs_Object_2400_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2401_ = Js({u'validate':var.get(u'_index2').get(u'assertOneOf').callprop(u'apply', var.get(u'undefined'), var.get(u'_constants').get(u'UNARY_OPERATORS'))})
    PyJs_Object_2398_ = Js({u'prefix':PyJs_Object_2399_,u'argument':PyJs_Object_2400_,u'operator':PyJs_Object_2401_})
    PyJs_Object_2397_ = Js({u'builder':Js([Js(u'operator'), Js(u'argument'), Js(u'prefix')]),u'fields':PyJs_Object_2398_,u'visitor':Js([Js(u'argument')]),u'aliases':Js([Js(u'UnaryLike'), Js(u'Expression')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'UnaryExpression'), PyJs_Object_2397_)
    PyJs_Object_2404_ = Js({u'default':Js(False)})
    PyJs_Object_2405_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2406_ = Js({u'validate':var.get(u'_index2').get(u'assertOneOf').callprop(u'apply', var.get(u'undefined'), var.get(u'_constants').get(u'UPDATE_OPERATORS'))})
    PyJs_Object_2403_ = Js({u'prefix':PyJs_Object_2404_,u'argument':PyJs_Object_2405_,u'operator':PyJs_Object_2406_})
    PyJs_Object_2402_ = Js({u'builder':Js([Js(u'operator'), Js(u'argument'), Js(u'prefix')]),u'fields':PyJs_Object_2403_,u'visitor':Js([Js(u'argument')]),u'aliases':Js([Js(u'Expression')])})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'UpdateExpression'), PyJs_Object_2402_)
    PyJs_Object_2409_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'string')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertOneOf'))(Js(u'var'), Js(u'let'), Js(u'const')))})
    PyJs_Object_2410_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'VariableDeclarator'))))})
    PyJs_Object_2408_ = Js({u'kind':PyJs_Object_2409_,u'declarations':PyJs_Object_2410_})
    PyJs_Object_2407_ = Js({u'builder':Js([Js(u'kind'), Js(u'declarations')]),u'visitor':Js([Js(u'declarations')]),u'aliases':Js([Js(u'Statement'), Js(u'Declaration')]),u'fields':PyJs_Object_2408_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'VariableDeclaration'), PyJs_Object_2407_)
    PyJs_Object_2413_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'LVal'))})
    PyJs_Object_2414_ = Js({u'optional':var.get(u'true'),u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2412_ = Js({u'id':PyJs_Object_2413_,u'init':PyJs_Object_2414_})
    PyJs_Object_2411_ = Js({u'visitor':Js([Js(u'id'), Js(u'init')]),u'fields':PyJs_Object_2412_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'VariableDeclarator'), PyJs_Object_2411_)
    PyJs_Object_2417_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2418_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'BlockStatement'), Js(u'Statement'))})
    PyJs_Object_2416_ = Js({u'test':PyJs_Object_2417_,u'body':PyJs_Object_2418_})
    PyJs_Object_2415_ = Js({u'visitor':Js([Js(u'test'), Js(u'body')]),u'aliases':Js([Js(u'Statement'), Js(u'BlockParent'), Js(u'Loop'), Js(u'While'), Js(u'Scopable')]),u'fields':PyJs_Object_2416_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'WhileStatement'), PyJs_Object_2415_)
    PyJs_Object_2421_ = Js({u'object':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2422_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index2').get(u'assertNodeType'))(Js(u'BlockStatement'), Js(u'Statement'))})
    PyJs_Object_2420_ = Js({u'object':PyJs_Object_2421_,u'body':PyJs_Object_2422_})
    PyJs_Object_2419_ = Js({u'visitor':Js([Js(u'object'), Js(u'body')]),u'aliases':Js([Js(u'Statement')]),u'fields':PyJs_Object_2420_})
    PyJsComma(Js(0.0),var.get(u'_index3').get(u'default'))(Js(u'WithStatement'), PyJs_Object_2419_)
PyJs_anonymous_2220_._set_name(u'anonymous')
PyJs_Object_2423_ = Js({u'../constants':Js(247.0),u'../index':Js(258.0),u'./index':Js(253.0)})
@Js
def PyJs_anonymous_2424_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_index', u'require', u'module', u'_index2', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2425_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2425_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    pass
    PyJs_Object_2428_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2429_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2430_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Decorator'))))})
    PyJs_Object_2427_ = Js({u'left':PyJs_Object_2428_,u'right':PyJs_Object_2429_,u'decorators':PyJs_Object_2430_})
    PyJs_Object_2426_ = Js({u'visitor':Js([Js(u'left'), Js(u'right')]),u'aliases':Js([Js(u'Pattern'), Js(u'LVal')]),u'fields':PyJs_Object_2427_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'AssignmentPattern'), PyJs_Object_2426_)
    PyJs_Object_2433_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))))})
    PyJs_Object_2434_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Decorator'))))})
    PyJs_Object_2432_ = Js({u'elements':PyJs_Object_2433_,u'decorators':PyJs_Object_2434_})
    PyJs_Object_2431_ = Js({u'visitor':Js([Js(u'elements'), Js(u'typeAnnotation')]),u'aliases':Js([Js(u'Pattern'), Js(u'LVal')]),u'fields':PyJs_Object_2432_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ArrayPattern'), PyJs_Object_2431_)
    PyJs_Object_2437_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'LVal'))))})
    PyJs_Object_2438_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'BlockStatement'), Js(u'Expression'))})
    PyJs_Object_2439_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'boolean')),u'default':Js(False)})
    PyJs_Object_2436_ = Js({u'params':PyJs_Object_2437_,u'body':PyJs_Object_2438_,u'async':PyJs_Object_2439_})
    PyJs_Object_2435_ = Js({u'builder':Js([Js(u'params'), Js(u'body'), Js(u'async')]),u'visitor':Js([Js(u'params'), Js(u'body'), Js(u'returnType'), Js(u'typeParameters')]),u'aliases':Js([Js(u'Scopable'), Js(u'Function'), Js(u'BlockParent'), Js(u'FunctionParent'), Js(u'Expression'), Js(u'Pureish')]),u'fields':PyJs_Object_2436_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ArrowFunctionExpression'), PyJs_Object_2435_)
    PyJs_Object_2442_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'ClassMethod'), Js(u'ClassProperty'))))})
    PyJs_Object_2441_ = Js({u'body':PyJs_Object_2442_})
    PyJs_Object_2440_ = Js({u'visitor':Js([Js(u'body')]),u'fields':PyJs_Object_2441_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ClassBody'), PyJs_Object_2440_)
    PyJs_Object_2445_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2446_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'ClassBody'))})
    PyJs_Object_2447_ = Js({u'optional':var.get(u'true'),u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2448_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Decorator'))))})
    PyJs_Object_2444_ = Js({u'id':PyJs_Object_2445_,u'body':PyJs_Object_2446_,u'superClass':PyJs_Object_2447_,u'decorators':PyJs_Object_2448_})
    PyJs_Object_2443_ = Js({u'builder':Js([Js(u'id'), Js(u'superClass'), Js(u'body'), Js(u'decorators')]),u'visitor':Js([Js(u'id'), Js(u'body'), Js(u'superClass'), Js(u'mixins'), Js(u'typeParameters'), Js(u'superTypeParameters'), Js(u'implements'), Js(u'decorators')]),u'aliases':Js([Js(u'Scopable'), Js(u'Class'), Js(u'Statement'), Js(u'Declaration'), Js(u'Pureish')]),u'fields':PyJs_Object_2444_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ClassDeclaration'), PyJs_Object_2443_)
    PyJs_Object_2451_ = Js({u'optional':var.get(u'true'),u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2452_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'ClassBody'))})
    PyJs_Object_2453_ = Js({u'optional':var.get(u'true'),u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2454_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Decorator'))))})
    PyJs_Object_2450_ = Js({u'id':PyJs_Object_2451_,u'body':PyJs_Object_2452_,u'superClass':PyJs_Object_2453_,u'decorators':PyJs_Object_2454_})
    PyJs_Object_2449_ = Js({u'inherits':Js(u'ClassDeclaration'),u'aliases':Js([Js(u'Scopable'), Js(u'Class'), Js(u'Expression'), Js(u'Pureish')]),u'fields':PyJs_Object_2450_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ClassExpression'), PyJs_Object_2449_)
    PyJs_Object_2457_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'StringLiteral'))})
    PyJs_Object_2456_ = Js({u'source':PyJs_Object_2457_})
    PyJs_Object_2455_ = Js({u'visitor':Js([Js(u'source')]),u'aliases':Js([Js(u'Statement'), Js(u'Declaration'), Js(u'ModuleDeclaration'), Js(u'ExportDeclaration')]),u'fields':PyJs_Object_2456_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ExportAllDeclaration'), PyJs_Object_2455_)
    PyJs_Object_2460_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'FunctionDeclaration'), Js(u'ClassDeclaration'), Js(u'Expression'))})
    PyJs_Object_2459_ = Js({u'declaration':PyJs_Object_2460_})
    PyJs_Object_2458_ = Js({u'visitor':Js([Js(u'declaration')]),u'aliases':Js([Js(u'Statement'), Js(u'Declaration'), Js(u'ModuleDeclaration'), Js(u'ExportDeclaration')]),u'fields':PyJs_Object_2459_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ExportDefaultDeclaration'), PyJs_Object_2458_)
    PyJs_Object_2463_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Declaration')),u'optional':var.get(u'true')})
    PyJs_Object_2464_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'ExportSpecifier'))))})
    PyJs_Object_2465_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'StringLiteral')),u'optional':var.get(u'true')})
    PyJs_Object_2462_ = Js({u'declaration':PyJs_Object_2463_,u'specifiers':PyJs_Object_2464_,u'source':PyJs_Object_2465_})
    PyJs_Object_2461_ = Js({u'visitor':Js([Js(u'declaration'), Js(u'specifiers'), Js(u'source')]),u'aliases':Js([Js(u'Statement'), Js(u'Declaration'), Js(u'ModuleDeclaration'), Js(u'ExportDeclaration')]),u'fields':PyJs_Object_2462_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ExportNamedDeclaration'), PyJs_Object_2461_)
    PyJs_Object_2468_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2469_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2467_ = Js({u'local':PyJs_Object_2468_,u'exported':PyJs_Object_2469_})
    PyJs_Object_2466_ = Js({u'visitor':Js([Js(u'local'), Js(u'exported')]),u'aliases':Js([Js(u'ModuleSpecifier')]),u'fields':PyJs_Object_2467_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ExportSpecifier'), PyJs_Object_2466_)
    PyJs_Object_2472_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'VariableDeclaration'), Js(u'LVal'))})
    PyJs_Object_2473_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2474_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Statement'))})
    PyJs_Object_2471_ = Js({u'left':PyJs_Object_2472_,u'right':PyJs_Object_2473_,u'body':PyJs_Object_2474_})
    PyJs_Object_2470_ = Js({u'visitor':Js([Js(u'left'), Js(u'right'), Js(u'body')]),u'aliases':Js([Js(u'Scopable'), Js(u'Statement'), Js(u'For'), Js(u'BlockParent'), Js(u'Loop'), Js(u'ForXStatement')]),u'fields':PyJs_Object_2471_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ForOfStatement'), PyJs_Object_2470_)
    PyJs_Object_2477_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'ImportSpecifier'), Js(u'ImportDefaultSpecifier'), Js(u'ImportNamespaceSpecifier'))))})
    PyJs_Object_2478_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'StringLiteral'))})
    PyJs_Object_2476_ = Js({u'specifiers':PyJs_Object_2477_,u'source':PyJs_Object_2478_})
    PyJs_Object_2475_ = Js({u'visitor':Js([Js(u'specifiers'), Js(u'source')]),u'aliases':Js([Js(u'Statement'), Js(u'Declaration'), Js(u'ModuleDeclaration')]),u'fields':PyJs_Object_2476_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ImportDeclaration'), PyJs_Object_2475_)
    PyJs_Object_2481_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2480_ = Js({u'local':PyJs_Object_2481_})
    PyJs_Object_2479_ = Js({u'visitor':Js([Js(u'local')]),u'aliases':Js([Js(u'ModuleSpecifier')]),u'fields':PyJs_Object_2480_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ImportDefaultSpecifier'), PyJs_Object_2479_)
    PyJs_Object_2484_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2483_ = Js({u'local':PyJs_Object_2484_})
    PyJs_Object_2482_ = Js({u'visitor':Js([Js(u'local')]),u'aliases':Js([Js(u'ModuleSpecifier')]),u'fields':PyJs_Object_2483_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ImportNamespaceSpecifier'), PyJs_Object_2482_)
    PyJs_Object_2487_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2488_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2486_ = Js({u'local':PyJs_Object_2487_,u'imported':PyJs_Object_2488_})
    PyJs_Object_2485_ = Js({u'visitor':Js([Js(u'local'), Js(u'imported')]),u'aliases':Js([Js(u'ModuleSpecifier')]),u'fields':PyJs_Object_2486_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ImportSpecifier'), PyJs_Object_2485_)
    PyJs_Object_2491_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'string'))})
    PyJs_Object_2492_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'string'))})
    PyJs_Object_2490_ = Js({u'meta':PyJs_Object_2491_,u'property':PyJs_Object_2492_})
    PyJs_Object_2489_ = Js({u'visitor':Js([Js(u'meta'), Js(u'property')]),u'aliases':Js([Js(u'Expression')]),u'fields':PyJs_Object_2490_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'MetaProperty'), PyJs_Object_2489_)
    PyJs_Object_2495_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'string')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertOneOf'))(Js(u'get'), Js(u'set'), Js(u'method'), Js(u'constructor'))),u'default':Js(u'method')})
    PyJs_Object_2496_ = Js({u'default':Js(False),u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'boolean'))})
    PyJs_Object_2497_ = Js({u'default':Js(False),u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'boolean'))})
    @Js
    def PyJs_validate_2499_(node, key, val, this, arguments, var=var):
        var = Scope({u'node':node, u'val':val, u'this':this, u'arguments':arguments, u'key':key, u'validate':PyJs_validate_2499_}, var)
        var.registers([u'node', u'val', u'key', u'expectedTypes'])
        var.put(u'expectedTypes', (Js([Js(u'Expression')]) if var.get(u'node').get(u'computed') else Js([Js(u'Identifier'), Js(u'StringLiteral'), Js(u'NumericLiteral')])))
        var.get(u'_index').get(u'assertNodeType').callprop(u'apply', var.get(u'undefined'), var.get(u'expectedTypes'))(var.get(u'node'), var.get(u'key'), var.get(u'val'))
    PyJs_validate_2499_._set_name(u'validate')
    PyJs_Object_2498_ = Js({u'validate':PyJs_validate_2499_})
    PyJs_Object_2500_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'LVal'))))})
    PyJs_Object_2501_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'BlockStatement'))})
    PyJs_Object_2502_ = Js({u'default':Js(False),u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'boolean'))})
    PyJs_Object_2503_ = Js({u'default':Js(False),u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'boolean'))})
    PyJs_Object_2494_ = Js({u'kind':PyJs_Object_2495_,u'computed':PyJs_Object_2496_,u'static':PyJs_Object_2497_,u'key':PyJs_Object_2498_,u'params':PyJs_Object_2500_,u'body':PyJs_Object_2501_,u'generator':PyJs_Object_2502_,u'async':PyJs_Object_2503_})
    PyJs_Object_2493_ = Js({u'aliases':Js([Js(u'Function'), Js(u'Scopable'), Js(u'BlockParent'), Js(u'FunctionParent'), Js(u'Method')]),u'builder':Js([Js(u'kind'), Js(u'key'), Js(u'params'), Js(u'body'), Js(u'computed'), Js(u'static')]),u'visitor':Js([Js(u'key'), Js(u'params'), Js(u'body'), Js(u'decorators'), Js(u'returnType'), Js(u'typeParameters')]),u'fields':PyJs_Object_2494_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ClassMethod'), PyJs_Object_2493_)
    PyJs_Object_2506_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'RestProperty'), Js(u'Property'))))})
    PyJs_Object_2507_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Decorator'))))})
    PyJs_Object_2505_ = Js({u'properties':PyJs_Object_2506_,u'decorators':PyJs_Object_2507_})
    PyJs_Object_2504_ = Js({u'visitor':Js([Js(u'properties'), Js(u'typeAnnotation')]),u'aliases':Js([Js(u'Pattern'), Js(u'LVal')]),u'fields':PyJs_Object_2505_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ObjectPattern'), PyJs_Object_2504_)
    PyJs_Object_2510_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2509_ = Js({u'argument':PyJs_Object_2510_})
    PyJs_Object_2508_ = Js({u'visitor':Js([Js(u'argument')]),u'aliases':Js([Js(u'UnaryLike')]),u'fields':PyJs_Object_2509_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'SpreadElement'), PyJs_Object_2508_)
    PyJs_Object_2511_ = Js({u'aliases':Js([Js(u'Expression')])})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'Super'), PyJs_Object_2511_)
    PyJs_Object_2514_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2515_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'TemplateLiteral'))})
    PyJs_Object_2513_ = Js({u'tag':PyJs_Object_2514_,u'quasi':PyJs_Object_2515_})
    PyJs_Object_2512_ = Js({u'visitor':Js([Js(u'tag'), Js(u'quasi')]),u'aliases':Js([Js(u'Expression')]),u'fields':PyJs_Object_2513_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'TaggedTemplateExpression'), PyJs_Object_2512_)
    PyJs_Object_2518_ = Js({})
    PyJs_Object_2519_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'boolean')),u'default':Js(False)})
    PyJs_Object_2517_ = Js({u'value':PyJs_Object_2518_,u'tail':PyJs_Object_2519_})
    PyJs_Object_2516_ = Js({u'builder':Js([Js(u'value'), Js(u'tail')]),u'fields':PyJs_Object_2517_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'TemplateElement'), PyJs_Object_2516_)
    PyJs_Object_2522_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'TemplateElement'))))})
    PyJs_Object_2523_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))))})
    PyJs_Object_2521_ = Js({u'quasis':PyJs_Object_2522_,u'expressions':PyJs_Object_2523_})
    PyJs_Object_2520_ = Js({u'visitor':Js([Js(u'quasis'), Js(u'expressions')]),u'aliases':Js([Js(u'Expression'), Js(u'Literal')]),u'fields':PyJs_Object_2521_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'TemplateLiteral'), PyJs_Object_2520_)
    PyJs_Object_2526_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'boolean')),u'default':Js(False)})
    PyJs_Object_2527_ = Js({u'optional':var.get(u'true'),u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2525_ = Js({u'delegate':PyJs_Object_2526_,u'argument':PyJs_Object_2527_})
    PyJs_Object_2524_ = Js({u'builder':Js([Js(u'argument'), Js(u'delegate')]),u'visitor':Js([Js(u'argument')]),u'aliases':Js([Js(u'Expression'), Js(u'Terminatorless')]),u'fields':PyJs_Object_2525_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'YieldExpression'), PyJs_Object_2524_)
PyJs_anonymous_2424_._set_name(u'anonymous')
PyJs_Object_2528_ = Js({u'./index':Js(253.0)})
@Js
def PyJs_anonymous_2529_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_index', u'require', u'module', u'_index2', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2530_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2530_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    pass
    PyJs_Object_2533_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2532_ = Js({u'argument':PyJs_Object_2533_})
    PyJs_Object_2531_ = Js({u'builder':Js([Js(u'argument')]),u'visitor':Js([Js(u'argument')]),u'aliases':Js([Js(u'Expression'), Js(u'Terminatorless')]),u'fields':PyJs_Object_2532_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'AwaitExpression'), PyJs_Object_2531_)
    PyJs_Object_2536_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'VariableDeclaration'), Js(u'LVal'))})
    PyJs_Object_2537_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2538_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Statement'))})
    PyJs_Object_2535_ = Js({u'left':PyJs_Object_2536_,u'right':PyJs_Object_2537_,u'body':PyJs_Object_2538_})
    PyJs_Object_2534_ = Js({u'visitor':Js([Js(u'left'), Js(u'right'), Js(u'body')]),u'aliases':Js([Js(u'Scopable'), Js(u'Statement'), Js(u'For'), Js(u'BlockParent'), Js(u'Loop'), Js(u'ForXStatement')]),u'fields':PyJs_Object_2535_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ForAwaitStatement'), PyJs_Object_2534_)
    PyJs_Object_2540_ = Js({})
    PyJs_Object_2539_ = Js({u'visitor':Js([Js(u'object'), Js(u'callee')]),u'aliases':Js([Js(u'Expression')]),u'fields':PyJs_Object_2540_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'BindExpression'), PyJs_Object_2539_)
    PyJs_Object_2543_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2542_ = Js({u'expression':PyJs_Object_2543_})
    PyJs_Object_2541_ = Js({u'visitor':Js([Js(u'expression')]),u'fields':PyJs_Object_2542_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'Decorator'), PyJs_Object_2541_)
    PyJs_Object_2546_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'BlockStatement'))})
    PyJs_Object_2545_ = Js({u'body':PyJs_Object_2546_})
    PyJs_Object_2544_ = Js({u'visitor':Js([Js(u'body')]),u'aliases':Js([Js(u'Expression')]),u'fields':PyJs_Object_2545_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'DoExpression'), PyJs_Object_2544_)
    PyJs_Object_2549_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2548_ = Js({u'exported':PyJs_Object_2549_})
    PyJs_Object_2547_ = Js({u'visitor':Js([Js(u'exported')]),u'aliases':Js([Js(u'ModuleSpecifier')]),u'fields':PyJs_Object_2548_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ExportDefaultSpecifier'), PyJs_Object_2547_)
    PyJs_Object_2552_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Identifier'))})
    PyJs_Object_2551_ = Js({u'exported':PyJs_Object_2552_})
    PyJs_Object_2550_ = Js({u'visitor':Js([Js(u'exported')]),u'aliases':Js([Js(u'ModuleSpecifier')]),u'fields':PyJs_Object_2551_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ExportNamespaceSpecifier'), PyJs_Object_2550_)
    PyJs_Object_2555_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'LVal'))})
    PyJs_Object_2554_ = Js({u'argument':PyJs_Object_2555_})
    PyJs_Object_2553_ = Js({u'visitor':Js([Js(u'argument')]),u'aliases':Js([Js(u'UnaryLike')]),u'fields':PyJs_Object_2554_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'RestProperty'), PyJs_Object_2553_)
    PyJs_Object_2558_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2557_ = Js({u'argument':PyJs_Object_2558_})
    PyJs_Object_2556_ = Js({u'visitor':Js([Js(u'argument')]),u'aliases':Js([Js(u'UnaryLike')]),u'fields':PyJs_Object_2557_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'SpreadProperty'), PyJs_Object_2556_)
PyJs_anonymous_2529_._set_name(u'anonymous')
PyJs_Object_2559_ = Js({u'./index':Js(253.0)})
@Js
def PyJs_anonymous_2560_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_index', u'require', u'module', u'_index2', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2561_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2561_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    pass
    PyJs_Object_2563_ = Js({})
    PyJs_Object_2562_ = Js({u'aliases':Js([Js(u'Flow'), Js(u'FlowBaseAnnotation')]),u'fields':PyJs_Object_2563_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'AnyTypeAnnotation'), PyJs_Object_2562_)
    PyJs_Object_2565_ = Js({})
    PyJs_Object_2564_ = Js({u'visitor':Js([Js(u'elementType')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2565_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ArrayTypeAnnotation'), PyJs_Object_2564_)
    PyJs_Object_2567_ = Js({})
    PyJs_Object_2566_ = Js({u'aliases':Js([Js(u'Flow'), Js(u'FlowBaseAnnotation')]),u'fields':PyJs_Object_2567_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'BooleanTypeAnnotation'), PyJs_Object_2566_)
    PyJs_Object_2569_ = Js({})
    PyJs_Object_2568_ = Js({u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2569_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'BooleanLiteralTypeAnnotation'), PyJs_Object_2568_)
    PyJs_Object_2571_ = Js({})
    PyJs_Object_2570_ = Js({u'aliases':Js([Js(u'Flow'), Js(u'FlowBaseAnnotation')]),u'fields':PyJs_Object_2571_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'NullLiteralTypeAnnotation'), PyJs_Object_2570_)
    PyJs_Object_2573_ = Js({})
    PyJs_Object_2572_ = Js({u'visitor':Js([Js(u'id'), Js(u'typeParameters')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2573_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ClassImplements'), PyJs_Object_2572_)
    PyJs_Object_2576_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'boolean')),u'default':Js(False)})
    PyJs_Object_2575_ = Js({u'computed':PyJs_Object_2576_})
    PyJs_Object_2574_ = Js({u'visitor':Js([Js(u'key'), Js(u'value'), Js(u'typeAnnotation'), Js(u'decorators')]),u'builder':Js([Js(u'key'), Js(u'value'), Js(u'typeAnnotation'), Js(u'decorators'), Js(u'computed')]),u'aliases':Js([Js(u'Property')]),u'fields':PyJs_Object_2575_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ClassProperty'), PyJs_Object_2574_)
    PyJs_Object_2578_ = Js({})
    PyJs_Object_2577_ = Js({u'visitor':Js([Js(u'id'), Js(u'typeParameters'), Js(u'extends'), Js(u'body')]),u'aliases':Js([Js(u'Flow'), Js(u'FlowDeclaration'), Js(u'Statement'), Js(u'Declaration')]),u'fields':PyJs_Object_2578_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'DeclareClass'), PyJs_Object_2577_)
    PyJs_Object_2580_ = Js({})
    PyJs_Object_2579_ = Js({u'visitor':Js([Js(u'id')]),u'aliases':Js([Js(u'Flow'), Js(u'FlowDeclaration'), Js(u'Statement'), Js(u'Declaration')]),u'fields':PyJs_Object_2580_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'DeclareFunction'), PyJs_Object_2579_)
    PyJs_Object_2582_ = Js({})
    PyJs_Object_2581_ = Js({u'visitor':Js([Js(u'id'), Js(u'typeParameters'), Js(u'extends'), Js(u'body')]),u'aliases':Js([Js(u'Flow'), Js(u'FlowDeclaration'), Js(u'Statement'), Js(u'Declaration')]),u'fields':PyJs_Object_2582_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'DeclareInterface'), PyJs_Object_2581_)
    PyJs_Object_2584_ = Js({})
    PyJs_Object_2583_ = Js({u'visitor':Js([Js(u'id'), Js(u'body')]),u'aliases':Js([Js(u'Flow'), Js(u'FlowDeclaration'), Js(u'Statement'), Js(u'Declaration')]),u'fields':PyJs_Object_2584_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'DeclareModule'), PyJs_Object_2583_)
    PyJs_Object_2586_ = Js({})
    PyJs_Object_2585_ = Js({u'visitor':Js([Js(u'typeAnnotation')]),u'aliases':Js([Js(u'Flow'), Js(u'FlowDeclaration'), Js(u'Statement'), Js(u'Declaration')]),u'fields':PyJs_Object_2586_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'DeclareModuleExports'), PyJs_Object_2585_)
    PyJs_Object_2588_ = Js({})
    PyJs_Object_2587_ = Js({u'visitor':Js([Js(u'id'), Js(u'typeParameters'), Js(u'right')]),u'aliases':Js([Js(u'Flow'), Js(u'FlowDeclaration'), Js(u'Statement'), Js(u'Declaration')]),u'fields':PyJs_Object_2588_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'DeclareTypeAlias'), PyJs_Object_2587_)
    PyJs_Object_2590_ = Js({})
    PyJs_Object_2589_ = Js({u'visitor':Js([Js(u'id')]),u'aliases':Js([Js(u'Flow'), Js(u'FlowDeclaration'), Js(u'Statement'), Js(u'Declaration')]),u'fields':PyJs_Object_2590_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'DeclareVariable'), PyJs_Object_2589_)
    PyJs_Object_2591_ = Js({u'aliases':Js([Js(u'Flow')])})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ExistentialTypeParam'), PyJs_Object_2591_)
    PyJs_Object_2593_ = Js({})
    PyJs_Object_2592_ = Js({u'visitor':Js([Js(u'typeParameters'), Js(u'params'), Js(u'rest'), Js(u'returnType')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2593_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'FunctionTypeAnnotation'), PyJs_Object_2592_)
    PyJs_Object_2595_ = Js({})
    PyJs_Object_2594_ = Js({u'visitor':Js([Js(u'name'), Js(u'typeAnnotation')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2595_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'FunctionTypeParam'), PyJs_Object_2594_)
    PyJs_Object_2597_ = Js({})
    PyJs_Object_2596_ = Js({u'visitor':Js([Js(u'id'), Js(u'typeParameters')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2597_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'GenericTypeAnnotation'), PyJs_Object_2596_)
    PyJs_Object_2599_ = Js({})
    PyJs_Object_2598_ = Js({u'visitor':Js([Js(u'id'), Js(u'typeParameters')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2599_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'InterfaceExtends'), PyJs_Object_2598_)
    PyJs_Object_2601_ = Js({})
    PyJs_Object_2600_ = Js({u'visitor':Js([Js(u'id'), Js(u'typeParameters'), Js(u'extends'), Js(u'body')]),u'aliases':Js([Js(u'Flow'), Js(u'FlowDeclaration'), Js(u'Statement'), Js(u'Declaration')]),u'fields':PyJs_Object_2601_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'InterfaceDeclaration'), PyJs_Object_2600_)
    PyJs_Object_2603_ = Js({})
    PyJs_Object_2602_ = Js({u'visitor':Js([Js(u'types')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2603_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'IntersectionTypeAnnotation'), PyJs_Object_2602_)
    PyJs_Object_2604_ = Js({u'aliases':Js([Js(u'Flow'), Js(u'FlowBaseAnnotation')])})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'MixedTypeAnnotation'), PyJs_Object_2604_)
    PyJs_Object_2605_ = Js({u'aliases':Js([Js(u'Flow'), Js(u'FlowBaseAnnotation')])})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'EmptyTypeAnnotation'), PyJs_Object_2605_)
    PyJs_Object_2607_ = Js({})
    PyJs_Object_2606_ = Js({u'visitor':Js([Js(u'typeAnnotation')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2607_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'NullableTypeAnnotation'), PyJs_Object_2606_)
    PyJs_Object_2609_ = Js({})
    PyJs_Object_2608_ = Js({u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2609_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'NumericLiteralTypeAnnotation'), PyJs_Object_2608_)
    PyJs_Object_2611_ = Js({})
    PyJs_Object_2610_ = Js({u'aliases':Js([Js(u'Flow'), Js(u'FlowBaseAnnotation')]),u'fields':PyJs_Object_2611_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'NumberTypeAnnotation'), PyJs_Object_2610_)
    PyJs_Object_2613_ = Js({})
    PyJs_Object_2612_ = Js({u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2613_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'StringLiteralTypeAnnotation'), PyJs_Object_2612_)
    PyJs_Object_2615_ = Js({})
    PyJs_Object_2614_ = Js({u'aliases':Js([Js(u'Flow'), Js(u'FlowBaseAnnotation')]),u'fields':PyJs_Object_2615_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'StringTypeAnnotation'), PyJs_Object_2614_)
    PyJs_Object_2617_ = Js({})
    PyJs_Object_2616_ = Js({u'aliases':Js([Js(u'Flow'), Js(u'FlowBaseAnnotation')]),u'fields':PyJs_Object_2617_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ThisTypeAnnotation'), PyJs_Object_2616_)
    PyJs_Object_2619_ = Js({})
    PyJs_Object_2618_ = Js({u'visitor':Js([Js(u'types')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2619_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'TupleTypeAnnotation'), PyJs_Object_2618_)
    PyJs_Object_2621_ = Js({})
    PyJs_Object_2620_ = Js({u'visitor':Js([Js(u'argument')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2621_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'TypeofTypeAnnotation'), PyJs_Object_2620_)
    PyJs_Object_2623_ = Js({})
    PyJs_Object_2622_ = Js({u'visitor':Js([Js(u'id'), Js(u'typeParameters'), Js(u'right')]),u'aliases':Js([Js(u'Flow'), Js(u'FlowDeclaration'), Js(u'Statement'), Js(u'Declaration')]),u'fields':PyJs_Object_2623_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'TypeAlias'), PyJs_Object_2622_)
    PyJs_Object_2625_ = Js({})
    PyJs_Object_2624_ = Js({u'visitor':Js([Js(u'typeAnnotation')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2625_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'TypeAnnotation'), PyJs_Object_2624_)
    PyJs_Object_2627_ = Js({})
    PyJs_Object_2626_ = Js({u'visitor':Js([Js(u'expression'), Js(u'typeAnnotation')]),u'aliases':Js([Js(u'Flow'), Js(u'ExpressionWrapper'), Js(u'Expression')]),u'fields':PyJs_Object_2627_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'TypeCastExpression'), PyJs_Object_2626_)
    PyJs_Object_2629_ = Js({})
    PyJs_Object_2628_ = Js({u'visitor':Js([Js(u'bound')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2629_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'TypeParameter'), PyJs_Object_2628_)
    PyJs_Object_2631_ = Js({})
    PyJs_Object_2630_ = Js({u'visitor':Js([Js(u'params')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2631_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'TypeParameterDeclaration'), PyJs_Object_2630_)
    PyJs_Object_2633_ = Js({})
    PyJs_Object_2632_ = Js({u'visitor':Js([Js(u'params')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2633_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'TypeParameterInstantiation'), PyJs_Object_2632_)
    PyJs_Object_2635_ = Js({})
    PyJs_Object_2634_ = Js({u'visitor':Js([Js(u'properties'), Js(u'indexers'), Js(u'callProperties')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2635_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ObjectTypeAnnotation'), PyJs_Object_2634_)
    PyJs_Object_2637_ = Js({})
    PyJs_Object_2636_ = Js({u'visitor':Js([Js(u'value')]),u'aliases':Js([Js(u'Flow'), Js(u'UserWhitespacable')]),u'fields':PyJs_Object_2637_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ObjectTypeCallProperty'), PyJs_Object_2636_)
    PyJs_Object_2639_ = Js({})
    PyJs_Object_2638_ = Js({u'visitor':Js([Js(u'id'), Js(u'key'), Js(u'value')]),u'aliases':Js([Js(u'Flow'), Js(u'UserWhitespacable')]),u'fields':PyJs_Object_2639_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ObjectTypeIndexer'), PyJs_Object_2638_)
    PyJs_Object_2641_ = Js({})
    PyJs_Object_2640_ = Js({u'visitor':Js([Js(u'key'), Js(u'value')]),u'aliases':Js([Js(u'Flow'), Js(u'UserWhitespacable')]),u'fields':PyJs_Object_2641_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ObjectTypeProperty'), PyJs_Object_2640_)
    PyJs_Object_2643_ = Js({})
    PyJs_Object_2642_ = Js({u'visitor':Js([Js(u'id'), Js(u'qualification')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2643_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'QualifiedTypeIdentifier'), PyJs_Object_2642_)
    PyJs_Object_2645_ = Js({})
    PyJs_Object_2644_ = Js({u'visitor':Js([Js(u'types')]),u'aliases':Js([Js(u'Flow')]),u'fields':PyJs_Object_2645_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'UnionTypeAnnotation'), PyJs_Object_2644_)
    PyJs_Object_2647_ = Js({})
    PyJs_Object_2646_ = Js({u'aliases':Js([Js(u'Flow'), Js(u'FlowBaseAnnotation')]),u'fields':PyJs_Object_2647_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'VoidTypeAnnotation'), PyJs_Object_2646_)
PyJs_anonymous_2560_._set_name(u'anonymous')
PyJs_Object_2648_ = Js({u'./index':Js(253.0)})
@Js
def PyJs_anonymous_2649_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'chain', u'BUILDER_KEYS', u'defineType', u'assertNodeOrValueType', u'module', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'assertEach', u'_typeof2', u'_typeof3', u'VISITOR_KEYS', u'NODE_FIELDS', u'assertOneOf', u'store', u'DEPRECATED_KEYS', u'exports', u'_stringify2', u'assertNodeType', u'_interopRequireWildcard', u'ALIAS_KEYS', u'getType', u'_index', u'require', u'assertValueType', u'_stringify', u't'])
    @Js
    def PyJsHoisted_assertNodeType_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'validate', u'_len2', u'types', u'_key2'])
        @Js
        def PyJsHoisted_validate_(node, key, val, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'val':val, u'key':key, u'arguments':arguments}, var)
            var.registers([u'node', u'_isArray', u'_iterator', u'key', u'val', u'valid', u'_i', u'_ref', u'type'])
            var.put(u'valid', Js(False))
            #for JS loop
            var.put(u'_iterator', var.get(u'types'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'type', var.get(u'_ref'))
                if var.get(u't').callprop(u'is', var.get(u'type'), var.get(u'val')):
                    var.put(u'valid', var.get(u'true'))
                    break
            
            if var.get(u'valid').neg():
                PyJsTempException = JsToPyException(var.get(u'TypeError').create((((((((Js(u'Property ')+var.get(u'key'))+Js(u' of '))+var.get(u'node').get(u'type'))+Js(u' expected node to be of a type '))+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'types')))+Js(u' '))+(Js(u'but instead got ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))((var.get(u'val') and var.get(u'val').get(u'type')))))))
                raise PyJsTempException
        PyJsHoisted_validate_.func_name = u'validate'
        var.put(u'validate', PyJsHoisted_validate_)
        #for JS loop
        var.put(u'_len2', var.get(u'arguments').get(u'length'))
        var.put(u'types', var.get(u'Array')(var.get(u'_len2')))
        var.put(u'_key2', Js(0.0))
        while (var.get(u'_key2')<var.get(u'_len2')):
            try:
                var.get(u'types').put(var.get(u'_key2'), var.get(u'arguments').get(var.get(u'_key2')))
            finally:
                    (var.put(u'_key2',Js(var.get(u'_key2').to_number())+Js(1))-Js(1))
        pass
        var.get(u'validate').put(u'oneOfNodeTypes', var.get(u'types'))
        return var.get(u'validate')
    PyJsHoisted_assertNodeType_.func_name = u'assertNodeType'
    var.put(u'assertNodeType', PyJsHoisted_assertNodeType_)
    @Js
    def PyJsHoisted_chain_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'validate', u'fns', u'_len4', u'_key4'])
        @Js
        def PyJsHoisted_validate_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'fn', u'_i3', u'_isArray3', u'_ref3', u'_iterator3'])
            #for JS loop
            var.put(u'_iterator3', var.get(u'fns'))
            var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
            var.put(u'_i3', Js(0.0))
            var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
            while 1:
                pass
                if var.get(u'_isArray3'):
                    if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                        break
                    var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                    if var.get(u'_i3').get(u'done'):
                        break
                    var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                var.put(u'fn', var.get(u'_ref3'))
                var.get(u'fn').callprop(u'apply', var.get(u'undefined'), var.get(u'arguments'))
            
        PyJsHoisted_validate_.func_name = u'validate'
        var.put(u'validate', PyJsHoisted_validate_)
        #for JS loop
        var.put(u'_len4', var.get(u'arguments').get(u'length'))
        var.put(u'fns', var.get(u'Array')(var.get(u'_len4')))
        var.put(u'_key4', Js(0.0))
        while (var.get(u'_key4')<var.get(u'_len4')):
            try:
                var.get(u'fns').put(var.get(u'_key4'), var.get(u'arguments').get(var.get(u'_key4')))
            finally:
                    (var.put(u'_key4',Js(var.get(u'_key4').to_number())+Js(1))-Js(1))
        pass
        var.get(u'validate').put(u'chainOf', var.get(u'fns'))
        return var.get(u'validate')
    PyJsHoisted_chain_.func_name = u'chain'
    var.put(u'chain', PyJsHoisted_chain_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2650_ = Js({})
            var.put(u'newObj', PyJs_Object_2650_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_getType_(val, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
        var.registers([u'val'])
        if var.get(u'Array').callprop(u'isArray', var.get(u'val')):
            return Js(u'array')
        else:
            if PyJsStrictEq(var.get(u'val'),var.get(u"null")):
                return Js(u'null')
            else:
                if PyJsStrictEq(var.get(u'val'),var.get(u'undefined')):
                    return Js(u'undefined')
                else:
                    return (Js(u'undefined') if PyJsStrictEq(var.get(u'val',throw=False).typeof(),Js(u'undefined')) else PyJsComma(Js(0.0),var.get(u'_typeof3').get(u'default'))(var.get(u'val')))
    PyJsHoisted_getType_.func_name = u'getType'
    var.put(u'getType', PyJsHoisted_getType_)
    @Js
    def PyJsHoisted_assertNodeOrValueType_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'validate', u'_len3', u'_key3', u'types'])
        @Js
        def PyJsHoisted_validate_(node, key, val, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'val':val, u'key':key, u'arguments':arguments}, var)
            var.registers([u'node', u'_isArray2', u'val', u'_ref2', u'_i2', u'valid', u'key', u'type', u'_iterator2'])
            var.put(u'valid', Js(False))
            #for JS loop
            var.put(u'_iterator2', var.get(u'types'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                var.put(u'type', var.get(u'_ref2'))
                if (PyJsStrictEq(var.get(u'getType')(var.get(u'val')),var.get(u'type')) or var.get(u't').callprop(u'is', var.get(u'type'), var.get(u'val'))):
                    var.put(u'valid', var.get(u'true'))
                    break
            
            if var.get(u'valid').neg():
                PyJsTempException = JsToPyException(var.get(u'TypeError').create((((((((Js(u'Property ')+var.get(u'key'))+Js(u' of '))+var.get(u'node').get(u'type'))+Js(u' expected node to be of a type '))+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'types')))+Js(u' '))+(Js(u'but instead got ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))((var.get(u'val') and var.get(u'val').get(u'type')))))))
                raise PyJsTempException
        PyJsHoisted_validate_.func_name = u'validate'
        var.put(u'validate', PyJsHoisted_validate_)
        #for JS loop
        var.put(u'_len3', var.get(u'arguments').get(u'length'))
        var.put(u'types', var.get(u'Array')(var.get(u'_len3')))
        var.put(u'_key3', Js(0.0))
        while (var.get(u'_key3')<var.get(u'_len3')):
            try:
                var.get(u'types').put(var.get(u'_key3'), var.get(u'arguments').get(var.get(u'_key3')))
            finally:
                    (var.put(u'_key3',Js(var.get(u'_key3').to_number())+Js(1))-Js(1))
        pass
        var.get(u'validate').put(u'oneOfNodeOrValueTypes', var.get(u'types'))
        return var.get(u'validate')
    PyJsHoisted_assertNodeOrValueType_.func_name = u'assertNodeOrValueType'
    var.put(u'assertNodeOrValueType', PyJsHoisted_assertNodeOrValueType_)
    @Js
    def PyJsHoisted_assertValueType_(type, this, arguments, var=var):
        var = Scope({u'this':this, u'type':type, u'arguments':arguments}, var)
        var.registers([u'validate', u'type'])
        @Js
        def PyJsHoisted_validate_(node, key, val, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'val':val, u'key':key, u'arguments':arguments}, var)
            var.registers([u'node', u'valid', u'val', u'key'])
            var.put(u'valid', PyJsStrictEq(var.get(u'getType')(var.get(u'val')),var.get(u'type')))
            if var.get(u'valid').neg():
                PyJsTempException = JsToPyException(var.get(u'TypeError').create((((((Js(u'Property ')+var.get(u'key'))+Js(u' expected type of '))+var.get(u'type'))+Js(u' but got '))+var.get(u'getType')(var.get(u'val')))))
                raise PyJsTempException
        PyJsHoisted_validate_.func_name = u'validate'
        var.put(u'validate', PyJsHoisted_validate_)
        pass
        var.get(u'validate').put(u'type', var.get(u'type'))
        return var.get(u'validate')
    PyJsHoisted_assertValueType_.func_name = u'assertValueType'
    var.put(u'assertValueType', PyJsHoisted_assertValueType_)
    @Js
    def PyJsHoisted_assertOneOf_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'_len', u'vals', u'validate', u'_key'])
        @Js
        def PyJsHoisted_validate_(node, key, val, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'val':val, u'key':key, u'arguments':arguments}, var)
            var.registers([u'node', u'val', u'key'])
            if (var.get(u'vals').callprop(u'indexOf', var.get(u'val'))<Js(0.0)):
                PyJsTempException = JsToPyException(var.get(u'TypeError').create((((((Js(u'Property ')+var.get(u'key'))+Js(u' expected value to be one of '))+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'vals')))+Js(u' but got '))+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'val')))))
                raise PyJsTempException
        PyJsHoisted_validate_.func_name = u'validate'
        var.put(u'validate', PyJsHoisted_validate_)
        #for JS loop
        var.put(u'_len', var.get(u'arguments').get(u'length'))
        var.put(u'vals', var.get(u'Array')(var.get(u'_len')))
        var.put(u'_key', Js(0.0))
        while (var.get(u'_key')<var.get(u'_len')):
            try:
                var.get(u'vals').put(var.get(u'_key'), var.get(u'arguments').get(var.get(u'_key')))
            finally:
                    (var.put(u'_key',Js(var.get(u'_key').to_number())+Js(1))-Js(1))
        pass
        var.get(u'validate').put(u'oneOf', var.get(u'vals'))
        return var.get(u'validate')
    PyJsHoisted_assertOneOf_.func_name = u'assertOneOf'
    var.put(u'assertOneOf', PyJsHoisted_assertOneOf_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2651_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2651_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_defineType_(type, this, arguments, var=var):
        var = Scope({u'this':this, u'type':type, u'arguments':arguments}, var)
        var.registers([u'inherits', u'_isArray4', u'_i4', u'field', u'_key5', u'key', u'_iterator4', u'type', u'opts', u'_ref4'])
        PyJs_Object_2657_ = Js({})
        var.put(u'opts', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else PyJs_Object_2657_))
        PyJs_Object_2658_ = Js({})
        var.put(u'inherits', ((var.get(u'opts').get(u'inherits') and var.get(u'store').get(var.get(u'opts').get(u'inherits'))) or PyJs_Object_2658_))
        PyJs_Object_2659_ = Js({})
        var.get(u'opts').put(u'fields', ((var.get(u'opts').get(u'fields') or var.get(u'inherits').get(u'fields')) or PyJs_Object_2659_))
        var.get(u'opts').put(u'visitor', ((var.get(u'opts').get(u'visitor') or var.get(u'inherits').get(u'visitor')) or Js([])))
        var.get(u'opts').put(u'aliases', ((var.get(u'opts').get(u'aliases') or var.get(u'inherits').get(u'aliases')) or Js([])))
        var.get(u'opts').put(u'builder', (((var.get(u'opts').get(u'builder') or var.get(u'inherits').get(u'builder')) or var.get(u'opts').get(u'visitor')) or Js([])))
        if var.get(u'opts').get(u'deprecatedAlias'):
            var.get(u'DEPRECATED_KEYS').put(var.get(u'opts').get(u'deprecatedAlias'), var.get(u'type'))
        #for JS loop
        var.put(u'_iterator4', var.get(u'opts').get(u'visitor').callprop(u'concat', var.get(u'opts').get(u'builder')))
        var.put(u'_isArray4', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator4')))
        var.put(u'_i4', Js(0.0))
        var.put(u'_iterator4', (var.get(u'_iterator4') if var.get(u'_isArray4') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator4'))))
        while 1:
            pass
            if var.get(u'_isArray4'):
                if (var.get(u'_i4')>=var.get(u'_iterator4').get(u'length')):
                    break
                var.put(u'_ref4', var.get(u'_iterator4').get((var.put(u'_i4',Js(var.get(u'_i4').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i4', var.get(u'_iterator4').callprop(u'next'))
                if var.get(u'_i4').get(u'done'):
                    break
                var.put(u'_ref4', var.get(u'_i4').get(u'value'))
            var.put(u'_key5', var.get(u'_ref4'))
            PyJs_Object_2660_ = Js({})
            var.get(u'opts').get(u'fields').put(var.get(u'_key5'), (var.get(u'opts').get(u'fields').get(var.get(u'_key5')) or PyJs_Object_2660_))
        
        for PyJsTemp in var.get(u'opts').get(u'fields'):
            var.put(u'key', PyJsTemp)
            var.put(u'field', var.get(u'opts').get(u'fields').get(var.get(u'key')))
            if PyJsStrictEq(var.get(u'opts').get(u'builder').callprop(u'indexOf', var.get(u'key')),(-Js(1.0))):
                var.get(u'field').put(u'optional', var.get(u'true'))
            if PyJsStrictEq(var.get(u'field').get(u'default'),var.get(u'undefined')):
                var.get(u'field').put(u'default', var.get(u"null"))
            else:
                if var.get(u'field').get(u'validate').neg():
                    var.get(u'field').put(u'validate', var.get(u'assertValueType')(var.get(u'getType')(var.get(u'field').get(u'default'))))
        var.get(u'VISITOR_KEYS').put(var.get(u'type'), var.get(u'opts').get(u'visitor'))
        var.get(u'BUILDER_KEYS').put(var.get(u'type'), var.get(u'opts').get(u'builder'))
        var.get(u'NODE_FIELDS').put(var.get(u'type'), var.get(u'opts').get(u'fields'))
        var.get(u'ALIAS_KEYS').put(var.get(u'type'), var.get(u'opts').get(u'aliases'))
        var.get(u'store').put(var.get(u'type'), var.get(u'opts'))
    PyJsHoisted_defineType_.func_name = u'defineType'
    var.put(u'defineType', PyJsHoisted_defineType_)
    @Js
    def PyJsHoisted_assertEach_(callback, this, arguments, var=var):
        var = Scope({u'this':this, u'callback':callback, u'arguments':arguments}, var)
        var.registers([u'callback', u'validator'])
        @Js
        def PyJsHoisted_validator_(node, key, val, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'val':val, u'key':key, u'arguments':arguments}, var)
            var.registers([u'i', u'node', u'val', u'key'])
            if var.get(u'Array').callprop(u'isArray', var.get(u'val')).neg():
                return var.get('undefined')
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'val').get(u'length')):
                try:
                    var.get(u'callback')(var.get(u'node'), (((var.get(u'key')+Js(u'['))+var.get(u'i'))+Js(u']')), var.get(u'val').get(var.get(u'i')))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        PyJsHoisted_validator_.func_name = u'validator'
        var.put(u'validator', PyJsHoisted_validator_)
        pass
        var.get(u'validator').put(u'each', var.get(u'callback'))
        return var.get(u'validator')
    PyJsHoisted_assertEach_.func_name = u'assertEach'
    var.put(u'assertEach', PyJsHoisted_assertEach_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'DEPRECATED_KEYS', var.get(u'exports').put(u'BUILDER_KEYS', var.get(u'exports').put(u'NODE_FIELDS', var.get(u'exports').put(u'ALIAS_KEYS', var.get(u'exports').put(u'VISITOR_KEYS', var.get(u'undefined'))))))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_stringify', var.get(u'require')(Js(u'babel-runtime/core-js/json/stringify')))
    var.put(u'_stringify2', var.get(u'_interopRequireDefault')(var.get(u'_stringify')))
    var.put(u'_typeof2', var.get(u'require')(Js(u'babel-runtime/helpers/typeof')))
    var.put(u'_typeof3', var.get(u'_interopRequireDefault')(var.get(u'_typeof2')))
    var.get(u'exports').put(u'assertEach', var.get(u'assertEach'))
    var.get(u'exports').put(u'assertOneOf', var.get(u'assertOneOf'))
    var.get(u'exports').put(u'assertNodeType', var.get(u'assertNodeType'))
    var.get(u'exports').put(u'assertNodeOrValueType', var.get(u'assertNodeOrValueType'))
    var.get(u'exports').put(u'assertValueType', var.get(u'assertValueType'))
    var.get(u'exports').put(u'chain', var.get(u'chain'))
    var.get(u'exports').put(u'default', var.get(u'defineType'))
    var.put(u'_index', var.get(u'require')(Js(u'../index')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_index')))
    pass
    pass
    PyJs_Object_2652_ = Js({})
    var.put(u'VISITOR_KEYS', var.get(u'exports').put(u'VISITOR_KEYS', PyJs_Object_2652_))
    PyJs_Object_2653_ = Js({})
    var.put(u'ALIAS_KEYS', var.get(u'exports').put(u'ALIAS_KEYS', PyJs_Object_2653_))
    PyJs_Object_2654_ = Js({})
    var.put(u'NODE_FIELDS', var.get(u'exports').put(u'NODE_FIELDS', PyJs_Object_2654_))
    PyJs_Object_2655_ = Js({})
    var.put(u'BUILDER_KEYS', var.get(u'exports').put(u'BUILDER_KEYS', PyJs_Object_2655_))
    PyJs_Object_2656_ = Js({})
    var.put(u'DEPRECATED_KEYS', var.get(u'exports').put(u'DEPRECATED_KEYS', PyJs_Object_2656_))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    PyJs_Object_2661_ = Js({})
    var.put(u'store', PyJs_Object_2661_)
PyJs_anonymous_2649_._set_name(u'anonymous')
PyJs_Object_2662_ = Js({u'../index':Js(258.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/json/stringify':Js(97.0),u'babel-runtime/helpers/typeof':Js(114.0)})
@Js
def PyJs_anonymous_2663_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    var.get(u'require')(Js(u'./index'))
    var.get(u'require')(Js(u'./core'))
    var.get(u'require')(Js(u'./es2015'))
    var.get(u'require')(Js(u'./flow'))
    var.get(u'require')(Js(u'./jsx'))
    var.get(u'require')(Js(u'./misc'))
    var.get(u'require')(Js(u'./experimental'))
PyJs_anonymous_2663_._set_name(u'anonymous')
PyJs_Object_2664_ = Js({u'./core':Js(249.0),u'./es2015':Js(250.0),u'./experimental':Js(251.0),u'./flow':Js(252.0),u'./index':Js(253.0),u'./jsx':Js(255.0),u'./misc':Js(256.0)})
@Js
def PyJs_anonymous_2665_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_index', u'require', u'module', u'_index2', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2666_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2666_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    pass
    PyJs_Object_2669_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXIdentifier'), Js(u'JSXNamespacedName'))})
    PyJs_Object_2670_ = Js({u'optional':var.get(u'true'),u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXElement'), Js(u'StringLiteral'), Js(u'JSXExpressionContainer'))})
    PyJs_Object_2668_ = Js({u'name':PyJs_Object_2669_,u'value':PyJs_Object_2670_})
    PyJs_Object_2667_ = Js({u'visitor':Js([Js(u'name'), Js(u'value')]),u'aliases':Js([Js(u'JSX'), Js(u'Immutable')]),u'fields':PyJs_Object_2668_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'JSXAttribute'), PyJs_Object_2667_)
    PyJs_Object_2673_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXIdentifier'), Js(u'JSXMemberExpression'))})
    PyJs_Object_2672_ = Js({u'name':PyJs_Object_2673_})
    PyJs_Object_2671_ = Js({u'visitor':Js([Js(u'name')]),u'aliases':Js([Js(u'JSX'), Js(u'Immutable')]),u'fields':PyJs_Object_2672_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'JSXClosingElement'), PyJs_Object_2671_)
    PyJs_Object_2676_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXOpeningElement'))})
    PyJs_Object_2677_ = Js({u'optional':var.get(u'true'),u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXClosingElement'))})
    PyJs_Object_2678_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXText'), Js(u'JSXExpressionContainer'), Js(u'JSXElement'))))})
    PyJs_Object_2675_ = Js({u'openingElement':PyJs_Object_2676_,u'closingElement':PyJs_Object_2677_,u'children':PyJs_Object_2678_})
    PyJs_Object_2674_ = Js({u'builder':Js([Js(u'openingElement'), Js(u'closingElement'), Js(u'children'), Js(u'selfClosing')]),u'visitor':Js([Js(u'openingElement'), Js(u'children'), Js(u'closingElement')]),u'aliases':Js([Js(u'JSX'), Js(u'Immutable'), Js(u'Expression')]),u'fields':PyJs_Object_2675_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'JSXElement'), PyJs_Object_2674_)
    PyJs_Object_2679_ = Js({u'aliases':Js([Js(u'JSX'), Js(u'Expression')])})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'JSXEmptyExpression'), PyJs_Object_2679_)
    PyJs_Object_2682_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2681_ = Js({u'expression':PyJs_Object_2682_})
    PyJs_Object_2680_ = Js({u'visitor':Js([Js(u'expression')]),u'aliases':Js([Js(u'JSX'), Js(u'Immutable')]),u'fields':PyJs_Object_2681_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'JSXExpressionContainer'), PyJs_Object_2680_)
    PyJs_Object_2685_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'string'))})
    PyJs_Object_2684_ = Js({u'name':PyJs_Object_2685_})
    PyJs_Object_2683_ = Js({u'builder':Js([Js(u'name')]),u'aliases':Js([Js(u'JSX'), Js(u'Expression')]),u'fields':PyJs_Object_2684_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'JSXIdentifier'), PyJs_Object_2683_)
    PyJs_Object_2688_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXMemberExpression'), Js(u'JSXIdentifier'))})
    PyJs_Object_2689_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXIdentifier'))})
    PyJs_Object_2687_ = Js({u'object':PyJs_Object_2688_,u'property':PyJs_Object_2689_})
    PyJs_Object_2686_ = Js({u'visitor':Js([Js(u'object'), Js(u'property')]),u'aliases':Js([Js(u'JSX'), Js(u'Expression')]),u'fields':PyJs_Object_2687_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'JSXMemberExpression'), PyJs_Object_2686_)
    PyJs_Object_2692_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXIdentifier'))})
    PyJs_Object_2693_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXIdentifier'))})
    PyJs_Object_2691_ = Js({u'namespace':PyJs_Object_2692_,u'name':PyJs_Object_2693_})
    PyJs_Object_2690_ = Js({u'visitor':Js([Js(u'namespace'), Js(u'name')]),u'aliases':Js([Js(u'JSX')]),u'fields':PyJs_Object_2691_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'JSXNamespacedName'), PyJs_Object_2690_)
    PyJs_Object_2696_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXIdentifier'), Js(u'JSXMemberExpression'))})
    PyJs_Object_2697_ = Js({u'default':Js(False),u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'boolean'))})
    PyJs_Object_2698_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'chain'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'array')), PyJsComma(Js(0.0),var.get(u'_index').get(u'assertEach'))(PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'JSXAttribute'), Js(u'JSXSpreadAttribute'))))})
    PyJs_Object_2695_ = Js({u'name':PyJs_Object_2696_,u'selfClosing':PyJs_Object_2697_,u'attributes':PyJs_Object_2698_})
    PyJs_Object_2694_ = Js({u'builder':Js([Js(u'name'), Js(u'attributes'), Js(u'selfClosing')]),u'visitor':Js([Js(u'name'), Js(u'attributes')]),u'aliases':Js([Js(u'JSX'), Js(u'Immutable')]),u'fields':PyJs_Object_2695_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'JSXOpeningElement'), PyJs_Object_2694_)
    PyJs_Object_2701_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2700_ = Js({u'argument':PyJs_Object_2701_})
    PyJs_Object_2699_ = Js({u'visitor':Js([Js(u'argument')]),u'aliases':Js([Js(u'JSX')]),u'fields':PyJs_Object_2700_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'JSXSpreadAttribute'), PyJs_Object_2699_)
    PyJs_Object_2704_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertValueType'))(Js(u'string'))})
    PyJs_Object_2703_ = Js({u'value':PyJs_Object_2704_})
    PyJs_Object_2702_ = Js({u'aliases':Js([Js(u'JSX'), Js(u'Immutable')]),u'builder':Js([Js(u'value')]),u'fields':PyJs_Object_2703_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'JSXText'), PyJs_Object_2702_)
PyJs_anonymous_2665_._set_name(u'anonymous')
PyJs_Object_2705_ = Js({u'./index':Js(253.0)})
@Js
def PyJs_anonymous_2706_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_index', u'require', u'module', u'_index2', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2707_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2707_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    Js(u'use strict')
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u'_index2', var.get(u'_interopRequireDefault')(var.get(u'_index')))
    pass
    PyJs_Object_2708_ = Js({u'visitor':Js([])})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'Noop'), PyJs_Object_2708_)
    PyJs_Object_2711_ = Js({u'validate':PyJsComma(Js(0.0),var.get(u'_index').get(u'assertNodeType'))(Js(u'Expression'))})
    PyJs_Object_2710_ = Js({u'expression':PyJs_Object_2711_})
    PyJs_Object_2709_ = Js({u'visitor':Js([Js(u'expression')]),u'aliases':Js([Js(u'Expression'), Js(u'ExpressionWrapper')]),u'fields':PyJs_Object_2710_})
    PyJsComma(Js(0.0),var.get(u'_index2').get(u'default'))(Js(u'ParenthesizedExpression'), PyJs_Object_2709_)
PyJs_anonymous_2706_._set_name(u'anonymous')
PyJs_Object_2712_ = Js({u'./index':Js(253.0)})
@Js
def PyJs_anonymous_2713_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'removeTypeDuplicates', u'createUnionTypeAnnotation', u'require', u'_index', u'createTypeAnnotationBasedOnTypeof', u'module', u't'])
    @Js
    def PyJsHoisted_createTypeAnnotationBasedOnTypeof_(type, this, arguments, var=var):
        var = Scope({u'this':this, u'type':type, u'arguments':arguments}, var)
        var.registers([u'type'])
        if PyJsStrictEq(var.get(u'type'),Js(u'string')):
            return var.get(u't').callprop(u'stringTypeAnnotation')
        else:
            if PyJsStrictEq(var.get(u'type'),Js(u'number')):
                return var.get(u't').callprop(u'numberTypeAnnotation')
            else:
                if PyJsStrictEq(var.get(u'type'),Js(u'undefined')):
                    return var.get(u't').callprop(u'voidTypeAnnotation')
                else:
                    if PyJsStrictEq(var.get(u'type'),Js(u'boolean')):
                        return var.get(u't').callprop(u'booleanTypeAnnotation')
                    else:
                        if PyJsStrictEq(var.get(u'type'),Js(u'function')):
                            return var.get(u't').callprop(u'genericTypeAnnotation', var.get(u't').callprop(u'identifier', Js(u'Function')))
                        else:
                            if PyJsStrictEq(var.get(u'type'),Js(u'object')):
                                return var.get(u't').callprop(u'genericTypeAnnotation', var.get(u't').callprop(u'identifier', Js(u'Object')))
                            else:
                                if PyJsStrictEq(var.get(u'type'),Js(u'symbol')):
                                    return var.get(u't').callprop(u'genericTypeAnnotation', var.get(u't').callprop(u'identifier', Js(u'Symbol')))
                                else:
                                    PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Invalid typeof value')))
                                    raise PyJsTempException
    PyJsHoisted_createTypeAnnotationBasedOnTypeof_.func_name = u'createTypeAnnotationBasedOnTypeof'
    var.put(u'createTypeAnnotationBasedOnTypeof', PyJsHoisted_createTypeAnnotationBasedOnTypeof_)
    @Js
    def PyJsHoisted_removeTypeDuplicates_(nodes, this, arguments, var=var):
        var = Scope({u'this':this, u'nodes':nodes, u'arguments':arguments}, var)
        var.registers([u'node', u'name', u'i', u'existing', u'typeGroups', u'bases', u'generics', u'nodes', u'_name', u'type', u'types'])
        PyJs_Object_2715_ = Js({})
        var.put(u'generics', PyJs_Object_2715_)
        PyJs_Object_2716_ = Js({})
        var.put(u'bases', PyJs_Object_2716_)
        var.put(u'typeGroups', Js([]))
        var.put(u'types', Js([]))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'nodes').get(u'length')):
            try:
                var.put(u'node', var.get(u'nodes').get(var.get(u'i')))
                if var.get(u'node').neg():
                    continue
                if (var.get(u'types').callprop(u'indexOf', var.get(u'node'))>=Js(0.0)):
                    continue
                if var.get(u't').callprop(u'isAnyTypeAnnotation', var.get(u'node')):
                    return Js([var.get(u'node')])
                if var.get(u't').callprop(u'isFlowBaseAnnotation', var.get(u'node')):
                    var.get(u'bases').put(var.get(u'node').get(u'type'), var.get(u'node'))
                    continue
                if var.get(u't').callprop(u'isUnionTypeAnnotation', var.get(u'node')):
                    if (var.get(u'typeGroups').callprop(u'indexOf', var.get(u'node').get(u'types'))<Js(0.0)):
                        var.put(u'nodes', var.get(u'nodes').callprop(u'concat', var.get(u'node').get(u'types')))
                        var.get(u'typeGroups').callprop(u'push', var.get(u'node').get(u'types'))
                    continue
                if var.get(u't').callprop(u'isGenericTypeAnnotation', var.get(u'node')):
                    var.put(u'name', var.get(u'node').get(u'id').get(u'name'))
                    if var.get(u'generics').get(var.get(u'name')):
                        var.put(u'existing', var.get(u'generics').get(var.get(u'name')))
                        if var.get(u'existing').get(u'typeParameters'):
                            if var.get(u'node').get(u'typeParameters'):
                                var.get(u'existing').get(u'typeParameters').put(u'params', var.get(u'removeTypeDuplicates')(var.get(u'existing').get(u'typeParameters').get(u'params').callprop(u'concat', var.get(u'node').get(u'typeParameters').get(u'params'))))
                        else:
                            var.put(u'existing', var.get(u'node').get(u'typeParameters'))
                    else:
                        var.get(u'generics').put(var.get(u'name'), var.get(u'node'))
                    continue
                var.get(u'types').callprop(u'push', var.get(u'node'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        for PyJsTemp in var.get(u'bases'):
            var.put(u'type', PyJsTemp)
            var.get(u'types').callprop(u'push', var.get(u'bases').get(var.get(u'type')))
        for PyJsTemp in var.get(u'generics'):
            var.put(u'_name', PyJsTemp)
            var.get(u'types').callprop(u'push', var.get(u'generics').get(var.get(u'_name')))
        return var.get(u'types')
    PyJsHoisted_removeTypeDuplicates_.func_name = u'removeTypeDuplicates'
    var.put(u'removeTypeDuplicates', PyJsHoisted_removeTypeDuplicates_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2714_ = Js({})
            var.put(u'newObj', PyJs_Object_2714_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_createUnionTypeAnnotation_(types, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'types':types}, var)
        var.registers([u'flattened', u'types'])
        var.put(u'flattened', var.get(u'removeTypeDuplicates')(var.get(u'types')))
        if PyJsStrictEq(var.get(u'flattened').get(u'length'),Js(1.0)):
            return var.get(u'flattened').get(u'0')
        else:
            return var.get(u't').callprop(u'unionTypeAnnotation', var.get(u'flattened'))
    PyJsHoisted_createUnionTypeAnnotation_.func_name = u'createUnionTypeAnnotation'
    var.put(u'createUnionTypeAnnotation', PyJsHoisted_createUnionTypeAnnotation_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'createUnionTypeAnnotation', var.get(u'createUnionTypeAnnotation'))
    var.get(u'exports').put(u'removeTypeDuplicates', var.get(u'removeTypeDuplicates'))
    var.get(u'exports').put(u'createTypeAnnotationBasedOnTypeof', var.get(u'createTypeAnnotationBasedOnTypeof'))
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_index')))
    pass
    pass
    pass
    pass
PyJs_anonymous_2713_._set_name(u'anonymous')
PyJs_Object_2717_ = Js({u'./index':Js(258.0)})
@Js
def PyJs_anonymous_2718_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'inherits', u'_validators', u'_constants', u'_each', u'_definitions', u'is', u'inheritTrailingComments', u'_getOwnPropertySymbols', u'module', u'_interopRequireDefault', u'_compact', u'inheritInnerComments', u'isType', u'_toFastProperties2', u'_clone', u'cloneDeep', u'_getIterator2', u'_getIterator3', u'_flow', u'assertNode', u'_uniq2', u'inheritLeadingComments', u'inheritsComments', u'_inheritComments', u'removeProperties', u'_keys', u'_getOwnPropertySymbols2', u'_uniq', u'_each2', u'type', u'clone', u'TYPES', u't', u'removeComments', u'_type', u'_stringify2', u'_interopRequireWildcard', u'buildMatchMemberExpression', u'removePropertiesDeep', u'_react', u'_keys2', u'appendToMemberExpression', u'_loop', u'validate', u'_converters', u'traverseFast', u'_retrievers', u'prependToMemberExpression', u'exports', u'_react2', u'ensureBlock', u'registerType', u'_toFastProperties', u'_clone2', u'cloneWithoutLoc', u'_stringify', u'_compact2', u'shallowEqual', u'isNode', u'CLEAR_KEYS', u'CLEAR_KEYS_PLUS_COMMENTS', u'require'])
    @Js
    def PyJsHoisted_inherits_(child, parent, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'parent':parent, u'child':child}, var)
        var.registers([u'_isArray6', u'_isArray5', u'parent', u'_i6', u'_ref5', u'child', u'_key3', u'_key2', u'key', u'_ref6', u'_iterator5', u'_iterator6', u'_i5'])
        if (var.get(u'child').neg() or var.get(u'parent').neg()):
            return var.get(u'child')
        #for JS loop
        var.put(u'_iterator5', var.get(u't').get(u'INHERIT_KEYS').get(u'optional'))
        var.put(u'_isArray5', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator5')))
        var.put(u'_i5', Js(0.0))
        var.put(u'_iterator5', (var.get(u'_iterator5') if var.get(u'_isArray5') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator5'))))
        while 1:
            pass
            if var.get(u'_isArray5'):
                if (var.get(u'_i5')>=var.get(u'_iterator5').get(u'length')):
                    break
                var.put(u'_ref5', var.get(u'_iterator5').get((var.put(u'_i5',Js(var.get(u'_i5').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i5', var.get(u'_iterator5').callprop(u'next'))
                if var.get(u'_i5').get(u'done'):
                    break
                var.put(u'_ref5', var.get(u'_i5').get(u'value'))
            var.put(u'_key2', var.get(u'_ref5'))
            if (var.get(u'child').get(var.get(u'_key2'))==var.get(u"null")):
                var.get(u'child').put(var.get(u'_key2'), var.get(u'parent').get(var.get(u'_key2')))
        
        for PyJsTemp in var.get(u'parent'):
            var.put(u'key', PyJsTemp)
            if PyJsStrictEq(var.get(u'key').get(u'0'),Js(u'_')):
                var.get(u'child').put(var.get(u'key'), var.get(u'parent').get(var.get(u'key')))
        #for JS loop
        var.put(u'_iterator6', var.get(u't').get(u'INHERIT_KEYS').get(u'force'))
        var.put(u'_isArray6', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator6')))
        var.put(u'_i6', Js(0.0))
        var.put(u'_iterator6', (var.get(u'_iterator6') if var.get(u'_isArray6') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator6'))))
        while 1:
            pass
            if var.get(u'_isArray6'):
                if (var.get(u'_i6')>=var.get(u'_iterator6').get(u'length')):
                    break
                var.put(u'_ref6', var.get(u'_iterator6').get((var.put(u'_i6',Js(var.get(u'_i6').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i6', var.get(u'_iterator6').callprop(u'next'))
                if var.get(u'_i6').get(u'done'):
                    break
                var.put(u'_ref6', var.get(u'_i6').get(u'value'))
            var.put(u'_key3', var.get(u'_ref6'))
            var.get(u'child').put(var.get(u'_key3'), var.get(u'parent').get(var.get(u'_key3')))
        
        var.get(u't').callprop(u'inheritsComments', var.get(u'child'), var.get(u'parent'))
        return var.get(u'child')
    PyJsHoisted_inherits_.func_name = u'inherits'
    var.put(u'inherits', PyJsHoisted_inherits_)
    @Js
    def PyJsHoisted_buildMatchMemberExpression_(match, allowPartial, this, arguments, var=var):
        var = Scope({u'this':this, u'allowPartial':allowPartial, u'match':match, u'arguments':arguments}, var)
        var.registers([u'parts', u'allowPartial', u'match'])
        var.put(u'parts', var.get(u'match').callprop(u'split', Js(u'.')))
        @Js
        def PyJs_anonymous_2823_(member, this, arguments, var=var):
            var = Scope({u'member':member, u'this':this, u'arguments':arguments}, var)
            var.registers([u'i', u'node', u'search', u'member'])
            if var.get(u't').callprop(u'isMemberExpression', var.get(u'member')).neg():
                return Js(False)
            var.put(u'search', Js([var.get(u'member')]))
            var.put(u'i', Js(0.0))
            while var.get(u'search').get(u'length'):
                var.put(u'node', var.get(u'search').callprop(u'shift'))
                if (var.get(u'allowPartial') and PyJsStrictEq(var.get(u'i'),var.get(u'parts').get(u'length'))):
                    return var.get(u'true')
                if var.get(u't').callprop(u'isIdentifier', var.get(u'node')):
                    if PyJsStrictNeq(var.get(u'parts').get(var.get(u'i')),var.get(u'node').get(u'name')):
                        return Js(False)
                else:
                    if var.get(u't').callprop(u'isStringLiteral', var.get(u'node')):
                        if PyJsStrictNeq(var.get(u'parts').get(var.get(u'i')),var.get(u'node').get(u'value')):
                            return Js(False)
                    else:
                        if var.get(u't').callprop(u'isMemberExpression', var.get(u'node')):
                            if (var.get(u'node').get(u'computed') and var.get(u't').callprop(u'isStringLiteral', var.get(u'node').get(u'property')).neg()):
                                return Js(False)
                            else:
                                var.get(u'search').callprop(u'push', var.get(u'node').get(u'object'))
                                var.get(u'search').callprop(u'push', var.get(u'node').get(u'property'))
                                continue
                        else:
                            return Js(False)
                if (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))>var.get(u'parts').get(u'length')):
                    return Js(False)
            return var.get(u'true')
        PyJs_anonymous_2823_._set_name(u'anonymous')
        return PyJs_anonymous_2823_
    PyJsHoisted_buildMatchMemberExpression_.func_name = u'buildMatchMemberExpression'
    var.put(u'buildMatchMemberExpression', PyJsHoisted_buildMatchMemberExpression_)
    @Js
    def PyJsHoisted_cloneDeep_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'newNode', u'val', u'key'])
        PyJs_Object_2822_ = Js({})
        var.put(u'newNode', PyJs_Object_2822_)
        for PyJsTemp in var.get(u'node'):
            var.put(u'key', PyJsTemp)
            if PyJsStrictEq(var.get(u'key').get(u'0'),Js(u'_')):
                continue
            var.put(u'val', var.get(u'node').get(var.get(u'key')))
            if var.get(u'val'):
                if var.get(u'val').get(u'type'):
                    var.put(u'val', var.get(u't').callprop(u'cloneDeep', var.get(u'val')))
                else:
                    if var.get(u'Array').callprop(u'isArray', var.get(u'val')):
                        var.put(u'val', var.get(u'val').callprop(u'map', var.get(u't').get(u'cloneDeep')))
            var.get(u'newNode').put(var.get(u'key'), var.get(u'val'))
        return var.get(u'newNode')
    PyJsHoisted_cloneDeep_.func_name = u'cloneDeep'
    var.put(u'cloneDeep', PyJsHoisted_cloneDeep_)
    @Js
    def PyJsHoisted_is_(type, node, opts, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'type':type, u'arguments':arguments, u'opts':opts}, var)
        var.registers([u'matches', u'node', u'type', u'opts'])
        if var.get(u'node').neg():
            return Js(False)
        var.put(u'matches', var.get(u'isType')(var.get(u'node').get(u'type'), var.get(u'type')))
        if var.get(u'matches').neg():
            return Js(False)
        if PyJsStrictEq(var.get(u'opts',throw=False).typeof(),Js(u'undefined')):
            return var.get(u'true')
        else:
            return var.get(u't').callprop(u'shallowEqual', var.get(u'node'), var.get(u'opts'))
    PyJsHoisted_is_.func_name = u'is'
    var.put(u'is', PyJsHoisted_is_)
    @Js
    def PyJsHoisted_inheritTrailingComments_(child, parent, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'parent':parent, u'child':child}, var)
        var.registers([u'parent', u'child'])
        var.get(u'_inheritComments')(Js(u'trailingComments'), var.get(u'child'), var.get(u'parent'))
    PyJsHoisted_inheritTrailingComments_.func_name = u'inheritTrailingComments'
    var.put(u'inheritTrailingComments', PyJsHoisted_inheritTrailingComments_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2809_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2809_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_isType_(nodeType, targetType, this, arguments, var=var):
        var = Scope({u'this':this, u'targetType':targetType, u'nodeType':nodeType, u'arguments':arguments}, var)
        var.registers([u'targetType', u'_isArray', u'_iterator', u'alias', u'_i', u'nodeType', u'_ref', u'aliases'])
        if PyJsStrictEq(var.get(u'nodeType'),var.get(u'targetType')):
            return var.get(u'true')
        if var.get(u't').get(u'ALIAS_KEYS').get(var.get(u'targetType')):
            return Js(False)
        var.put(u'aliases', var.get(u't').get(u'FLIPPED_ALIAS_KEYS').get(var.get(u'targetType')))
        if var.get(u'aliases'):
            if PyJsStrictEq(var.get(u'aliases').get(u'0'),var.get(u'nodeType')):
                return var.get(u'true')
            #for JS loop
            var.put(u'_iterator', var.get(u'aliases'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'alias', var.get(u'_ref'))
                if PyJsStrictEq(var.get(u'nodeType'),var.get(u'alias')):
                    return var.get(u'true')
            
        return Js(False)
    PyJsHoisted_isType_.func_name = u'isType'
    var.put(u'isType', PyJsHoisted_isType_)
    @Js
    def PyJsHoisted_shallowEqual_(actual, expected, this, arguments, var=var):
        var = Scope({u'expected':expected, u'this':this, u'actual':actual, u'arguments':arguments}, var)
        var.registers([u'_isArray3', u'keys', u'_ref3', u'_i3', u'key', u'expected', u'actual', u'_iterator3'])
        var.put(u'keys', PyJsComma(Js(0.0),var.get(u'_keys2').get(u'default'))(var.get(u'expected')))
        #for JS loop
        var.put(u'_iterator3', var.get(u'keys'))
        var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
        var.put(u'_i3', Js(0.0))
        var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator3'))))
        while 1:
            pass
            if var.get(u'_isArray3'):
                if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                    break
                var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                if var.get(u'_i3').get(u'done'):
                    break
                var.put(u'_ref3', var.get(u'_i3').get(u'value'))
            var.put(u'key', var.get(u'_ref3'))
            if PyJsStrictNeq(var.get(u'actual').get(var.get(u'key')),var.get(u'expected').get(var.get(u'key'))):
                return Js(False)
        
        return var.get(u'true')
    PyJsHoisted_shallowEqual_.func_name = u'shallowEqual'
    var.put(u'shallowEqual', PyJsHoisted_shallowEqual_)
    @Js
    def PyJsHoisted_inheritInnerComments_(child, parent, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'parent':parent, u'child':child}, var)
        var.registers([u'parent', u'child'])
        var.get(u'_inheritComments')(Js(u'innerComments'), var.get(u'child'), var.get(u'parent'))
    PyJsHoisted_inheritInnerComments_.func_name = u'inheritInnerComments'
    var.put(u'inheritInnerComments', PyJsHoisted_inheritInnerComments_)
    @Js
    def PyJsHoisted_ensureBlock_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'key'])
        var.put(u'key', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else Js(u'body')))
        return var.get(u'node').put(var.get(u'key'), var.get(u't').callprop(u'toBlock', var.get(u'node').get(var.get(u'key')), var.get(u'node')))
    PyJsHoisted_ensureBlock_.func_name = u'ensureBlock'
    var.put(u'ensureBlock', PyJsHoisted_ensureBlock_)
    @Js
    def PyJsHoisted_assertNode_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u'isNode')(var.get(u'node')).neg():
            PyJsTempException = JsToPyException(var.get(u'TypeError').create((Js(u'Not a valid node ')+(var.get(u'node') and var.get(u'node').get(u'type')))))
            raise PyJsTempException
    PyJsHoisted_assertNode_.func_name = u'assertNode'
    var.put(u'assertNode', PyJsHoisted_assertNode_)
    @Js
    def PyJsHoisted_inheritLeadingComments_(child, parent, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'parent':parent, u'child':child}, var)
        var.registers([u'parent', u'child'])
        var.get(u'_inheritComments')(Js(u'leadingComments'), var.get(u'child'), var.get(u'parent'))
    PyJsHoisted_inheritLeadingComments_.func_name = u'inheritLeadingComments'
    var.put(u'inheritLeadingComments', PyJsHoisted_inheritLeadingComments_)
    @Js
    def PyJsHoisted__inheritComments_(key, child, parent, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'parent':parent, u'key':key, u'child':child}, var)
        var.registers([u'parent', u'key', u'child'])
        if (var.get(u'child') and var.get(u'parent')):
            var.get(u'child').put(var.get(u'key'), PyJsComma(Js(0.0),var.get(u'_uniq2').get(u'default'))(PyJsComma(Js(0.0),var.get(u'_compact2').get(u'default'))(Js([]).callprop(u'concat', var.get(u'child').get(var.get(u'key')), var.get(u'parent').get(var.get(u'key'))))))
    PyJsHoisted__inheritComments_.func_name = u'_inheritComments'
    var.put(u'_inheritComments', PyJsHoisted__inheritComments_)
    @Js
    def PyJsHoisted_removeProperties_(node, opts, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'opts':opts}, var)
        var.registers([u'node', u'map', u'_ref9', u'_i9', u'_ref10', u'_isArray9', u'syms', u'_i10', u'_iterator9', u'_key4', u'key', u'_isArray10', u'sym', u'_iterator10', u'opts'])
        PyJs_Object_2825_ = Js({})
        var.put(u'opts', (var.get(u'opts') or PyJs_Object_2825_))
        var.put(u'map', (var.get(u'CLEAR_KEYS') if var.get(u'opts').get(u'preserveComments') else var.get(u'CLEAR_KEYS_PLUS_COMMENTS')))
        #for JS loop
        var.put(u'_iterator9', var.get(u'map'))
        var.put(u'_isArray9', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator9')))
        var.put(u'_i9', Js(0.0))
        var.put(u'_iterator9', (var.get(u'_iterator9') if var.get(u'_isArray9') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator9'))))
        while 1:
            pass
            if var.get(u'_isArray9'):
                if (var.get(u'_i9')>=var.get(u'_iterator9').get(u'length')):
                    break
                var.put(u'_ref9', var.get(u'_iterator9').get((var.put(u'_i9',Js(var.get(u'_i9').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i9', var.get(u'_iterator9').callprop(u'next'))
                if var.get(u'_i9').get(u'done'):
                    break
                var.put(u'_ref9', var.get(u'_i9').get(u'value'))
            var.put(u'_key4', var.get(u'_ref9'))
            if (var.get(u'node').get(var.get(u'_key4'))!=var.get(u"null")):
                var.get(u'node').put(var.get(u'_key4'), var.get(u'undefined'))
        
        for PyJsTemp in var.get(u'node'):
            var.put(u'key', PyJsTemp)
            if (PyJsStrictEq(var.get(u'key').get(u'0'),Js(u'_')) and (var.get(u'node').get(var.get(u'key'))!=var.get(u"null"))):
                var.get(u'node').put(var.get(u'key'), var.get(u'undefined'))
        var.put(u'syms', PyJsComma(Js(0.0),var.get(u'_getOwnPropertySymbols2').get(u'default'))(var.get(u'node')))
        #for JS loop
        var.put(u'_iterator10', var.get(u'syms'))
        var.put(u'_isArray10', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator10')))
        var.put(u'_i10', Js(0.0))
        var.put(u'_iterator10', (var.get(u'_iterator10') if var.get(u'_isArray10') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator10'))))
        while 1:
            pass
            if var.get(u'_isArray10'):
                if (var.get(u'_i10')>=var.get(u'_iterator10').get(u'length')):
                    break
                var.put(u'_ref10', var.get(u'_iterator10').get((var.put(u'_i10',Js(var.get(u'_i10').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i10', var.get(u'_iterator10').callprop(u'next'))
                if var.get(u'_i10').get(u'done'):
                    break
                var.put(u'_ref10', var.get(u'_i10').get(u'value'))
            var.put(u'sym', var.get(u'_ref10'))
            var.get(u'node').put(var.get(u'sym'), var.get(u"null"))
        
    PyJsHoisted_removeProperties_.func_name = u'removeProperties'
    var.put(u'removeProperties', PyJsHoisted_removeProperties_)
    @Js
    def PyJsHoisted_isNode_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        return (var.get(u'node') and var.get(u'_definitions').get(u'VISITOR_KEYS').get(var.get(u'node').get(u'type'))).neg().neg()
    PyJsHoisted_isNode_.func_name = u'isNode'
    var.put(u'isNode', PyJsHoisted_isNode_)
    @Js
    def PyJsHoisted_inheritsComments_(child, parent, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'parent':parent, u'child':child}, var)
        var.registers([u'parent', u'child'])
        var.get(u'inheritTrailingComments')(var.get(u'child'), var.get(u'parent'))
        var.get(u'inheritLeadingComments')(var.get(u'child'), var.get(u'parent'))
        var.get(u'inheritInnerComments')(var.get(u'child'), var.get(u'parent'))
        return var.get(u'child')
    PyJsHoisted_inheritsComments_.func_name = u'inheritsComments'
    var.put(u'inheritsComments', PyJsHoisted_inheritsComments_)
    @Js
    def PyJsHoisted_removeComments_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'_isArray4', u'_i4', u'key', u'_iterator4', u'_ref4'])
        #for JS loop
        var.put(u'_iterator4', var.get(u't').get(u'COMMENT_KEYS'))
        var.put(u'_isArray4', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator4')))
        var.put(u'_i4', Js(0.0))
        var.put(u'_iterator4', (var.get(u'_iterator4') if var.get(u'_isArray4') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator4'))))
        while 1:
            pass
            if var.get(u'_isArray4'):
                if (var.get(u'_i4')>=var.get(u'_iterator4').get(u'length')):
                    break
                var.put(u'_ref4', var.get(u'_iterator4').get((var.put(u'_i4',Js(var.get(u'_i4').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i4', var.get(u'_iterator4').callprop(u'next'))
                if var.get(u'_i4').get(u'done'):
                    break
                var.put(u'_ref4', var.get(u'_i4').get(u'value'))
            var.put(u'key', var.get(u'_ref4'))
            var.get(u'node').delete(var.get(u'key'))
        
        return var.get(u'node')
    PyJsHoisted_removeComments_.func_name = u'removeComments'
    var.put(u'removeComments', PyJsHoisted_removeComments_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2808_ = Js({})
            var.put(u'newObj', PyJs_Object_2808_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_removePropertiesDeep_(tree, opts, this, arguments, var=var):
        var = Scope({u'this':this, u'tree':tree, u'arguments':arguments, u'opts':opts}, var)
        var.registers([u'tree', u'opts'])
        var.get(u'traverseFast')(var.get(u'tree'), var.get(u'removeProperties'), var.get(u'opts'))
        return var.get(u'tree')
    PyJsHoisted_removePropertiesDeep_.func_name = u'removePropertiesDeep'
    var.put(u'removePropertiesDeep', PyJsHoisted_removePropertiesDeep_)
    @Js
    def PyJsHoisted_clone_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'newNode', u'key'])
        PyJs_Object_2821_ = Js({})
        var.put(u'newNode', PyJs_Object_2821_)
        for PyJsTemp in var.get(u'node'):
            var.put(u'key', PyJsTemp)
            if PyJsStrictEq(var.get(u'key').get(u'0'),Js(u'_')):
                continue
            var.get(u'newNode').put(var.get(u'key'), var.get(u'node').get(var.get(u'key')))
        return var.get(u'newNode')
    PyJsHoisted_clone_.func_name = u'clone'
    var.put(u'clone', PyJsHoisted_clone_)
    @Js
    def PyJsHoisted_appendToMemberExpression_(member, append, computed, this, arguments, var=var):
        var = Scope({u'member':member, u'this':this, u'computed':computed, u'append':append, u'arguments':arguments}, var)
        var.registers([u'member', u'computed', u'append'])
        var.get(u'member').put(u'object', var.get(u't').callprop(u'memberExpression', var.get(u'member').get(u'object'), var.get(u'member').get(u'property'), var.get(u'member').get(u'computed')))
        var.get(u'member').put(u'property', var.get(u'append'))
        var.get(u'member').put(u'computed', var.get(u'computed').neg().neg())
        return var.get(u'member')
    PyJsHoisted_appendToMemberExpression_.func_name = u'appendToMemberExpression'
    var.put(u'appendToMemberExpression', PyJsHoisted_appendToMemberExpression_)
    @Js
    def PyJsHoisted_validate_(node, key, val, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'val':val, u'key':key, u'arguments':arguments}, var)
        var.registers([u'node', u'fields', u'val', u'key', u'field'])
        if var.get(u'node').neg():
            return var.get('undefined')
        var.put(u'fields', var.get(u't').get(u'NODE_FIELDS').get(var.get(u'node').get(u'type')))
        if var.get(u'fields').neg():
            return var.get('undefined')
        var.put(u'field', var.get(u'fields').get(var.get(u'key')))
        if (var.get(u'field').neg() or var.get(u'field').get(u'validate').neg()):
            return var.get('undefined')
        if (var.get(u'field').get(u'optional') and (var.get(u'val')==var.get(u"null"))):
            return var.get('undefined')
        var.get(u'field').callprop(u'validate', var.get(u'node'), var.get(u'key'), var.get(u'val'))
    PyJsHoisted_validate_.func_name = u'validate'
    var.put(u'validate', PyJsHoisted_validate_)
    @Js
    def PyJsHoisted_traverseFast_(node, enter, opts, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'opts':opts, u'enter':enter}, var)
        var.registers([u'_isArray7', u'node', u'_ref7', u'_i8', u'keys', u'_ref8', u'_isArray8', u'_i7', u'_node', u'_iterator8', u'key', u'enter', u'_iterator7', u'subNode', u'opts'])
        if var.get(u'node').neg():
            return var.get('undefined')
        var.put(u'keys', var.get(u't').get(u'VISITOR_KEYS').get(var.get(u'node').get(u'type')))
        if var.get(u'keys').neg():
            return var.get('undefined')
        PyJs_Object_2824_ = Js({})
        var.put(u'opts', (var.get(u'opts') or PyJs_Object_2824_))
        var.get(u'enter')(var.get(u'node'), var.get(u'opts'))
        #for JS loop
        var.put(u'_iterator7', var.get(u'keys'))
        var.put(u'_isArray7', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator7')))
        var.put(u'_i7', Js(0.0))
        var.put(u'_iterator7', (var.get(u'_iterator7') if var.get(u'_isArray7') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator7'))))
        while 1:
            pass
            if var.get(u'_isArray7'):
                if (var.get(u'_i7')>=var.get(u'_iterator7').get(u'length')):
                    break
                var.put(u'_ref7', var.get(u'_iterator7').get((var.put(u'_i7',Js(var.get(u'_i7').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i7', var.get(u'_iterator7').callprop(u'next'))
                if var.get(u'_i7').get(u'done'):
                    break
                var.put(u'_ref7', var.get(u'_i7').get(u'value'))
            var.put(u'key', var.get(u'_ref7'))
            var.put(u'subNode', var.get(u'node').get(var.get(u'key')))
            if var.get(u'Array').callprop(u'isArray', var.get(u'subNode')):
                #for JS loop
                var.put(u'_iterator8', var.get(u'subNode'))
                var.put(u'_isArray8', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator8')))
                var.put(u'_i8', Js(0.0))
                var.put(u'_iterator8', (var.get(u'_iterator8') if var.get(u'_isArray8') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator8'))))
                while 1:
                    pass
                    if var.get(u'_isArray8'):
                        if (var.get(u'_i8')>=var.get(u'_iterator8').get(u'length')):
                            break
                        var.put(u'_ref8', var.get(u'_iterator8').get((var.put(u'_i8',Js(var.get(u'_i8').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i8', var.get(u'_iterator8').callprop(u'next'))
                        if var.get(u'_i8').get(u'done'):
                            break
                        var.put(u'_ref8', var.get(u'_i8').get(u'value'))
                    var.put(u'_node', var.get(u'_ref8'))
                    var.get(u'traverseFast')(var.get(u'_node'), var.get(u'enter'), var.get(u'opts'))
                
            else:
                var.get(u'traverseFast')(var.get(u'subNode'), var.get(u'enter'), var.get(u'opts'))
        
    PyJsHoisted_traverseFast_.func_name = u'traverseFast'
    var.put(u'traverseFast', PyJsHoisted_traverseFast_)
    @Js
    def PyJsHoisted_prependToMemberExpression_(member, prepend, this, arguments, var=var):
        var = Scope({u'member':member, u'this':this, u'arguments':arguments, u'prepend':prepend}, var)
        var.registers([u'member', u'prepend'])
        var.get(u'member').put(u'object', var.get(u't').callprop(u'memberExpression', var.get(u'prepend'), var.get(u'member').get(u'object')))
        return var.get(u'member')
    PyJsHoisted_prependToMemberExpression_.func_name = u'prependToMemberExpression'
    var.put(u'prependToMemberExpression', PyJsHoisted_prependToMemberExpression_)
    @Js
    def PyJsHoisted_registerType_(type, this, arguments, var=var):
        var = Scope({u'this':this, u'type':type, u'arguments':arguments}, var)
        var.registers([u'is', u'type'])
        var.put(u'is', var.get(u't').get((Js(u'is')+var.get(u'type'))))
        if var.get(u'is').neg():
            @Js
            def PyJs_anonymous_2810_(node, opts, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'opts':opts}, var)
                var.registers([u'node', u'opts'])
                return var.get(u't').callprop(u'is', var.get(u'type'), var.get(u'node'), var.get(u'opts'))
            PyJs_anonymous_2810_._set_name(u'anonymous')
            var.put(u'is', var.get(u't').put((Js(u'is')+var.get(u'type')), PyJs_anonymous_2810_))
        @Js
        def PyJs_anonymous_2811_(node, opts, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'opts':opts}, var)
            var.registers([u'node', u'opts'])
            PyJs_Object_2812_ = Js({})
            var.put(u'opts', (var.get(u'opts') or PyJs_Object_2812_))
            if var.get(u'is')(var.get(u'node'), var.get(u'opts')).neg():
                PyJsTempException = JsToPyException(var.get(u'Error').create((((Js(u'Expected type ')+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'type')))+Js(u' with option '))+PyJsComma(Js(0.0),var.get(u'_stringify2').get(u'default'))(var.get(u'opts')))))
                raise PyJsTempException
        PyJs_anonymous_2811_._set_name(u'anonymous')
        var.get(u't').put((Js(u'assert')+var.get(u'type')), PyJs_anonymous_2811_)
    PyJsHoisted_registerType_.func_name = u'registerType'
    var.put(u'registerType', PyJsHoisted_registerType_)
    @Js
    def PyJsHoisted_cloneWithoutLoc_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'newNode'])
        var.put(u'newNode', var.get(u'clone')(var.get(u'node')))
        var.get(u'newNode').delete(u'loc')
        return var.get(u'newNode')
    PyJsHoisted_cloneWithoutLoc_.func_name = u'cloneWithoutLoc'
    var.put(u'cloneWithoutLoc', PyJsHoisted_cloneWithoutLoc_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    def PyJs_LONG_2723_(var=var):
        def PyJs_LONG_2722_(var=var):
            def PyJs_LONG_2721_(var=var):
                def PyJs_LONG_2720_(var=var):
                    def PyJs_LONG_2719_(var=var):
                        return var.get(u'exports').put(u'EQUALITY_BINARY_OPERATORS', var.get(u'exports').put(u'BOOLEAN_NUMBER_BINARY_OPERATORS', var.get(u'exports').put(u'UPDATE_OPERATORS', var.get(u'exports').put(u'LOGICAL_OPERATORS', var.get(u'exports').put(u'COMMENT_KEYS', var.get(u'exports').put(u'FOR_INIT_KEYS', var.get(u'exports').put(u'FLATTENABLE_KEYS', var.get(u'exports').put(u'STATEMENT_OR_BLOCK_KEYS', var.get(u'undefined')))))))))
                    return var.get(u'exports').put(u'UNARY_OPERATORS', var.get(u'exports').put(u'STRING_UNARY_OPERATORS', var.get(u'exports').put(u'NUMBER_UNARY_OPERATORS', var.get(u'exports').put(u'BOOLEAN_UNARY_OPERATORS', var.get(u'exports').put(u'BINARY_OPERATORS', var.get(u'exports').put(u'NUMBER_BINARY_OPERATORS', var.get(u'exports').put(u'BOOLEAN_BINARY_OPERATORS', var.get(u'exports').put(u'COMPARISON_BINARY_OPERATORS', PyJs_LONG_2719_()))))))))
                return var.get(u'exports').put(u'TYPES', var.get(u'exports').put(u'react', var.get(u'exports').put(u'DEPRECATED_KEYS', var.get(u'exports').put(u'BUILDER_KEYS', var.get(u'exports').put(u'NODE_FIELDS', var.get(u'exports').put(u'ALIAS_KEYS', var.get(u'exports').put(u'VISITOR_KEYS', var.get(u'exports').put(u'NOT_LOCAL_BINDING', var.get(u'exports').put(u'BLOCK_SCOPED_SYMBOL', var.get(u'exports').put(u'INHERIT_KEYS', PyJs_LONG_2720_()))))))))))
            return var.get(u'exports').put(u'isSpecifierDefault', var.get(u'exports').put(u'isVar', var.get(u'exports').put(u'isBlockScoped', var.get(u'exports').put(u'isLet', var.get(u'exports').put(u'isValidIdentifier', var.get(u'exports').put(u'isReferenced', var.get(u'exports').put(u'isBinding', var.get(u'exports').put(u'getOuterBindingIdentifiers', var.get(u'exports').put(u'getBindingIdentifiers', PyJs_LONG_2721_())))))))))
        return var.get(u'exports').put(u'toExpression', var.get(u'exports').put(u'toStatement', var.get(u'exports').put(u'toBindingIdentifierName', var.get(u'exports').put(u'toIdentifier', var.get(u'exports').put(u'toKeyAlias', var.get(u'exports').put(u'toSequenceExpression', var.get(u'exports').put(u'toComputedKey', var.get(u'exports').put(u'isImmutable', var.get(u'exports').put(u'isScope', PyJs_LONG_2722_())))))))))
    var.get(u'exports').put(u'createTypeAnnotationBasedOnTypeof', var.get(u'exports').put(u'removeTypeDuplicates', var.get(u'exports').put(u'createUnionTypeAnnotation', var.get(u'exports').put(u'valueToNode', var.get(u'exports').put(u'toBlock', PyJs_LONG_2723_())))))
    var.put(u'_getOwnPropertySymbols', var.get(u'require')(Js(u'babel-runtime/core-js/object/get-own-property-symbols')))
    var.put(u'_getOwnPropertySymbols2', var.get(u'_interopRequireDefault')(var.get(u'_getOwnPropertySymbols')))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.put(u'_keys', var.get(u'require')(Js(u'babel-runtime/core-js/object/keys')))
    var.put(u'_keys2', var.get(u'_interopRequireDefault')(var.get(u'_keys')))
    var.put(u'_stringify', var.get(u'require')(Js(u'babel-runtime/core-js/json/stringify')))
    var.put(u'_stringify2', var.get(u'_interopRequireDefault')(var.get(u'_stringify')))
    var.put(u'_constants', var.get(u'require')(Js(u'./constants')))
    @Js
    def PyJs_get_2725_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2725_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'STATEMENT_OR_BLOCK_KEYS')
    PyJs_get_2725_._set_name(u'get')
    PyJs_Object_2724_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2725_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'STATEMENT_OR_BLOCK_KEYS'), PyJs_Object_2724_)
    @Js
    def PyJs_get_2727_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2727_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'FLATTENABLE_KEYS')
    PyJs_get_2727_._set_name(u'get')
    PyJs_Object_2726_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2727_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'FLATTENABLE_KEYS'), PyJs_Object_2726_)
    @Js
    def PyJs_get_2729_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2729_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'FOR_INIT_KEYS')
    PyJs_get_2729_._set_name(u'get')
    PyJs_Object_2728_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2729_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'FOR_INIT_KEYS'), PyJs_Object_2728_)
    @Js
    def PyJs_get_2731_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2731_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'COMMENT_KEYS')
    PyJs_get_2731_._set_name(u'get')
    PyJs_Object_2730_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2731_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'COMMENT_KEYS'), PyJs_Object_2730_)
    @Js
    def PyJs_get_2733_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2733_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'LOGICAL_OPERATORS')
    PyJs_get_2733_._set_name(u'get')
    PyJs_Object_2732_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2733_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'LOGICAL_OPERATORS'), PyJs_Object_2732_)
    @Js
    def PyJs_get_2735_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2735_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'UPDATE_OPERATORS')
    PyJs_get_2735_._set_name(u'get')
    PyJs_Object_2734_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2735_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'UPDATE_OPERATORS'), PyJs_Object_2734_)
    @Js
    def PyJs_get_2737_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2737_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'BOOLEAN_NUMBER_BINARY_OPERATORS')
    PyJs_get_2737_._set_name(u'get')
    PyJs_Object_2736_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2737_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'BOOLEAN_NUMBER_BINARY_OPERATORS'), PyJs_Object_2736_)
    @Js
    def PyJs_get_2739_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2739_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'EQUALITY_BINARY_OPERATORS')
    PyJs_get_2739_._set_name(u'get')
    PyJs_Object_2738_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2739_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'EQUALITY_BINARY_OPERATORS'), PyJs_Object_2738_)
    @Js
    def PyJs_get_2741_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2741_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'COMPARISON_BINARY_OPERATORS')
    PyJs_get_2741_._set_name(u'get')
    PyJs_Object_2740_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2741_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'COMPARISON_BINARY_OPERATORS'), PyJs_Object_2740_)
    @Js
    def PyJs_get_2743_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2743_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'BOOLEAN_BINARY_OPERATORS')
    PyJs_get_2743_._set_name(u'get')
    PyJs_Object_2742_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2743_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'BOOLEAN_BINARY_OPERATORS'), PyJs_Object_2742_)
    @Js
    def PyJs_get_2745_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2745_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'NUMBER_BINARY_OPERATORS')
    PyJs_get_2745_._set_name(u'get')
    PyJs_Object_2744_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2745_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'NUMBER_BINARY_OPERATORS'), PyJs_Object_2744_)
    @Js
    def PyJs_get_2747_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2747_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'BINARY_OPERATORS')
    PyJs_get_2747_._set_name(u'get')
    PyJs_Object_2746_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2747_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'BINARY_OPERATORS'), PyJs_Object_2746_)
    @Js
    def PyJs_get_2749_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2749_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'BOOLEAN_UNARY_OPERATORS')
    PyJs_get_2749_._set_name(u'get')
    PyJs_Object_2748_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2749_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'BOOLEAN_UNARY_OPERATORS'), PyJs_Object_2748_)
    @Js
    def PyJs_get_2751_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2751_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'NUMBER_UNARY_OPERATORS')
    PyJs_get_2751_._set_name(u'get')
    PyJs_Object_2750_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2751_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'NUMBER_UNARY_OPERATORS'), PyJs_Object_2750_)
    @Js
    def PyJs_get_2753_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2753_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'STRING_UNARY_OPERATORS')
    PyJs_get_2753_._set_name(u'get')
    PyJs_Object_2752_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2753_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'STRING_UNARY_OPERATORS'), PyJs_Object_2752_)
    @Js
    def PyJs_get_2755_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2755_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'UNARY_OPERATORS')
    PyJs_get_2755_._set_name(u'get')
    PyJs_Object_2754_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2755_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'UNARY_OPERATORS'), PyJs_Object_2754_)
    @Js
    def PyJs_get_2757_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2757_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'INHERIT_KEYS')
    PyJs_get_2757_._set_name(u'get')
    PyJs_Object_2756_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2757_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'INHERIT_KEYS'), PyJs_Object_2756_)
    @Js
    def PyJs_get_2759_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2759_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'BLOCK_SCOPED_SYMBOL')
    PyJs_get_2759_._set_name(u'get')
    PyJs_Object_2758_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2759_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'BLOCK_SCOPED_SYMBOL'), PyJs_Object_2758_)
    @Js
    def PyJs_get_2761_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2761_}, var)
        var.registers([])
        return var.get(u'_constants').get(u'NOT_LOCAL_BINDING')
    PyJs_get_2761_._set_name(u'get')
    PyJs_Object_2760_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2761_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'NOT_LOCAL_BINDING'), PyJs_Object_2760_)
    var.get(u'exports').put(u'is', var.get(u'is'))
    var.get(u'exports').put(u'isType', var.get(u'isType'))
    var.get(u'exports').put(u'validate', var.get(u'validate'))
    var.get(u'exports').put(u'shallowEqual', var.get(u'shallowEqual'))
    var.get(u'exports').put(u'appendToMemberExpression', var.get(u'appendToMemberExpression'))
    var.get(u'exports').put(u'prependToMemberExpression', var.get(u'prependToMemberExpression'))
    var.get(u'exports').put(u'ensureBlock', var.get(u'ensureBlock'))
    var.get(u'exports').put(u'clone', var.get(u'clone'))
    var.get(u'exports').put(u'cloneWithoutLoc', var.get(u'cloneWithoutLoc'))
    var.get(u'exports').put(u'cloneDeep', var.get(u'cloneDeep'))
    var.get(u'exports').put(u'buildMatchMemberExpression', var.get(u'buildMatchMemberExpression'))
    var.get(u'exports').put(u'removeComments', var.get(u'removeComments'))
    var.get(u'exports').put(u'inheritsComments', var.get(u'inheritsComments'))
    var.get(u'exports').put(u'inheritTrailingComments', var.get(u'inheritTrailingComments'))
    var.get(u'exports').put(u'inheritLeadingComments', var.get(u'inheritLeadingComments'))
    var.get(u'exports').put(u'inheritInnerComments', var.get(u'inheritInnerComments'))
    var.get(u'exports').put(u'inherits', var.get(u'inherits'))
    var.get(u'exports').put(u'assertNode', var.get(u'assertNode'))
    var.get(u'exports').put(u'isNode', var.get(u'isNode'))
    var.get(u'exports').put(u'traverseFast', var.get(u'traverseFast'))
    var.get(u'exports').put(u'removeProperties', var.get(u'removeProperties'))
    var.get(u'exports').put(u'removePropertiesDeep', var.get(u'removePropertiesDeep'))
    var.put(u'_retrievers', var.get(u'require')(Js(u'./retrievers')))
    @Js
    def PyJs_get_2763_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2763_}, var)
        var.registers([])
        return var.get(u'_retrievers').get(u'getBindingIdentifiers')
    PyJs_get_2763_._set_name(u'get')
    PyJs_Object_2762_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2763_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'getBindingIdentifiers'), PyJs_Object_2762_)
    @Js
    def PyJs_get_2765_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2765_}, var)
        var.registers([])
        return var.get(u'_retrievers').get(u'getOuterBindingIdentifiers')
    PyJs_get_2765_._set_name(u'get')
    PyJs_Object_2764_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2765_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'getOuterBindingIdentifiers'), PyJs_Object_2764_)
    var.put(u'_validators', var.get(u'require')(Js(u'./validators')))
    @Js
    def PyJs_get_2767_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2767_}, var)
        var.registers([])
        return var.get(u'_validators').get(u'isBinding')
    PyJs_get_2767_._set_name(u'get')
    PyJs_Object_2766_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2767_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'isBinding'), PyJs_Object_2766_)
    @Js
    def PyJs_get_2769_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2769_}, var)
        var.registers([])
        return var.get(u'_validators').get(u'isReferenced')
    PyJs_get_2769_._set_name(u'get')
    PyJs_Object_2768_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2769_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'isReferenced'), PyJs_Object_2768_)
    @Js
    def PyJs_get_2771_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2771_}, var)
        var.registers([])
        return var.get(u'_validators').get(u'isValidIdentifier')
    PyJs_get_2771_._set_name(u'get')
    PyJs_Object_2770_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2771_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'isValidIdentifier'), PyJs_Object_2770_)
    @Js
    def PyJs_get_2773_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2773_}, var)
        var.registers([])
        return var.get(u'_validators').get(u'isLet')
    PyJs_get_2773_._set_name(u'get')
    PyJs_Object_2772_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2773_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'isLet'), PyJs_Object_2772_)
    @Js
    def PyJs_get_2775_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2775_}, var)
        var.registers([])
        return var.get(u'_validators').get(u'isBlockScoped')
    PyJs_get_2775_._set_name(u'get')
    PyJs_Object_2774_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2775_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'isBlockScoped'), PyJs_Object_2774_)
    @Js
    def PyJs_get_2777_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2777_}, var)
        var.registers([])
        return var.get(u'_validators').get(u'isVar')
    PyJs_get_2777_._set_name(u'get')
    PyJs_Object_2776_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2777_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'isVar'), PyJs_Object_2776_)
    @Js
    def PyJs_get_2779_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2779_}, var)
        var.registers([])
        return var.get(u'_validators').get(u'isSpecifierDefault')
    PyJs_get_2779_._set_name(u'get')
    PyJs_Object_2778_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2779_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'isSpecifierDefault'), PyJs_Object_2778_)
    @Js
    def PyJs_get_2781_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2781_}, var)
        var.registers([])
        return var.get(u'_validators').get(u'isScope')
    PyJs_get_2781_._set_name(u'get')
    PyJs_Object_2780_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2781_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'isScope'), PyJs_Object_2780_)
    @Js
    def PyJs_get_2783_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2783_}, var)
        var.registers([])
        return var.get(u'_validators').get(u'isImmutable')
    PyJs_get_2783_._set_name(u'get')
    PyJs_Object_2782_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2783_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'isImmutable'), PyJs_Object_2782_)
    var.put(u'_converters', var.get(u'require')(Js(u'./converters')))
    @Js
    def PyJs_get_2785_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2785_}, var)
        var.registers([])
        return var.get(u'_converters').get(u'toComputedKey')
    PyJs_get_2785_._set_name(u'get')
    PyJs_Object_2784_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2785_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'toComputedKey'), PyJs_Object_2784_)
    @Js
    def PyJs_get_2787_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2787_}, var)
        var.registers([])
        return var.get(u'_converters').get(u'toSequenceExpression')
    PyJs_get_2787_._set_name(u'get')
    PyJs_Object_2786_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2787_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'toSequenceExpression'), PyJs_Object_2786_)
    @Js
    def PyJs_get_2789_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2789_}, var)
        var.registers([])
        return var.get(u'_converters').get(u'toKeyAlias')
    PyJs_get_2789_._set_name(u'get')
    PyJs_Object_2788_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2789_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'toKeyAlias'), PyJs_Object_2788_)
    @Js
    def PyJs_get_2791_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2791_}, var)
        var.registers([])
        return var.get(u'_converters').get(u'toIdentifier')
    PyJs_get_2791_._set_name(u'get')
    PyJs_Object_2790_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2791_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'toIdentifier'), PyJs_Object_2790_)
    @Js
    def PyJs_get_2793_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2793_}, var)
        var.registers([])
        return var.get(u'_converters').get(u'toBindingIdentifierName')
    PyJs_get_2793_._set_name(u'get')
    PyJs_Object_2792_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2793_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'toBindingIdentifierName'), PyJs_Object_2792_)
    @Js
    def PyJs_get_2795_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2795_}, var)
        var.registers([])
        return var.get(u'_converters').get(u'toStatement')
    PyJs_get_2795_._set_name(u'get')
    PyJs_Object_2794_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2795_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'toStatement'), PyJs_Object_2794_)
    @Js
    def PyJs_get_2797_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2797_}, var)
        var.registers([])
        return var.get(u'_converters').get(u'toExpression')
    PyJs_get_2797_._set_name(u'get')
    PyJs_Object_2796_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2797_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'toExpression'), PyJs_Object_2796_)
    @Js
    def PyJs_get_2799_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2799_}, var)
        var.registers([])
        return var.get(u'_converters').get(u'toBlock')
    PyJs_get_2799_._set_name(u'get')
    PyJs_Object_2798_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2799_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'toBlock'), PyJs_Object_2798_)
    @Js
    def PyJs_get_2801_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2801_}, var)
        var.registers([])
        return var.get(u'_converters').get(u'valueToNode')
    PyJs_get_2801_._set_name(u'get')
    PyJs_Object_2800_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2801_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'valueToNode'), PyJs_Object_2800_)
    var.put(u'_flow', var.get(u'require')(Js(u'./flow')))
    @Js
    def PyJs_get_2803_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2803_}, var)
        var.registers([])
        return var.get(u'_flow').get(u'createUnionTypeAnnotation')
    PyJs_get_2803_._set_name(u'get')
    PyJs_Object_2802_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2803_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'createUnionTypeAnnotation'), PyJs_Object_2802_)
    @Js
    def PyJs_get_2805_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2805_}, var)
        var.registers([])
        return var.get(u'_flow').get(u'removeTypeDuplicates')
    PyJs_get_2805_._set_name(u'get')
    PyJs_Object_2804_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2805_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'removeTypeDuplicates'), PyJs_Object_2804_)
    @Js
    def PyJs_get_2807_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'get':PyJs_get_2807_}, var)
        var.registers([])
        return var.get(u'_flow').get(u'createTypeAnnotationBasedOnTypeof')
    PyJs_get_2807_._set_name(u'get')
    PyJs_Object_2806_ = Js({u'enumerable':var.get(u'true'),u'get':PyJs_get_2807_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'createTypeAnnotationBasedOnTypeof'), PyJs_Object_2806_)
    var.put(u'_toFastProperties', var.get(u'require')(Js(u'to-fast-properties')))
    var.put(u'_toFastProperties2', var.get(u'_interopRequireDefault')(var.get(u'_toFastProperties')))
    var.put(u'_compact', var.get(u'require')(Js(u'lodash/compact')))
    var.put(u'_compact2', var.get(u'_interopRequireDefault')(var.get(u'_compact')))
    var.put(u'_clone', var.get(u'require')(Js(u'lodash/clone')))
    var.put(u'_clone2', var.get(u'_interopRequireDefault')(var.get(u'_clone')))
    var.put(u'_each', var.get(u'require')(Js(u'lodash/each')))
    var.put(u'_each2', var.get(u'_interopRequireDefault')(var.get(u'_each')))
    var.put(u'_uniq', var.get(u'require')(Js(u'lodash/uniq')))
    var.put(u'_uniq2', var.get(u'_interopRequireDefault')(var.get(u'_uniq')))
    var.get(u'require')(Js(u'./definitions/init'))
    var.put(u'_definitions', var.get(u'require')(Js(u'./definitions')))
    var.put(u'_react2', var.get(u'require')(Js(u'./react')))
    var.put(u'_react', var.get(u'_interopRequireWildcard')(var.get(u'_react2')))
    pass
    pass
    var.put(u't', var.get(u'exports'))
    pass
    var.get(u'exports').put(u'VISITOR_KEYS', var.get(u'_definitions').get(u'VISITOR_KEYS'))
    var.get(u'exports').put(u'ALIAS_KEYS', var.get(u'_definitions').get(u'ALIAS_KEYS'))
    var.get(u'exports').put(u'NODE_FIELDS', var.get(u'_definitions').get(u'NODE_FIELDS'))
    var.get(u'exports').put(u'BUILDER_KEYS', var.get(u'_definitions').get(u'BUILDER_KEYS'))
    var.get(u'exports').put(u'DEPRECATED_KEYS', var.get(u'_definitions').get(u'DEPRECATED_KEYS'))
    var.get(u'exports').put(u'react', var.get(u'_react'))
    for PyJsTemp in var.get(u't').get(u'VISITOR_KEYS'):
        var.put(u'type', PyJsTemp)
        var.get(u'registerType')(var.get(u'type'))
    PyJs_Object_2813_ = Js({})
    var.get(u't').put(u'FLIPPED_ALIAS_KEYS', PyJs_Object_2813_)
    @Js
    def PyJs_anonymous_2814_(aliases, type, this, arguments, var=var):
        var = Scope({u'this':this, u'type':type, u'arguments':arguments, u'aliases':aliases}, var)
        var.registers([u'type', u'aliases'])
        @Js
        def PyJs_anonymous_2815_(alias, this, arguments, var=var):
            var = Scope({u'this':this, u'alias':alias, u'arguments':arguments}, var)
            var.registers([u'alias', u'types'])
            var.put(u'types', var.get(u't').get(u'FLIPPED_ALIAS_KEYS').put(var.get(u'alias'), (var.get(u't').get(u'FLIPPED_ALIAS_KEYS').get(var.get(u'alias')) or Js([]))))
            var.get(u'types').callprop(u'push', var.get(u'type'))
        PyJs_anonymous_2815_._set_name(u'anonymous')
        PyJsComma(Js(0.0),var.get(u'_each2').get(u'default'))(var.get(u'aliases'), PyJs_anonymous_2815_)
    PyJs_anonymous_2814_._set_name(u'anonymous')
    PyJsComma(Js(0.0),var.get(u'_each2').get(u'default'))(var.get(u't').get(u'ALIAS_KEYS'), PyJs_anonymous_2814_)
    @Js
    def PyJs_anonymous_2816_(types, type, this, arguments, var=var):
        var = Scope({u'this':this, u'type':type, u'arguments':arguments, u'types':types}, var)
        var.registers([u'type', u'types'])
        var.get(u't').put((var.get(u'type').callprop(u'toUpperCase')+Js(u'_TYPES')), var.get(u'types'))
        var.get(u'registerType')(var.get(u'type'))
    PyJs_anonymous_2816_._set_name(u'anonymous')
    PyJsComma(Js(0.0),var.get(u'_each2').get(u'default'))(var.get(u't').get(u'FLIPPED_ALIAS_KEYS'), PyJs_anonymous_2816_)
    var.put(u'TYPES', var.get(u'exports').put(u'TYPES', PyJsComma(Js(0.0),var.get(u'_keys2').get(u'default'))(var.get(u't').get(u'VISITOR_KEYS')).callprop(u'concat', PyJsComma(Js(0.0),var.get(u'_keys2').get(u'default'))(var.get(u't').get(u'FLIPPED_ALIAS_KEYS'))).callprop(u'concat', PyJsComma(Js(0.0),var.get(u'_keys2').get(u'default'))(var.get(u't').get(u'DEPRECATED_KEYS')))))
    pass
    pass
    @Js
    def PyJs_anonymous_2817_(keys, type, this, arguments, var=var):
        var = Scope({u'keys':keys, u'this':this, u'type':type, u'arguments':arguments}, var)
        var.registers([u'keys', u'builder', u'type'])
        @Js
        def PyJsHoisted_builder_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'node', u'_isArray2', u'field', u'i', u'_ref2', u'_i2', u'_key', u'key', u'arg', u'_iterator2'])
            if (var.get(u'arguments').get(u'length')>var.get(u'keys').get(u'length')):
                PyJsTempException = JsToPyException(var.get(u'Error').create((((((Js(u't.')+var.get(u'type'))+Js(u': Too many arguments passed. Received '))+var.get(u'arguments').get(u'length'))+Js(u' but can receive '))+(Js(u'no more than ')+var.get(u'keys').get(u'length')))))
                raise PyJsTempException
            PyJs_Object_2818_ = Js({})
            var.put(u'node', PyJs_Object_2818_)
            var.get(u'node').put(u'type', var.get(u'type'))
            var.put(u'i', Js(0.0))
            #for JS loop
            var.put(u'_iterator2', var.get(u'keys'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator2'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                var.put(u'_key', var.get(u'_ref2'))
                var.put(u'field', var.get(u't').get(u'NODE_FIELDS').get(var.get(u'type')).get(var.get(u'_key')))
                var.put(u'arg', var.get(u'arguments').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))
                if PyJsStrictEq(var.get(u'arg'),var.get(u'undefined')):
                    var.put(u'arg', PyJsComma(Js(0.0),var.get(u'_clone2').get(u'default'))(var.get(u'field').get(u'default')))
                var.get(u'node').put(var.get(u'_key'), var.get(u'arg'))
            
            for PyJsTemp in var.get(u'node'):
                var.put(u'key', PyJsTemp)
                var.get(u'validate')(var.get(u'node'), var.get(u'key'), var.get(u'node').get(var.get(u'key')))
            return var.get(u'node')
        PyJsHoisted_builder_.func_name = u'builder'
        var.put(u'builder', PyJsHoisted_builder_)
        pass
        var.get(u't').put(var.get(u'type'), var.get(u'builder'))
        var.get(u't').put((var.get(u'type').get(u'0').callprop(u'toLowerCase')+var.get(u'type').callprop(u'slice', Js(1.0))), var.get(u'builder'))
    PyJs_anonymous_2817_._set_name(u'anonymous')
    PyJsComma(Js(0.0),var.get(u'_each2').get(u'default'))(var.get(u't').get(u'BUILDER_KEYS'), PyJs_anonymous_2817_)
    @Js
    def PyJs__loop_2819_(_type, this, arguments, var=var):
        var = Scope({u'this':this, u'_type':_type, u'_loop':PyJs__loop_2819_, u'arguments':arguments}, var)
        var.registers([u'_type', u'newType', u'proxy'])
        @Js
        def PyJsHoisted_proxy_(fn, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'fn':fn}, var)
            var.registers([u'fn'])
            @Js
            def PyJs_anonymous_2820_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                var.get(u'console').callprop(u'trace', (((Js(u'The node type ')+var.get(u'_type'))+Js(u' has been renamed to '))+var.get(u'newType')))
                return var.get(u'fn').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))
            PyJs_anonymous_2820_._set_name(u'anonymous')
            return PyJs_anonymous_2820_
        PyJsHoisted_proxy_.func_name = u'proxy'
        var.put(u'proxy', PyJsHoisted_proxy_)
        var.put(u'newType', var.get(u't').get(u'DEPRECATED_KEYS').get(var.get(u'_type')))
        pass
        var.get(u't').put(var.get(u'_type'), var.get(u't').put((var.get(u'_type').get(u'0').callprop(u'toLowerCase')+var.get(u'_type').callprop(u'slice', Js(1.0))), var.get(u'proxy')(var.get(u't').get(var.get(u'newType')))))
        var.get(u't').put((Js(u'is')+var.get(u'_type')), var.get(u'proxy')(var.get(u't').get((Js(u'is')+var.get(u'newType')))))
        var.get(u't').put((Js(u'assert')+var.get(u'_type')), var.get(u'proxy')(var.get(u't').get((Js(u'assert')+var.get(u'newType')))))
    PyJs__loop_2819_._set_name(u'_loop')
    var.put(u'_loop', PyJs__loop_2819_)
    for PyJsTemp in var.get(u't').get(u'DEPRECATED_KEYS'):
        var.put(u'_type', PyJsTemp)
        var.get(u'_loop')(var.get(u'_type'))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    PyJsComma(Js(0.0),var.get(u'_toFastProperties2').get(u'default'))(var.get(u't'))
    PyJsComma(Js(0.0),var.get(u'_toFastProperties2').get(u'default'))(var.get(u't').get(u'VISITOR_KEYS'))
    pass
    var.put(u'CLEAR_KEYS', Js([Js(u'tokens'), Js(u'start'), Js(u'end'), Js(u'loc'), Js(u'raw'), Js(u'rawValue')]))
    var.put(u'CLEAR_KEYS_PLUS_COMMENTS', var.get(u't').get(u'COMMENT_KEYS').callprop(u'concat', Js([Js(u'comments')])).callprop(u'concat', var.get(u'CLEAR_KEYS')))
    pass
    pass
PyJs_anonymous_2718_._set_name(u'anonymous')
PyJs_Object_2826_ = Js({u'./constants':Js(247.0),u'./converters':Js(248.0),u'./definitions':Js(253.0),u'./definitions/init':Js(254.0),u'./flow':Js(257.0),u'./react':Js(259.0),u'./retrievers':Js(260.0),u'./validators':Js(261.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'babel-runtime/core-js/json/stringify':Js(97.0),u'babel-runtime/core-js/object/get-own-property-symbols':Js(102.0),u'babel-runtime/core-js/object/keys':Js(103.0),u'lodash/clone':Js(438.0),u'lodash/compact':Js(441.0),u'lodash/each':Js(443.0),u'lodash/uniq':Js(495.0),u'to-fast-properties':Js(522.0)})
@Js
def PyJs_anonymous_2827_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'_interopRequireWildcard', u'_index', u'cleanJSXElementLiteralChild', u'require', u'module', u'buildChildren', u't', u'isReactComponent', u'isCompatTag'])
    @Js
    def PyJsHoisted_cleanJSXElementLiteralChild_(child, args, this, arguments, var=var):
        var = Scope({u'this':this, u'args':args, u'arguments':arguments, u'child':child}, var)
        var.registers([u'isLastNonEmptyLine', u'str', u'i', u'isLastLine', u'args', u'lines', u'lastNonEmptyLine', u'isFirstLine', u'_i', u'child', u'line', u'trimmedLine'])
        var.put(u'lines', var.get(u'child').get(u'value').callprop(u'split', JsRegExp(u'/\\r\\n|\\n|\\r/')))
        var.put(u'lastNonEmptyLine', Js(0.0))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'lines').get(u'length')):
            try:
                if var.get(u'lines').get(var.get(u'i')).callprop(u'match', JsRegExp(u'/[^ \\t]/')):
                    var.put(u'lastNonEmptyLine', var.get(u'i'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        var.put(u'str', Js(u''))
        #for JS loop
        var.put(u'_i', Js(0.0))
        while (var.get(u'_i')<var.get(u'lines').get(u'length')):
            try:
                var.put(u'line', var.get(u'lines').get(var.get(u'_i')))
                var.put(u'isFirstLine', PyJsStrictEq(var.get(u'_i'),Js(0.0)))
                var.put(u'isLastLine', PyJsStrictEq(var.get(u'_i'),(var.get(u'lines').get(u'length')-Js(1.0))))
                var.put(u'isLastNonEmptyLine', PyJsStrictEq(var.get(u'_i'),var.get(u'lastNonEmptyLine')))
                var.put(u'trimmedLine', var.get(u'line').callprop(u'replace', JsRegExp(u'/\\t/g'), Js(u' ')))
                if var.get(u'isFirstLine').neg():
                    var.put(u'trimmedLine', var.get(u'trimmedLine').callprop(u'replace', JsRegExp(u'/^[ ]+/'), Js(u'')))
                if var.get(u'isLastLine').neg():
                    var.put(u'trimmedLine', var.get(u'trimmedLine').callprop(u'replace', JsRegExp(u'/[ ]+$/'), Js(u'')))
                if var.get(u'trimmedLine'):
                    if var.get(u'isLastNonEmptyLine').neg():
                        var.put(u'trimmedLine', Js(u' '), u'+')
                    var.put(u'str', var.get(u'trimmedLine'), u'+')
            finally:
                    (var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))
        if var.get(u'str'):
            var.get(u'args').callprop(u'push', var.get(u't').callprop(u'stringLiteral', var.get(u'str')))
    PyJsHoisted_cleanJSXElementLiteralChild_.func_name = u'cleanJSXElementLiteralChild'
    var.put(u'cleanJSXElementLiteralChild', PyJsHoisted_cleanJSXElementLiteralChild_)
    @Js
    def PyJsHoisted_buildChildren_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'i', u'node', u'elems', u'child'])
        var.put(u'elems', Js([]))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'node').get(u'children').get(u'length')):
            try:
                var.put(u'child', var.get(u'node').get(u'children').get(var.get(u'i')))
                if var.get(u't').callprop(u'isJSXText', var.get(u'child')):
                    var.get(u'cleanJSXElementLiteralChild')(var.get(u'child'), var.get(u'elems'))
                    continue
                if var.get(u't').callprop(u'isJSXExpressionContainer', var.get(u'child')):
                    var.put(u'child', var.get(u'child').get(u'expression'))
                if var.get(u't').callprop(u'isJSXEmptyExpression', var.get(u'child')):
                    continue
                var.get(u'elems').callprop(u'push', var.get(u'child'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'elems')
    PyJsHoisted_buildChildren_.func_name = u'buildChildren'
    var.put(u'buildChildren', PyJsHoisted_buildChildren_)
    @Js
    def PyJsHoisted_isCompatTag_(tagName, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'tagName':tagName}, var)
        var.registers([u'tagName'])
        return (var.get(u'tagName').neg().neg() and JsRegExp(u'/^[a-z]|\\-/').callprop(u'test', var.get(u'tagName')))
    PyJsHoisted_isCompatTag_.func_name = u'isCompatTag'
    var.put(u'isCompatTag', PyJsHoisted_isCompatTag_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2828_ = Js({})
            var.put(u'newObj', PyJs_Object_2828_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.get(u'exports').put(u'isReactComponent', var.get(u'undefined'))
    var.get(u'exports').put(u'isCompatTag', var.get(u'isCompatTag'))
    var.get(u'exports').put(u'buildChildren', var.get(u'buildChildren'))
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_index')))
    pass
    var.put(u'isReactComponent', var.get(u'exports').put(u'isReactComponent', var.get(u't').callprop(u'buildMatchMemberExpression', Js(u'React.Component'))))
    pass
    pass
    pass
PyJs_anonymous_2827_._set_name(u'anonymous')
PyJs_Object_2829_ = Js({u'./index':Js(258.0)})
@Js
def PyJs_anonymous_2830_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_create', u'exports', u'_interopRequireWildcard', u'_index', u'getBindingIdentifiers', u'require', u'module', u'_create2', u'getOuterBindingIdentifiers', u't', u'_interopRequireDefault'])
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2832_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2832_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_getBindingIdentifiers_(node, duplicates, outerOnly, this, arguments, var=var):
        var = Scope({u'node':node, u'duplicates':duplicates, u'this':this, u'arguments':arguments, u'outerOnly':outerOnly}, var)
        var.registers([u'node', u'search', u'duplicates', u'outerOnly', u'keys', u'ids', u'i', u'key', u'id', u'_ids'])
        var.put(u'search', Js([]).callprop(u'concat', var.get(u'node')))
        var.put(u'ids', PyJsComma(Js(0.0),var.get(u'_create2').get(u'default'))(var.get(u"null")))
        while var.get(u'search').get(u'length'):
            var.put(u'id', var.get(u'search').callprop(u'shift'))
            if var.get(u'id').neg():
                continue
            var.put(u'keys', var.get(u't').get(u'getBindingIdentifiers').get(u'keys').get(var.get(u'id').get(u'type')))
            if var.get(u't').callprop(u'isIdentifier', var.get(u'id')):
                if var.get(u'duplicates'):
                    var.put(u'_ids', var.get(u'ids').put(var.get(u'id').get(u'name'), (var.get(u'ids').get(var.get(u'id').get(u'name')) or Js([]))))
                    var.get(u'_ids').callprop(u'push', var.get(u'id'))
                else:
                    var.get(u'ids').put(var.get(u'id').get(u'name'), var.get(u'id'))
                continue
            if var.get(u't').callprop(u'isExportDeclaration', var.get(u'id')):
                if var.get(u't').callprop(u'isDeclaration', var.get(u'node').get(u'declaration')):
                    var.get(u'search').callprop(u'push', var.get(u'node').get(u'declaration'))
                continue
            if var.get(u'outerOnly'):
                if var.get(u't').callprop(u'isFunctionDeclaration', var.get(u'id')):
                    var.get(u'search').callprop(u'push', var.get(u'id').get(u'id'))
                    continue
                if var.get(u't').callprop(u'isFunctionExpression', var.get(u'id')):
                    continue
            if var.get(u'keys'):
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'keys').get(u'length')):
                    try:
                        var.put(u'key', var.get(u'keys').get(var.get(u'i')))
                        if var.get(u'id').get(var.get(u'key')):
                            var.put(u'search', var.get(u'search').callprop(u'concat', var.get(u'id').get(var.get(u'key'))))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'ids')
    PyJsHoisted_getBindingIdentifiers_.func_name = u'getBindingIdentifiers'
    var.put(u'getBindingIdentifiers', PyJsHoisted_getBindingIdentifiers_)
    @Js
    def PyJsHoisted_getOuterBindingIdentifiers_(node, duplicates, this, arguments, var=var):
        var = Scope({u'node':node, u'duplicates':duplicates, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'duplicates'])
        return var.get(u'getBindingIdentifiers')(var.get(u'node'), var.get(u'duplicates'), var.get(u'true'))
    PyJsHoisted_getOuterBindingIdentifiers_.func_name = u'getOuterBindingIdentifiers'
    var.put(u'getOuterBindingIdentifiers', PyJsHoisted_getOuterBindingIdentifiers_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2831_ = Js({})
            var.put(u'newObj', PyJs_Object_2831_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_create', var.get(u'require')(Js(u'babel-runtime/core-js/object/create')))
    var.put(u'_create2', var.get(u'_interopRequireDefault')(var.get(u'_create')))
    var.get(u'exports').put(u'getBindingIdentifiers', var.get(u'getBindingIdentifiers'))
    var.get(u'exports').put(u'getOuterBindingIdentifiers', var.get(u'getOuterBindingIdentifiers'))
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_index')))
    pass
    pass
    pass
    PyJs_Object_2833_ = Js({u'DeclareClass':Js([Js(u'id')]),u'DeclareFunction':Js([Js(u'id')]),u'DeclareModule':Js([Js(u'id')]),u'DeclareVariable':Js([Js(u'id')]),u'InterfaceDeclaration':Js([Js(u'id')]),u'TypeAlias':Js([Js(u'id')]),u'CatchClause':Js([Js(u'param')]),u'LabeledStatement':Js([Js(u'label')]),u'UnaryExpression':Js([Js(u'argument')]),u'AssignmentExpression':Js([Js(u'left')]),u'ImportSpecifier':Js([Js(u'local')]),u'ImportNamespaceSpecifier':Js([Js(u'local')]),u'ImportDefaultSpecifier':Js([Js(u'local')]),u'ImportDeclaration':Js([Js(u'specifiers')]),u'ExportSpecifier':Js([Js(u'exported')]),u'ExportNamespaceSpecifier':Js([Js(u'exported')]),u'ExportDefaultSpecifier':Js([Js(u'exported')]),u'FunctionDeclaration':Js([Js(u'id'), Js(u'params')]),u'FunctionExpression':Js([Js(u'id'), Js(u'params')]),u'ClassDeclaration':Js([Js(u'id')]),u'ClassExpression':Js([Js(u'id')]),u'RestElement':Js([Js(u'argument')]),u'UpdateExpression':Js([Js(u'argument')]),u'RestProperty':Js([Js(u'argument')]),u'ObjectProperty':Js([Js(u'value')]),u'AssignmentPattern':Js([Js(u'left')]),u'ArrayPattern':Js([Js(u'elements')]),u'ObjectPattern':Js([Js(u'properties')]),u'VariableDeclaration':Js([Js(u'declarations')]),u'VariableDeclarator':Js([Js(u'id')])})
    var.get(u'getBindingIdentifiers').put(u'keys', PyJs_Object_2833_)
    pass
PyJs_anonymous_2830_._set_name(u'anonymous')
PyJs_Object_2834_ = Js({u'./index':Js(258.0),u'babel-runtime/core-js/object/create':Js(101.0)})
@Js
def PyJs_anonymous_2835_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'_constants', u'module', u'isVar', u'_interopRequireDefault', u'_getIterator2', u'_getIterator3', u'_esutils2', u'isImmutable', u'isReferenced', u'isValidIdentifier', u'exports', u'isScope', u'_interopRequireWildcard', u'isBinding', u'_esutils', u'isSpecifierDefault', u'isBlockScoped', u'_retrievers', u'_index', u'require', u't', u'isLet'])
    @Js
    def PyJsHoisted_isScope_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'parent'])
        PyJs_Object_2840_ = Js({u'body':var.get(u'node')})
        if (var.get(u't').callprop(u'isBlockStatement', var.get(u'node')) and var.get(u't').callprop(u'isFunction', var.get(u'parent'), PyJs_Object_2840_)):
            return Js(False)
        return var.get(u't').callprop(u'isScopable', var.get(u'node'))
    PyJsHoisted_isScope_.func_name = u'isScope'
    var.put(u'isScope', PyJsHoisted_isScope_)
    @Js
    def PyJsHoisted__interopRequireWildcard_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj', u'key', u'newObj'])
        if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')):
            return var.get(u'obj')
        else:
            PyJs_Object_2836_ = Js({})
            var.put(u'newObj', PyJs_Object_2836_)
            if (var.get(u'obj')!=var.get(u"null")):
                for PyJsTemp in var.get(u'obj'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                        var.get(u'newObj').put(var.get(u'key'), var.get(u'obj').get(var.get(u'key')))
            var.get(u'newObj').put(u'default', var.get(u'obj'))
            return var.get(u'newObj')
    PyJsHoisted__interopRequireWildcard_.func_name = u'_interopRequireWildcard'
    var.put(u'_interopRequireWildcard', PyJsHoisted__interopRequireWildcard_)
    @Js
    def PyJsHoisted_isImmutable_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u't').callprop(u'isType', var.get(u'node').get(u'type'), Js(u'Immutable')):
            return var.get(u'true')
        if var.get(u't').callprop(u'isIdentifier', var.get(u'node')):
            if PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'undefined')):
                return var.get(u'true')
            else:
                return Js(False)
        return Js(False)
    PyJsHoisted_isImmutable_.func_name = u'isImmutable'
    var.put(u'isImmutable', PyJsHoisted_isImmutable_)
    @Js
    def PyJsHoisted_isBinding_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'val', u'parent', u'keys', u'i', u'key'])
        var.put(u'keys', var.get(u'_retrievers').get(u'getBindingIdentifiers').get(u'keys').get(var.get(u'parent').get(u'type')))
        if var.get(u'keys'):
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'keys').get(u'length')):
                try:
                    var.put(u'key', var.get(u'keys').get(var.get(u'i')))
                    var.put(u'val', var.get(u'parent').get(var.get(u'key')))
                    if var.get(u'Array').callprop(u'isArray', var.get(u'val')):
                        if (var.get(u'val').callprop(u'indexOf', var.get(u'node'))>=Js(0.0)):
                            return var.get(u'true')
                    else:
                        if PyJsStrictEq(var.get(u'val'),var.get(u'node')):
                            return var.get(u'true')
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return Js(False)
    PyJsHoisted_isBinding_.func_name = u'isBinding'
    var.put(u'isBinding', PyJsHoisted_isBinding_)
    @Js
    def PyJsHoisted_isReferenced_(node, parent, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'parent':parent}, var)
        var.registers([u'node', u'_isArray', u'_iterator', u'parent', u'param', u'_i', u'_ref'])
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'parent').get(u'type'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'BindExpression')):
                SWITCHED = True
                return (PyJsStrictEq(var.get(u'parent').get(u'object'),var.get(u'node')) or PyJsStrictEq(var.get(u'parent').get(u'callee'),var.get(u'node')))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'MemberExpression')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'JSXMemberExpression')):
                SWITCHED = True
                if (PyJsStrictEq(var.get(u'parent').get(u'property'),var.get(u'node')) and var.get(u'parent').get(u'computed')):
                    return var.get(u'true')
                else:
                    if PyJsStrictEq(var.get(u'parent').get(u'object'),var.get(u'node')):
                        return var.get(u'true')
                    else:
                        return Js(False)
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'MetaProperty')):
                SWITCHED = True
                return Js(False)
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ObjectProperty')):
                SWITCHED = True
                if PyJsStrictEq(var.get(u'parent').get(u'key'),var.get(u'node')):
                    return var.get(u'parent').get(u'computed')
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'VariableDeclarator')):
                SWITCHED = True
                return PyJsStrictNeq(var.get(u'parent').get(u'id'),var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ArrowFunctionExpression')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'FunctionDeclaration')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'FunctionExpression')):
                SWITCHED = True
                #for JS loop
                var.put(u'_iterator', var.get(u'parent').get(u'params'))
                var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
                var.put(u'_i', Js(0.0))
                var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else PyJsComma(Js(0.0),var.get(u'_getIterator3').get(u'default'))(var.get(u'_iterator'))))
                while 1:
                    pass
                    if var.get(u'_isArray'):
                        if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                            break
                        var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                        if var.get(u'_i').get(u'done'):
                            break
                        var.put(u'_ref', var.get(u'_i').get(u'value'))
                    var.put(u'param', var.get(u'_ref'))
                    if PyJsStrictEq(var.get(u'param'),var.get(u'node')):
                        return Js(False)
                
                return PyJsStrictNeq(var.get(u'parent').get(u'id'),var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ExportSpecifier')):
                SWITCHED = True
                if var.get(u'parent').get(u'source'):
                    return Js(False)
                else:
                    return PyJsStrictEq(var.get(u'parent').get(u'local'),var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ExportNamespaceSpecifier')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ExportDefaultSpecifier')):
                SWITCHED = True
                return Js(False)
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'JSXAttribute')):
                SWITCHED = True
                return PyJsStrictNeq(var.get(u'parent').get(u'name'),var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ClassProperty')):
                SWITCHED = True
                if PyJsStrictEq(var.get(u'parent').get(u'key'),var.get(u'node')):
                    return var.get(u'parent').get(u'computed')
                else:
                    return PyJsStrictEq(var.get(u'parent').get(u'value'),var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ImportDefaultSpecifier')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ImportNamespaceSpecifier')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ImportSpecifier')):
                SWITCHED = True
                return Js(False)
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ClassDeclaration')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ClassExpression')):
                SWITCHED = True
                return PyJsStrictNeq(var.get(u'parent').get(u'id'),var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ClassMethod')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ObjectMethod')):
                SWITCHED = True
                return (PyJsStrictEq(var.get(u'parent').get(u'key'),var.get(u'node')) and var.get(u'parent').get(u'computed'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'LabeledStatement')):
                SWITCHED = True
                return Js(False)
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'CatchClause')):
                SWITCHED = True
                return PyJsStrictNeq(var.get(u'parent').get(u'param'),var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'RestElement')):
                SWITCHED = True
                return Js(False)
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'AssignmentExpression')):
                SWITCHED = True
                return PyJsStrictEq(var.get(u'parent').get(u'right'),var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'AssignmentPattern')):
                SWITCHED = True
                return PyJsStrictEq(var.get(u'parent').get(u'right'),var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ObjectPattern')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ArrayPattern')):
                SWITCHED = True
                return Js(False)
            SWITCHED = True
            break
        return var.get(u'true')
    PyJsHoisted_isReferenced_.func_name = u'isReferenced'
    var.put(u'isReferenced', PyJsHoisted_isReferenced_)
    @Js
    def PyJsHoisted_isValidIdentifier_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name'])
        if (PyJsStrictNeq(var.get(u'name',throw=False).typeof(),Js(u'string')) or var.get(u'_esutils2').get(u'default').get(u'keyword').callprop(u'isReservedWordES6', var.get(u'name'), var.get(u'true'))):
            return Js(False)
        else:
            return var.get(u'_esutils2').get(u'default').get(u'keyword').callprop(u'isIdentifierNameES6', var.get(u'name'))
    PyJsHoisted_isValidIdentifier_.func_name = u'isValidIdentifier'
    var.put(u'isValidIdentifier', PyJsHoisted_isValidIdentifier_)
    @Js
    def PyJsHoisted_isVar_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        PyJs_Object_2838_ = Js({u'kind':Js(u'var')})
        return (var.get(u't').callprop(u'isVariableDeclaration', var.get(u'node'), PyJs_Object_2838_) and var.get(u'node').get(var.get(u'_constants').get(u'BLOCK_SCOPED_SYMBOL')).neg())
    PyJsHoisted_isVar_.func_name = u'isVar'
    var.put(u'isVar', PyJsHoisted_isVar_)
    @Js
    def PyJsHoisted__interopRequireDefault_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        PyJs_Object_2837_ = Js({u'default':var.get(u'obj')})
        return (var.get(u'obj') if (var.get(u'obj') and var.get(u'obj').get(u'__esModule')) else PyJs_Object_2837_)
    PyJsHoisted__interopRequireDefault_.func_name = u'_interopRequireDefault'
    var.put(u'_interopRequireDefault', PyJsHoisted__interopRequireDefault_)
    @Js
    def PyJsHoisted_isLet_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        return (var.get(u't').callprop(u'isVariableDeclaration', var.get(u'node')) and (PyJsStrictNeq(var.get(u'node').get(u'kind'),Js(u'var')) or var.get(u'node').get(var.get(u'_constants').get(u'BLOCK_SCOPED_SYMBOL'))))
    PyJsHoisted_isLet_.func_name = u'isLet'
    var.put(u'isLet', PyJsHoisted_isLet_)
    @Js
    def PyJsHoisted_isSpecifierDefault_(specifier, this, arguments, var=var):
        var = Scope({u'this':this, u'specifier':specifier, u'arguments':arguments}, var)
        var.registers([u'specifier'])
        PyJs_Object_2839_ = Js({u'name':Js(u'default')})
        return (var.get(u't').callprop(u'isImportDefaultSpecifier', var.get(u'specifier')) or var.get(u't').callprop(u'isIdentifier', (var.get(u'specifier').get(u'imported') or var.get(u'specifier').get(u'exported')), PyJs_Object_2839_))
    PyJsHoisted_isSpecifierDefault_.func_name = u'isSpecifierDefault'
    var.put(u'isSpecifierDefault', PyJsHoisted_isSpecifierDefault_)
    @Js
    def PyJsHoisted_isBlockScoped_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        return ((var.get(u't').callprop(u'isFunctionDeclaration', var.get(u'node')) or var.get(u't').callprop(u'isClassDeclaration', var.get(u'node'))) or var.get(u't').callprop(u'isLet', var.get(u'node')))
    PyJsHoisted_isBlockScoped_.func_name = u'isBlockScoped'
    var.put(u'isBlockScoped', PyJsHoisted_isBlockScoped_)
    Js(u'use strict')
    var.get(u'exports').put(u'__esModule', var.get(u'true'))
    var.put(u'_getIterator2', var.get(u'require')(Js(u'babel-runtime/core-js/get-iterator')))
    var.put(u'_getIterator3', var.get(u'_interopRequireDefault')(var.get(u'_getIterator2')))
    var.get(u'exports').put(u'isBinding', var.get(u'isBinding'))
    var.get(u'exports').put(u'isReferenced', var.get(u'isReferenced'))
    var.get(u'exports').put(u'isValidIdentifier', var.get(u'isValidIdentifier'))
    var.get(u'exports').put(u'isLet', var.get(u'isLet'))
    var.get(u'exports').put(u'isBlockScoped', var.get(u'isBlockScoped'))
    var.get(u'exports').put(u'isVar', var.get(u'isVar'))
    var.get(u'exports').put(u'isSpecifierDefault', var.get(u'isSpecifierDefault'))
    var.get(u'exports').put(u'isScope', var.get(u'isScope'))
    var.get(u'exports').put(u'isImmutable', var.get(u'isImmutable'))
    var.put(u'_retrievers', var.get(u'require')(Js(u'./retrievers')))
    var.put(u'_esutils', var.get(u'require')(Js(u'esutils')))
    var.put(u'_esutils2', var.get(u'_interopRequireDefault')(var.get(u'_esutils')))
    var.put(u'_index', var.get(u'require')(Js(u'./index')))
    var.put(u't', var.get(u'_interopRequireWildcard')(var.get(u'_index')))
    var.put(u'_constants', var.get(u'require')(Js(u'./constants')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_2835_._set_name(u'anonymous')
PyJs_Object_2841_ = Js({u'./constants':Js(247.0),u'./index':Js(258.0),u'./retrievers':Js(260.0),u'babel-runtime/core-js/get-iterator':Js(96.0),u'esutils':Js(276.0)})
@Js
def PyJs_anonymous_2842_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'TokContext', u'reservedWords', u'parse$1', u'pp$4', u'isKeyword$1', u'getLineInfo', u'astralIdentifierStartCodes', u'isNewLine', u'module', u'_typeof', u'isIdentifierChar', u'State', u'plugins', u'keywords', u'getOptions', u'Node', u'pp$8', u'isIdentifierStart', u'TokenType', u'types$1', u'beforeExpr', u'nonASCIIidentifierStartChars', u'DECIMAL_NUMBER', u'_inherits', u'flowPlugin', u'_possibleConstructorReturn', u'commentKeys', u'XHTMLEntities', u'isInAstralSet', u'empty', u'astralIdentifierCodes', u'exports', u'nonASCIIidentifierChars', u'binop', u'startsExpr', u'lineBreakG', u'pp', u'jsxPlugin', u'_classCallCheck$6', u'_classCallCheck$4', u'_classCallCheck$5', u'_classCallCheck$2', u'_classCallCheck$3', u'_classCallCheck$1', u'Position', u'getQualifiedJSXName', u'types', u'switchLabel', u'nonASCIIidentifier', u'lineBreak', u'HEX_NUMBER', u'last', u'loopLabel', u'Tokenizer', u'defaultOptions', u'_classCallCheck', u'require', u'Parser', u'Token', u'nonASCIIidentifierStart', u'makePredicate', u'nonASCIIwhitespace', u'kw', u'codePointToString', u'finishNodeAt', u'pp$1', u'pp$2', u'pp$3', u'SourceLocation', u'pp$5', u'pp$6', u'pp$7'])
    @Js
    def PyJsHoisted_codePointToString_(code, this, arguments, var=var):
        var = Scope({u'this':this, u'code':code, u'arguments':arguments}, var)
        var.registers([u'code'])
        if (var.get(u'code')<=Js(65535)):
            return var.get(u'String').callprop(u'fromCharCode', var.get(u'code'))
        else:
            return var.get(u'String').callprop(u'fromCharCode', (((var.get(u'code')-Js(65536))>>Js(10.0))+Js(55296)), (((var.get(u'code')-Js(65536))&Js(1023.0))+Js(56320)))
    PyJsHoisted_codePointToString_.func_name = u'codePointToString'
    var.put(u'codePointToString', PyJsHoisted_codePointToString_)
    @Js
    def PyJsHoisted_isNewLine_(code, this, arguments, var=var):
        var = Scope({u'this':this, u'code':code, u'arguments':arguments}, var)
        var.registers([u'code'])
        return (((PyJsStrictEq(var.get(u'code'),Js(10.0)) or PyJsStrictEq(var.get(u'code'),Js(13.0))) or PyJsStrictEq(var.get(u'code'),Js(8232))) or PyJsStrictEq(var.get(u'code'),Js(8233)))
    PyJsHoisted_isNewLine_.func_name = u'isNewLine'
    var.put(u'isNewLine', PyJsHoisted_isNewLine_)
    @Js
    def PyJsHoisted_isIdentifierChar_(code, this, arguments, var=var):
        var = Scope({u'this':this, u'code':code, u'arguments':arguments}, var)
        var.registers([u'code'])
        if (var.get(u'code')<Js(48.0)):
            return PyJsStrictEq(var.get(u'code'),Js(36.0))
        if (var.get(u'code')<Js(58.0)):
            return var.get(u'true')
        if (var.get(u'code')<Js(65.0)):
            return Js(False)
        if (var.get(u'code')<Js(91.0)):
            return var.get(u'true')
        if (var.get(u'code')<Js(97.0)):
            return PyJsStrictEq(var.get(u'code'),Js(95.0))
        if (var.get(u'code')<Js(123.0)):
            return var.get(u'true')
        if (var.get(u'code')<=Js(65535)):
            return ((var.get(u'code')>=Js(170)) and var.get(u'nonASCIIidentifier').callprop(u'test', var.get(u'String').callprop(u'fromCharCode', var.get(u'code'))))
        return (var.get(u'isInAstralSet')(var.get(u'code'), var.get(u'astralIdentifierStartCodes')) or var.get(u'isInAstralSet')(var.get(u'code'), var.get(u'astralIdentifierCodes')))
    PyJsHoisted_isIdentifierChar_.func_name = u'isIdentifierChar'
    var.put(u'isIdentifierChar', PyJsHoisted_isIdentifierChar_)
    @Js
    def PyJsHoisted_getOptions_(opts, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'opts':opts}, var)
        var.registers([u'opts', u'options', u'key'])
        PyJs_Object_2847_ = Js({})
        var.put(u'options', PyJs_Object_2847_)
        for PyJsTemp in var.get(u'defaultOptions'):
            var.put(u'key', PyJsTemp)
            var.get(u'options').put(var.get(u'key'), (var.get(u'opts').get(var.get(u'key')) if (var.get(u'opts') and var.get(u'opts').contains(var.get(u'key'))) else var.get(u'defaultOptions').get(var.get(u'key'))))
        return var.get(u'options')
    PyJsHoisted_getOptions_.func_name = u'getOptions'
    var.put(u'getOptions', PyJsHoisted_getOptions_)
    @Js
    def PyJsHoisted_isIdentifierStart_(code, this, arguments, var=var):
        var = Scope({u'this':this, u'code':code, u'arguments':arguments}, var)
        var.registers([u'code'])
        if (var.get(u'code')<Js(65.0)):
            return PyJsStrictEq(var.get(u'code'),Js(36.0))
        if (var.get(u'code')<Js(91.0)):
            return var.get(u'true')
        if (var.get(u'code')<Js(97.0)):
            return PyJsStrictEq(var.get(u'code'),Js(95.0))
        if (var.get(u'code')<Js(123.0)):
            return var.get(u'true')
        if (var.get(u'code')<=Js(65535)):
            return ((var.get(u'code')>=Js(170)) and var.get(u'nonASCIIidentifierStart').callprop(u'test', var.get(u'String').callprop(u'fromCharCode', var.get(u'code'))))
        return var.get(u'isInAstralSet')(var.get(u'code'), var.get(u'astralIdentifierStartCodes'))
    PyJsHoisted_isIdentifierStart_.func_name = u'isIdentifierStart'
    var.put(u'isIdentifierStart', PyJsHoisted_isIdentifierStart_)
    @Js
    def PyJsHoisted__inherits_(subClass, superClass, this, arguments, var=var):
        var = Scope({u'this':this, u'superClass':superClass, u'subClass':subClass, u'arguments':arguments}, var)
        var.registers([u'superClass', u'subClass'])
        if (PyJsStrictNeq(var.get(u'superClass',throw=False).typeof(),Js(u'function')) and PyJsStrictNeq(var.get(u'superClass'),var.get(u"null"))):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create((Js(u'Super expression must either be null or a function, not ')+var.get(u'superClass',throw=False).typeof())))
            raise PyJsTempException
        PyJs_Object_2937_ = Js({u'value':var.get(u'subClass'),u'enumerable':Js(False),u'writable':var.get(u'true'),u'configurable':var.get(u'true')})
        PyJs_Object_2936_ = Js({u'constructor':PyJs_Object_2937_})
        var.get(u'subClass').put(u'prototype', var.get(u'Object').callprop(u'create', (var.get(u'superClass') and var.get(u'superClass').get(u'prototype')), PyJs_Object_2936_))
        if var.get(u'superClass'):
            (var.get(u'Object').callprop(u'setPrototypeOf', var.get(u'subClass'), var.get(u'superClass')) if var.get(u'Object').get(u'setPrototypeOf') else var.get(u'subClass').put(u'__proto__', var.get(u'superClass')))
    PyJsHoisted__inherits_.func_name = u'_inherits'
    var.put(u'_inherits', PyJsHoisted__inherits_)
    @Js
    def PyJsHoisted__possibleConstructorReturn_(self, call, this, arguments, var=var):
        var = Scope({u'this':this, u'self':self, u'call':call, u'arguments':arguments}, var)
        var.registers([u'self', u'call'])
        if var.get(u'self').neg():
            PyJsTempException = JsToPyException(var.get(u'ReferenceError').create(Js(u"this hasn't been initialised - super() hasn't been called")))
            raise PyJsTempException
        return (var.get(u'call') if (var.get(u'call') and (PyJsStrictEq(var.get(u'call',throw=False).typeof(),Js(u'object')) or PyJsStrictEq(var.get(u'call',throw=False).typeof(),Js(u'function')))) else var.get(u'self'))
    PyJsHoisted__possibleConstructorReturn_.func_name = u'_possibleConstructorReturn'
    var.put(u'_possibleConstructorReturn', PyJsHoisted__possibleConstructorReturn_)
    @Js
    def PyJsHoisted_isInAstralSet_(code, set, this, arguments, var=var):
        var = Scope({u'this':this, u'code':code, u'set':set, u'arguments':arguments}, var)
        var.registers([u'i', u'code', u'set', u'pos'])
        var.put(u'pos', Js(65536))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'set').get(u'length')):
            try:
                var.put(u'pos', var.get(u'set').get(var.get(u'i')), u'+')
                if (var.get(u'pos')>var.get(u'code')):
                    return Js(False)
                var.put(u'pos', var.get(u'set').get((var.get(u'i')+Js(1.0))), u'+')
                if (var.get(u'pos')>=var.get(u'code')):
                    return var.get(u'true')
            finally:
                    var.put(u'i', Js(2.0), u'+')
    PyJsHoisted_isInAstralSet_.func_name = u'isInAstralSet'
    var.put(u'isInAstralSet', PyJsHoisted_isInAstralSet_)
    @Js
    def PyJsHoisted_binop_(name, prec, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'prec':prec, u'arguments':arguments}, var)
        var.registers([u'name', u'prec'])
        PyJs_Object_2850_ = Js({u'beforeExpr':var.get(u'true'),u'binop':var.get(u'prec')})
        return var.get(u'TokenType').create(var.get(u'name'), PyJs_Object_2850_)
    PyJsHoisted_binop_.func_name = u'binop'
    var.put(u'binop', PyJsHoisted_binop_)
    @Js
    def PyJsHoistedNonPyName(instance, Constructor, this, arguments, var=var):
        var = Scope({u'this':this, u'instance':instance, u'arguments':arguments, u'Constructor':Constructor}, var)
        var.registers([u'instance', u'Constructor'])
        if var.get(u'instance').instanceof(var.get(u'Constructor')).neg():
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Cannot call a class as a function')))
            raise PyJsTempException
    PyJsHoistedNonPyName.func_name = u'_classCallCheck$6'
    var.put(u'_classCallCheck$6', PyJsHoistedNonPyName)
    @Js
    def PyJsHoisted_finishNodeAt_(node, type, pos, loc, this, arguments, var=var):
        var = Scope({u'node':node, u'loc':loc, u'arguments':arguments, u'this':this, u'type':type, u'pos':pos}, var)
        var.registers([u'node', u'loc', u'type', u'pos'])
        var.get(u'node').put(u'type', var.get(u'type'))
        var.get(u'node').put(u'end', var.get(u'pos'))
        var.get(u'node').get(u'loc').put(u'end', var.get(u'loc'))
        var.get(u"this").callprop(u'processComment', var.get(u'node'))
        return var.get(u'node')
    PyJsHoisted_finishNodeAt_.func_name = u'finishNodeAt'
    var.put(u'finishNodeAt', PyJsHoisted_finishNodeAt_)
    @Js
    def PyJsHoistedNonPyName(instance, Constructor, this, arguments, var=var):
        var = Scope({u'this':this, u'instance':instance, u'arguments':arguments, u'Constructor':Constructor}, var)
        var.registers([u'instance', u'Constructor'])
        if var.get(u'instance').instanceof(var.get(u'Constructor')).neg():
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Cannot call a class as a function')))
            raise PyJsTempException
    PyJsHoistedNonPyName.func_name = u'_classCallCheck$5'
    var.put(u'_classCallCheck$5', PyJsHoistedNonPyName)
    @Js
    def PyJsHoistedNonPyName(instance, Constructor, this, arguments, var=var):
        var = Scope({u'this':this, u'instance':instance, u'arguments':arguments, u'Constructor':Constructor}, var)
        var.registers([u'instance', u'Constructor'])
        if var.get(u'instance').instanceof(var.get(u'Constructor')).neg():
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Cannot call a class as a function')))
            raise PyJsTempException
    PyJsHoistedNonPyName.func_name = u'_classCallCheck$2'
    var.put(u'_classCallCheck$2', PyJsHoistedNonPyName)
    @Js
    def PyJsHoistedNonPyName(instance, Constructor, this, arguments, var=var):
        var = Scope({u'this':this, u'instance':instance, u'arguments':arguments, u'Constructor':Constructor}, var)
        var.registers([u'instance', u'Constructor'])
        if var.get(u'instance').instanceof(var.get(u'Constructor')).neg():
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Cannot call a class as a function')))
            raise PyJsTempException
    PyJsHoistedNonPyName.func_name = u'_classCallCheck$3'
    var.put(u'_classCallCheck$3', PyJsHoistedNonPyName)
    @Js
    def PyJsHoistedNonPyName(instance, Constructor, this, arguments, var=var):
        var = Scope({u'this':this, u'instance':instance, u'arguments':arguments, u'Constructor':Constructor}, var)
        var.registers([u'instance', u'Constructor'])
        if var.get(u'instance').instanceof(var.get(u'Constructor')).neg():
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Cannot call a class as a function')))
            raise PyJsTempException
    PyJsHoistedNonPyName.func_name = u'_classCallCheck$1'
    var.put(u'_classCallCheck$1', PyJsHoistedNonPyName)
    @Js
    def PyJsHoisted_getQualifiedJSXName_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'object'])
        if PyJsStrictEq(var.get(u'object').get(u'type'),Js(u'JSXIdentifier')):
            return var.get(u'object').get(u'name')
        if PyJsStrictEq(var.get(u'object').get(u'type'),Js(u'JSXNamespacedName')):
            return ((var.get(u'object').get(u'namespace').get(u'name')+Js(u':'))+var.get(u'object').get(u'name').get(u'name'))
        if PyJsStrictEq(var.get(u'object').get(u'type'),Js(u'JSXMemberExpression')):
            return ((var.get(u'getQualifiedJSXName')(var.get(u'object').get(u'object'))+Js(u'.'))+var.get(u'getQualifiedJSXName')(var.get(u'object').get(u'property')))
    PyJsHoisted_getQualifiedJSXName_.func_name = u'getQualifiedJSXName'
    var.put(u'getQualifiedJSXName', PyJsHoisted_getQualifiedJSXName_)
    @Js
    def PyJsHoisted_getLineInfo_(input, offset, this, arguments, var=var):
        var = Scope({u'this':this, u'input':input, u'arguments':arguments, u'offset':offset}, var)
        var.registers([u'input', u'line', u'cur', u'match', u'offset'])
        #for JS loop
        var.put(u'line', Js(1.0))
        var.put(u'cur', Js(0.0))
        while 1:
            var.get(u'lineBreakG').put(u'lastIndex', var.get(u'cur'))
            var.put(u'match', var.get(u'lineBreakG').callprop(u'exec', var.get(u'input')))
            if (var.get(u'match') and (var.get(u'match').get(u'index')<var.get(u'offset'))):
                var.put(u'line',Js(var.get(u'line').to_number())+Js(1))
                var.put(u'cur', (var.get(u'match').get(u'index')+var.get(u'match').get(u'0').get(u'length')))
            else:
                return var.get(u'Position').create(var.get(u'line'), (var.get(u'offset')-var.get(u'cur')))
        
    PyJsHoisted_getLineInfo_.func_name = u'getLineInfo'
    var.put(u'getLineInfo', PyJsHoisted_getLineInfo_)
    @Js
    def PyJsHoisted_last_(stack, this, arguments, var=var):
        var = Scope({u'this':this, u'stack':stack, u'arguments':arguments}, var)
        var.registers([u'stack'])
        return var.get(u'stack').get((var.get(u'stack').get(u'length')-Js(1.0)))
    PyJsHoisted_last_.func_name = u'last'
    var.put(u'last', PyJsHoisted_last_)
    @Js
    def PyJsHoistedNonPyName(input, options, this, arguments, var=var):
        var = Scope({u'this':this, u'input':input, u'options':options, u'arguments':arguments}, var)
        var.registers([u'input', u'options'])
        return var.get(u'Parser').create(var.get(u'options'), var.get(u'input')).callprop(u'parse')
    PyJsHoistedNonPyName.func_name = u'parse$1'
    var.put(u'parse$1', PyJsHoistedNonPyName)
    @Js
    def PyJsHoistedNonPyName(instance, Constructor, this, arguments, var=var):
        var = Scope({u'this':this, u'instance':instance, u'arguments':arguments, u'Constructor':Constructor}, var)
        var.registers([u'instance', u'Constructor'])
        if var.get(u'instance').instanceof(var.get(u'Constructor')).neg():
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Cannot call a class as a function')))
            raise PyJsTempException
    PyJsHoistedNonPyName.func_name = u'_classCallCheck$4'
    var.put(u'_classCallCheck$4', PyJsHoistedNonPyName)
    @Js
    def PyJsHoisted_makePredicate_(words, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'words':words}, var)
        var.registers([u'words'])
        var.put(u'words', var.get(u'words').callprop(u'split', Js(u' ')))
        @Js
        def PyJs_anonymous_2844_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
            var.registers([u'str'])
            return (var.get(u'words').callprop(u'indexOf', var.get(u'str'))>=Js(0.0))
        PyJs_anonymous_2844_._set_name(u'anonymous')
        return PyJs_anonymous_2844_
    PyJsHoisted_makePredicate_.func_name = u'makePredicate'
    var.put(u'makePredicate', PyJsHoisted_makePredicate_)
    @Js
    def PyJsHoisted_kw_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'options', u'name'])
        PyJs_Object_2866_ = Js({})
        var.put(u'options', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else PyJs_Object_2866_))
        var.get(u'options').put(u'keyword', var.get(u'name'))
        var.get(u'keywords').put(var.get(u'name'), var.get(u'types').put((Js(u'_')+var.get(u'name')), var.get(u'TokenType').create(var.get(u'name'), var.get(u'options'))))
    PyJsHoisted_kw_.func_name = u'kw'
    var.put(u'kw', PyJsHoisted_kw_)
    @Js
    def PyJsHoisted__classCallCheck_(instance, Constructor, this, arguments, var=var):
        var = Scope({u'this':this, u'instance':instance, u'arguments':arguments, u'Constructor':Constructor}, var)
        var.registers([u'instance', u'Constructor'])
        if var.get(u'instance').instanceof(var.get(u'Constructor')).neg():
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Cannot call a class as a function')))
            raise PyJsTempException
    PyJsHoisted__classCallCheck_.func_name = u'_classCallCheck'
    var.put(u'_classCallCheck', PyJsHoisted__classCallCheck_)
    Js(u'use strict')
    PyJs_Object_2843_ = Js({u'value':var.get(u'true')})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'__esModule'), PyJs_Object_2843_)
    pass
    PyJs_Object_2845_ = Js({u'6':var.get(u'makePredicate')(Js(u'enum await')),u'strict':var.get(u'makePredicate')(Js(u'implements interface let package private protected public static yield')),u'strictBind':var.get(u'makePredicate')(Js(u'eval arguments'))})
    var.put(u'reservedWords', PyJs_Object_2845_)
    var.put(u'isKeyword$1', var.get(u'makePredicate')(Js(u'break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this let const class extends export import yield super')))
    var.put(u'nonASCIIidentifierStartChars', Js(u'\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ae\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc'))
    var.put(u'nonASCIIidentifierChars', Js(u'\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d4-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d01-\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf8\u1cf9\u1dc0-\u1df5\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f'))
    var.put(u'nonASCIIidentifierStart', var.get(u'RegExp').create(((Js(u'[')+var.get(u'nonASCIIidentifierStartChars'))+Js(u']'))))
    var.put(u'nonASCIIidentifier', var.get(u'RegExp').create((((Js(u'[')+var.get(u'nonASCIIidentifierStartChars'))+var.get(u'nonASCIIidentifierChars'))+Js(u']'))))
    var.put(u'nonASCIIidentifierStartChars', var.put(u'nonASCIIidentifierChars', var.get(u"null")))
    var.put(u'astralIdentifierStartCodes', Js([Js(0.0), Js(11.0), Js(2.0), Js(25.0), Js(2.0), Js(18.0), Js(2.0), Js(1.0), Js(2.0), Js(14.0), Js(3.0), Js(13.0), Js(35.0), Js(122.0), Js(70.0), Js(52.0), Js(268.0), Js(28.0), Js(4.0), Js(48.0), Js(48.0), Js(31.0), Js(17.0), Js(26.0), Js(6.0), Js(37.0), Js(11.0), Js(29.0), Js(3.0), Js(35.0), Js(5.0), Js(7.0), Js(2.0), Js(4.0), Js(43.0), Js(157.0), Js(19.0), Js(35.0), Js(5.0), Js(35.0), Js(5.0), Js(39.0), Js(9.0), Js(51.0), Js(157.0), Js(310.0), Js(10.0), Js(21.0), Js(11.0), Js(7.0), Js(153.0), Js(5.0), Js(3.0), Js(0.0), Js(2.0), Js(43.0), Js(2.0), Js(1.0), Js(4.0), Js(0.0), Js(3.0), Js(22.0), Js(11.0), Js(22.0), Js(10.0), Js(30.0), Js(66.0), Js(18.0), Js(2.0), Js(1.0), Js(11.0), Js(21.0), Js(11.0), Js(25.0), Js(71.0), Js(55.0), Js(7.0), Js(1.0), Js(65.0), Js(0.0), Js(16.0), Js(3.0), Js(2.0), Js(2.0), Js(2.0), Js(26.0), Js(45.0), Js(28.0), Js(4.0), Js(28.0), Js(36.0), Js(7.0), Js(2.0), Js(27.0), Js(28.0), Js(53.0), Js(11.0), Js(21.0), Js(11.0), Js(18.0), Js(14.0), Js(17.0), Js(111.0), Js(72.0), Js(56.0), Js(50.0), Js(14.0), Js(50.0), Js(785.0), Js(52.0), Js(76.0), Js(44.0), Js(33.0), Js(24.0), Js(27.0), Js(35.0), Js(42.0), Js(34.0), Js(4.0), Js(0.0), Js(13.0), Js(47.0), Js(15.0), Js(3.0), Js(22.0), Js(0.0), Js(2.0), Js(0.0), Js(36.0), Js(17.0), Js(2.0), Js(24.0), Js(85.0), Js(6.0), Js(2.0), Js(0.0), Js(2.0), Js(3.0), Js(2.0), Js(14.0), Js(2.0), Js(9.0), Js(8.0), Js(46.0), Js(39.0), Js(7.0), Js(3.0), Js(1.0), Js(3.0), Js(21.0), Js(2.0), Js(6.0), Js(2.0), Js(1.0), Js(2.0), Js(4.0), Js(4.0), Js(0.0), Js(19.0), Js(0.0), Js(13.0), Js(4.0), Js(159.0), Js(52.0), Js(19.0), Js(3.0), Js(54.0), Js(47.0), Js(21.0), Js(1.0), Js(2.0), Js(0.0), Js(185.0), Js(46.0), Js(42.0), Js(3.0), Js(37.0), Js(47.0), Js(21.0), Js(0.0), Js(60.0), Js(42.0), Js(86.0), Js(25.0), Js(391.0), Js(63.0), Js(32.0), Js(0.0), Js(449.0), Js(56.0), Js(264.0), Js(8.0), Js(2.0), Js(36.0), Js(18.0), Js(0.0), Js(50.0), Js(29.0), Js(881.0), Js(921.0), Js(103.0), Js(110.0), Js(18.0), Js(195.0), Js(2749.0), Js(1070.0), Js(4050.0), Js(582.0), Js(8634.0), Js(568.0), Js(8.0), Js(30.0), Js(114.0), Js(29.0), Js(19.0), Js(47.0), Js(17.0), Js(3.0), Js(32.0), Js(20.0), Js(6.0), Js(18.0), Js(881.0), Js(68.0), Js(12.0), Js(0.0), Js(67.0), Js(12.0), Js(65.0), Js(0.0), Js(32.0), Js(6124.0), Js(20.0), Js(754.0), Js(9486.0), Js(1.0), Js(3071.0), Js(106.0), Js(6.0), Js(12.0), Js(4.0), Js(8.0), Js(8.0), Js(9.0), Js(5991.0), Js(84.0), Js(2.0), Js(70.0), Js(2.0), Js(1.0), Js(3.0), Js(0.0), Js(3.0), Js(1.0), Js(3.0), Js(3.0), Js(2.0), Js(11.0), Js(2.0), Js(0.0), Js(2.0), Js(6.0), Js(2.0), Js(64.0), Js(2.0), Js(3.0), Js(3.0), Js(7.0), Js(2.0), Js(6.0), Js(2.0), Js(27.0), Js(2.0), Js(3.0), Js(2.0), Js(4.0), Js(2.0), Js(0.0), Js(4.0), Js(6.0), Js(2.0), Js(339.0), Js(3.0), Js(24.0), Js(2.0), Js(24.0), Js(2.0), Js(30.0), Js(2.0), Js(24.0), Js(2.0), Js(30.0), Js(2.0), Js(24.0), Js(2.0), Js(30.0), Js(2.0), Js(24.0), Js(2.0), Js(30.0), Js(2.0), Js(24.0), Js(2.0), Js(7.0), Js(4149.0), Js(196.0), Js(60.0), Js(67.0), Js(1213.0), Js(3.0), Js(2.0), Js(26.0), Js(2.0), Js(1.0), Js(2.0), Js(0.0), Js(3.0), Js(0.0), Js(2.0), Js(9.0), Js(2.0), Js(3.0), Js(2.0), Js(0.0), Js(2.0), Js(0.0), Js(7.0), Js(0.0), Js(5.0), Js(0.0), Js(2.0), Js(0.0), Js(2.0), Js(0.0), Js(2.0), Js(2.0), Js(2.0), Js(1.0), Js(2.0), Js(0.0), Js(3.0), Js(0.0), Js(2.0), Js(0.0), Js(2.0), Js(0.0), Js(2.0), Js(0.0), Js(2.0), Js(0.0), Js(2.0), Js(1.0), Js(2.0), Js(0.0), Js(3.0), Js(3.0), Js(2.0), Js(6.0), Js(2.0), Js(3.0), Js(2.0), Js(3.0), Js(2.0), Js(0.0), Js(2.0), Js(9.0), Js(2.0), Js(16.0), Js(6.0), Js(2.0), Js(2.0), Js(4.0), Js(2.0), Js(16.0), Js(4421.0), Js(42710.0), Js(42.0), Js(4148.0), Js(12.0), Js(221.0), Js(3.0), Js(5761.0), Js(10591.0), Js(541.0)]))
    var.put(u'astralIdentifierCodes', Js([Js(509.0), Js(0.0), Js(227.0), Js(0.0), Js(150.0), Js(4.0), Js(294.0), Js(9.0), Js(1368.0), Js(2.0), Js(2.0), Js(1.0), Js(6.0), Js(3.0), Js(41.0), Js(2.0), Js(5.0), Js(0.0), Js(166.0), Js(1.0), Js(1306.0), Js(2.0), Js(54.0), Js(14.0), Js(32.0), Js(9.0), Js(16.0), Js(3.0), Js(46.0), Js(10.0), Js(54.0), Js(9.0), Js(7.0), Js(2.0), Js(37.0), Js(13.0), Js(2.0), Js(9.0), Js(52.0), Js(0.0), Js(13.0), Js(2.0), Js(49.0), Js(13.0), Js(10.0), Js(2.0), Js(4.0), Js(9.0), Js(83.0), Js(11.0), Js(7.0), Js(0.0), Js(161.0), Js(11.0), Js(6.0), Js(9.0), Js(7.0), Js(3.0), Js(57.0), Js(0.0), Js(2.0), Js(6.0), Js(3.0), Js(1.0), Js(3.0), Js(2.0), Js(10.0), Js(0.0), Js(11.0), Js(1.0), Js(3.0), Js(6.0), Js(4.0), Js(4.0), Js(193.0), Js(17.0), Js(10.0), Js(9.0), Js(87.0), Js(19.0), Js(13.0), Js(9.0), Js(214.0), Js(6.0), Js(3.0), Js(8.0), Js(28.0), Js(1.0), Js(83.0), Js(16.0), Js(16.0), Js(9.0), Js(82.0), Js(12.0), Js(9.0), Js(9.0), Js(84.0), Js(14.0), Js(5.0), Js(9.0), Js(423.0), Js(9.0), Js(838.0), Js(7.0), Js(2.0), Js(7.0), Js(17.0), Js(9.0), Js(57.0), Js(21.0), Js(2.0), Js(13.0), Js(19882.0), Js(9.0), Js(135.0), Js(4.0), Js(60.0), Js(6.0), Js(26.0), Js(9.0), Js(1016.0), Js(45.0), Js(17.0), Js(3.0), Js(19723.0), Js(1.0), Js(5319.0), Js(4.0), Js(4.0), Js(5.0), Js(9.0), Js(7.0), Js(3.0), Js(6.0), Js(31.0), Js(3.0), Js(149.0), Js(2.0), Js(1418.0), Js(49.0), Js(513.0), Js(54.0), Js(5.0), Js(49.0), Js(9.0), Js(0.0), Js(15.0), Js(0.0), Js(23.0), Js(4.0), Js(2.0), Js(14.0), Js(1361.0), Js(6.0), Js(2.0), Js(16.0), Js(3.0), Js(6.0), Js(2.0), Js(1.0), Js(2.0), Js(4.0), Js(2214.0), Js(6.0), Js(110.0), Js(6.0), Js(6.0), Js(9.0), Js(792487.0), Js(239.0)]))
    pass
    pass
    pass
    PyJs_Object_2846_ = Js({u'sourceType':Js(u'script'),u'sourceFilename':var.get(u'undefined'),u'allowReturnOutsideFunction':Js(False),u'allowImportExportEverywhere':Js(False),u'allowSuperOutsideMethod':Js(False),u'plugins':Js([]),u'strictMode':var.get(u"null")})
    var.put(u'defaultOptions', PyJs_Object_2846_)
    pass
    pass
    @Js
    def PyJs_TokenType_2848_(label, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'TokenType':PyJs_TokenType_2848_, u'label':label}, var)
        var.registers([u'conf', u'label'])
        PyJs_Object_2849_ = Js({})
        var.put(u'conf', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else PyJs_Object_2849_))
        var.get(u'_classCallCheck$2')(var.get(u"this"), var.get(u'TokenType'))
        var.get(u"this").put(u'label', var.get(u'label'))
        var.get(u"this").put(u'keyword', var.get(u'conf').get(u'keyword'))
        var.get(u"this").put(u'beforeExpr', var.get(u'conf').get(u'beforeExpr').neg().neg())
        var.get(u"this").put(u'startsExpr', var.get(u'conf').get(u'startsExpr').neg().neg())
        var.get(u"this").put(u'rightAssociative', var.get(u'conf').get(u'rightAssociative').neg().neg())
        var.get(u"this").put(u'isLoop', var.get(u'conf').get(u'isLoop').neg().neg())
        var.get(u"this").put(u'isAssign', var.get(u'conf').get(u'isAssign').neg().neg())
        var.get(u"this").put(u'prefix', var.get(u'conf').get(u'prefix').neg().neg())
        var.get(u"this").put(u'postfix', var.get(u'conf').get(u'postfix').neg().neg())
        var.get(u"this").put(u'binop', (var.get(u'conf').get(u'binop') or var.get(u"null")))
        var.get(u"this").put(u'updateContext', var.get(u"null"))
    PyJs_TokenType_2848_._set_name(u'TokenType')
    var.put(u'TokenType', PyJs_TokenType_2848_)
    pass
    PyJs_Object_2851_ = Js({u'beforeExpr':var.get(u'true')})
    var.put(u'beforeExpr', PyJs_Object_2851_)
    PyJs_Object_2852_ = Js({u'startsExpr':var.get(u'true')})
    var.put(u'startsExpr', PyJs_Object_2852_)
    PyJs_Object_2854_ = Js({u'beforeExpr':var.get(u'true'),u'startsExpr':var.get(u'true')})
    PyJs_Object_2855_ = Js({u'beforeExpr':var.get(u'true'),u'startsExpr':var.get(u'true')})
    PyJs_Object_2856_ = Js({u'beforeExpr':var.get(u'true'),u'startsExpr':var.get(u'true')})
    PyJs_Object_2857_ = Js({u'beforeExpr':var.get(u'true'),u'startsExpr':var.get(u'true')})
    PyJs_Object_2858_ = Js({u'beforeExpr':var.get(u'true'),u'startsExpr':var.get(u'true')})
    PyJs_Object_2859_ = Js({u'beforeExpr':var.get(u'true'),u'isAssign':var.get(u'true')})
    PyJs_Object_2860_ = Js({u'beforeExpr':var.get(u'true'),u'isAssign':var.get(u'true')})
    PyJs_Object_2861_ = Js({u'prefix':var.get(u'true'),u'postfix':var.get(u'true'),u'startsExpr':var.get(u'true')})
    PyJs_Object_2862_ = Js({u'beforeExpr':var.get(u'true'),u'prefix':var.get(u'true'),u'startsExpr':var.get(u'true')})
    PyJs_Object_2863_ = Js({u'beforeExpr':var.get(u'true'),u'binop':Js(9.0),u'prefix':var.get(u'true'),u'startsExpr':var.get(u'true')})
    PyJs_Object_2864_ = Js({u'beforeExpr':var.get(u'true'),u'binop':Js(11.0),u'rightAssociative':var.get(u'true')})
    PyJs_Object_2853_ = Js({u'num':var.get(u'TokenType').create(Js(u'num'), var.get(u'startsExpr')),u'regexp':var.get(u'TokenType').create(Js(u'regexp'), var.get(u'startsExpr')),u'string':var.get(u'TokenType').create(Js(u'string'), var.get(u'startsExpr')),u'name':var.get(u'TokenType').create(Js(u'name'), var.get(u'startsExpr')),u'eof':var.get(u'TokenType').create(Js(u'eof')),u'bracketL':var.get(u'TokenType').create(Js(u'['), PyJs_Object_2854_),u'bracketR':var.get(u'TokenType').create(Js(u']')),u'braceL':var.get(u'TokenType').create(Js(u'{'), PyJs_Object_2855_),u'braceBarL':var.get(u'TokenType').create(Js(u'{|'), PyJs_Object_2856_),u'braceR':var.get(u'TokenType').create(Js(u'}')),u'braceBarR':var.get(u'TokenType').create(Js(u'|}')),u'parenL':var.get(u'TokenType').create(Js(u'('), PyJs_Object_2857_),u'parenR':var.get(u'TokenType').create(Js(u')')),u'comma':var.get(u'TokenType').create(Js(u','), var.get(u'beforeExpr')),u'semi':var.get(u'TokenType').create(Js(u';'), var.get(u'beforeExpr')),u'colon':var.get(u'TokenType').create(Js(u':'), var.get(u'beforeExpr')),u'doubleColon':var.get(u'TokenType').create(Js(u'::'), var.get(u'beforeExpr')),u'dot':var.get(u'TokenType').create(Js(u'.')),u'question':var.get(u'TokenType').create(Js(u'?'), var.get(u'beforeExpr')),u'arrow':var.get(u'TokenType').create(Js(u'=>'), var.get(u'beforeExpr')),u'template':var.get(u'TokenType').create(Js(u'template')),u'ellipsis':var.get(u'TokenType').create(Js(u'...'), var.get(u'beforeExpr')),u'backQuote':var.get(u'TokenType').create(Js(u'`'), var.get(u'startsExpr')),u'dollarBraceL':var.get(u'TokenType').create(Js(u'${'), PyJs_Object_2858_),u'at':var.get(u'TokenType').create(Js(u'@')),u'eq':var.get(u'TokenType').create(Js(u'='), PyJs_Object_2859_),u'assign':var.get(u'TokenType').create(Js(u'_='), PyJs_Object_2860_),u'incDec':var.get(u'TokenType').create(Js(u'++/--'), PyJs_Object_2861_),u'prefix':var.get(u'TokenType').create(Js(u'prefix'), PyJs_Object_2862_),u'logicalOR':var.get(u'binop')(Js(u'||'), Js(1.0)),u'logicalAND':var.get(u'binop')(Js(u'&&'), Js(2.0)),u'bitwiseOR':var.get(u'binop')(Js(u'|'), Js(3.0)),u'bitwiseXOR':var.get(u'binop')(Js(u'^'), Js(4.0)),u'bitwiseAND':var.get(u'binop')(Js(u'&'), Js(5.0)),u'equality':var.get(u'binop')(Js(u'==/!='), Js(6.0)),u'relational':var.get(u'binop')(Js(u'</>'), Js(7.0)),u'bitShift':var.get(u'binop')(Js(u'<</>>'), Js(8.0)),u'plusMin':var.get(u'TokenType').create(Js(u'+/-'), PyJs_Object_2863_),u'modulo':var.get(u'binop')(Js(u'%'), Js(10.0)),u'star':var.get(u'binop')(Js(u'*'), Js(10.0)),u'slash':var.get(u'binop')(Js(u'/'), Js(10.0)),u'exponent':var.get(u'TokenType').create(Js(u'**'), PyJs_Object_2864_)})
    var.put(u'types', PyJs_Object_2853_)
    PyJs_Object_2865_ = Js({})
    var.put(u'keywords', PyJs_Object_2865_)
    pass
    var.get(u'kw')(Js(u'break'))
    var.get(u'kw')(Js(u'case'), var.get(u'beforeExpr'))
    var.get(u'kw')(Js(u'catch'))
    var.get(u'kw')(Js(u'continue'))
    var.get(u'kw')(Js(u'debugger'))
    var.get(u'kw')(Js(u'default'), var.get(u'beforeExpr'))
    PyJs_Object_2867_ = Js({u'isLoop':var.get(u'true'),u'beforeExpr':var.get(u'true')})
    var.get(u'kw')(Js(u'do'), PyJs_Object_2867_)
    var.get(u'kw')(Js(u'else'), var.get(u'beforeExpr'))
    var.get(u'kw')(Js(u'finally'))
    PyJs_Object_2868_ = Js({u'isLoop':var.get(u'true')})
    var.get(u'kw')(Js(u'for'), PyJs_Object_2868_)
    var.get(u'kw')(Js(u'function'), var.get(u'startsExpr'))
    var.get(u'kw')(Js(u'if'))
    var.get(u'kw')(Js(u'return'), var.get(u'beforeExpr'))
    var.get(u'kw')(Js(u'switch'))
    var.get(u'kw')(Js(u'throw'), var.get(u'beforeExpr'))
    var.get(u'kw')(Js(u'try'))
    var.get(u'kw')(Js(u'var'))
    var.get(u'kw')(Js(u'let'))
    var.get(u'kw')(Js(u'const'))
    PyJs_Object_2869_ = Js({u'isLoop':var.get(u'true')})
    var.get(u'kw')(Js(u'while'), PyJs_Object_2869_)
    var.get(u'kw')(Js(u'with'))
    PyJs_Object_2870_ = Js({u'beforeExpr':var.get(u'true'),u'startsExpr':var.get(u'true')})
    var.get(u'kw')(Js(u'new'), PyJs_Object_2870_)
    var.get(u'kw')(Js(u'this'), var.get(u'startsExpr'))
    var.get(u'kw')(Js(u'super'), var.get(u'startsExpr'))
    var.get(u'kw')(Js(u'class'))
    var.get(u'kw')(Js(u'extends'), var.get(u'beforeExpr'))
    var.get(u'kw')(Js(u'export'))
    var.get(u'kw')(Js(u'import'))
    PyJs_Object_2871_ = Js({u'beforeExpr':var.get(u'true'),u'startsExpr':var.get(u'true')})
    var.get(u'kw')(Js(u'yield'), PyJs_Object_2871_)
    var.get(u'kw')(Js(u'null'), var.get(u'startsExpr'))
    var.get(u'kw')(Js(u'true'), var.get(u'startsExpr'))
    var.get(u'kw')(Js(u'false'), var.get(u'startsExpr'))
    PyJs_Object_2872_ = Js({u'beforeExpr':var.get(u'true'),u'binop':Js(7.0)})
    var.get(u'kw')(Js(u'in'), PyJs_Object_2872_)
    PyJs_Object_2873_ = Js({u'beforeExpr':var.get(u'true'),u'binop':Js(7.0)})
    var.get(u'kw')(Js(u'instanceof'), PyJs_Object_2873_)
    PyJs_Object_2874_ = Js({u'beforeExpr':var.get(u'true'),u'prefix':var.get(u'true'),u'startsExpr':var.get(u'true')})
    var.get(u'kw')(Js(u'typeof'), PyJs_Object_2874_)
    PyJs_Object_2875_ = Js({u'beforeExpr':var.get(u'true'),u'prefix':var.get(u'true'),u'startsExpr':var.get(u'true')})
    var.get(u'kw')(Js(u'void'), PyJs_Object_2875_)
    PyJs_Object_2876_ = Js({u'beforeExpr':var.get(u'true'),u'prefix':var.get(u'true'),u'startsExpr':var.get(u'true')})
    var.get(u'kw')(Js(u'delete'), PyJs_Object_2876_)
    var.put(u'lineBreak', JsRegExp(u'/\\r\\n?|\\n|\\u2028|\\u2029/'))
    var.put(u'lineBreakG', var.get(u'RegExp').create(var.get(u'lineBreak').get(u'source'), Js(u'g')))
    pass
    var.put(u'nonASCIIwhitespace', JsRegExp(u'/[\\u1680\\u180e\\u2000-\\u200a\\u202f\\u205f\\u3000\\ufeff]/'))
    pass
    @Js
    def PyJs_TokContext_2877_(token, isExpr, preserveSpace, override, this, arguments, var=var):
        var = Scope({u'TokContext':PyJs_TokContext_2877_, u'this':this, u'token':token, u'isExpr':isExpr, u'arguments':arguments, u'preserveSpace':preserveSpace, u'override':override}, var)
        var.registers([u'override', u'token', u'isExpr', u'preserveSpace'])
        var.get(u'_classCallCheck$3')(var.get(u"this"), var.get(u'TokContext'))
        var.get(u"this").put(u'token', var.get(u'token'))
        var.get(u"this").put(u'isExpr', var.get(u'isExpr').neg().neg())
        var.get(u"this").put(u'preserveSpace', var.get(u'preserveSpace').neg().neg())
        var.get(u"this").put(u'override', var.get(u'override'))
    PyJs_TokContext_2877_._set_name(u'TokContext')
    var.put(u'TokContext', PyJs_TokContext_2877_)
    @Js
    def PyJs_anonymous_2879_(p, this, arguments, var=var):
        var = Scope({u'this':this, u'p':p, u'arguments':arguments}, var)
        var.registers([u'p'])
        return var.get(u'p').callprop(u'readTmplToken')
    PyJs_anonymous_2879_._set_name(u'anonymous')
    PyJs_Object_2878_ = Js({u'braceStatement':var.get(u'TokContext').create(Js(u'{'), Js(False)),u'braceExpression':var.get(u'TokContext').create(Js(u'{'), var.get(u'true')),u'templateQuasi':var.get(u'TokContext').create(Js(u'${'), var.get(u'true')),u'parenStatement':var.get(u'TokContext').create(Js(u'('), Js(False)),u'parenExpression':var.get(u'TokContext').create(Js(u'('), var.get(u'true')),u'template':var.get(u'TokContext').create(Js(u'`'), var.get(u'true'), var.get(u'true'), PyJs_anonymous_2879_),u'functionExpression':var.get(u'TokContext').create(Js(u'function'), var.get(u'true'))})
    var.put(u'types$1', PyJs_Object_2878_)
    @Js
    def PyJs_anonymous_2880_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'out'])
        if PyJsStrictEq(var.get(u"this").get(u'state').get(u'context').get(u'length'),Js(1.0)):
            var.get(u"this").get(u'state').put(u'exprAllowed', var.get(u'true'))
            return var.get('undefined')
        var.put(u'out', var.get(u"this").get(u'state').get(u'context').callprop(u'pop'))
        if (PyJsStrictEq(var.get(u'out'),var.get(u'types$1').get(u'braceStatement')) and PyJsStrictEq(var.get(u"this").callprop(u'curContext'),var.get(u'types$1').get(u'functionExpression'))):
            var.get(u"this").get(u'state').get(u'context').callprop(u'pop')
            var.get(u"this").get(u'state').put(u'exprAllowed', Js(False))
        else:
            if PyJsStrictEq(var.get(u'out'),var.get(u'types$1').get(u'templateQuasi')):
                var.get(u"this").get(u'state').put(u'exprAllowed', var.get(u'true'))
            else:
                var.get(u"this").get(u'state').put(u'exprAllowed', var.get(u'out').get(u'isExpr').neg())
    PyJs_anonymous_2880_._set_name(u'anonymous')
    var.get(u'types').get(u'parenR').put(u'updateContext', var.get(u'types').get(u'braceR').put(u'updateContext', PyJs_anonymous_2880_))
    @Js
    def PyJs_anonymous_2881_(prevType, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'prevType':prevType}, var)
        var.registers([u'prevType'])
        var.get(u"this").get(u'state').put(u'exprAllowed', Js(False))
        if ((PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'_let')) or PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'_const'))) or PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'_var'))):
            if var.get(u'lineBreak').callprop(u'test', var.get(u"this").get(u'input').callprop(u'slice', var.get(u"this").get(u'state').get(u'end'))):
                var.get(u"this").get(u'state').put(u'exprAllowed', var.get(u'true'))
    PyJs_anonymous_2881_._set_name(u'anonymous')
    var.get(u'types').get(u'name').put(u'updateContext', PyJs_anonymous_2881_)
    @Js
    def PyJs_anonymous_2882_(prevType, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'prevType':prevType}, var)
        var.registers([u'prevType'])
        var.get(u"this").get(u'state').get(u'context').callprop(u'push', (var.get(u'types$1').get(u'braceStatement') if var.get(u"this").callprop(u'braceIsBlock', var.get(u'prevType')) else var.get(u'types$1').get(u'braceExpression')))
        var.get(u"this").get(u'state').put(u'exprAllowed', var.get(u'true'))
    PyJs_anonymous_2882_._set_name(u'anonymous')
    var.get(u'types').get(u'braceL').put(u'updateContext', PyJs_anonymous_2882_)
    @Js
    def PyJs_anonymous_2883_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").get(u'state').get(u'context').callprop(u'push', var.get(u'types$1').get(u'templateQuasi'))
        var.get(u"this").get(u'state').put(u'exprAllowed', var.get(u'true'))
    PyJs_anonymous_2883_._set_name(u'anonymous')
    var.get(u'types').get(u'dollarBraceL').put(u'updateContext', PyJs_anonymous_2883_)
    @Js
    def PyJs_anonymous_2884_(prevType, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'prevType':prevType}, var)
        var.registers([u'prevType', u'statementParens'])
        var.put(u'statementParens', (((PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'_if')) or PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'_for'))) or PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'_with'))) or PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'_while'))))
        var.get(u"this").get(u'state').get(u'context').callprop(u'push', (var.get(u'types$1').get(u'parenStatement') if var.get(u'statementParens') else var.get(u'types$1').get(u'parenExpression')))
        var.get(u"this").get(u'state').put(u'exprAllowed', var.get(u'true'))
    PyJs_anonymous_2884_._set_name(u'anonymous')
    var.get(u'types').get(u'parenL').put(u'updateContext', PyJs_anonymous_2884_)
    @Js
    def PyJs_anonymous_2885_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        pass
    PyJs_anonymous_2885_._set_name(u'anonymous')
    var.get(u'types').get(u'incDec').put(u'updateContext', PyJs_anonymous_2885_)
    @Js
    def PyJs_anonymous_2886_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if PyJsStrictNeq(var.get(u"this").callprop(u'curContext'),var.get(u'types$1').get(u'braceStatement')):
            var.get(u"this").get(u'state').get(u'context').callprop(u'push', var.get(u'types$1').get(u'functionExpression'))
        var.get(u"this").get(u'state').put(u'exprAllowed', Js(False))
    PyJs_anonymous_2886_._set_name(u'anonymous')
    var.get(u'types').get(u'_function').put(u'updateContext', PyJs_anonymous_2886_)
    @Js
    def PyJs_anonymous_2887_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if PyJsStrictEq(var.get(u"this").callprop(u'curContext'),var.get(u'types$1').get(u'template')):
            var.get(u"this").get(u'state').get(u'context').callprop(u'pop')
        else:
            var.get(u"this").get(u'state').get(u'context').callprop(u'push', var.get(u'types$1').get(u'template'))
        var.get(u"this").get(u'state').put(u'exprAllowed', Js(False))
    PyJs_anonymous_2887_._set_name(u'anonymous')
    var.get(u'types').get(u'backQuote').put(u'updateContext', PyJs_anonymous_2887_)
    pass
    @Js
    def PyJs_Position_2888_(line, col, this, arguments, var=var):
        var = Scope({u'this':this, u'Position':PyJs_Position_2888_, u'line':line, u'col':col, u'arguments':arguments}, var)
        var.registers([u'line', u'col'])
        var.get(u'_classCallCheck$4')(var.get(u"this"), var.get(u'Position'))
        var.get(u"this").put(u'line', var.get(u'line'))
        var.get(u"this").put(u'column', var.get(u'col'))
    PyJs_Position_2888_._set_name(u'Position')
    var.put(u'Position', PyJs_Position_2888_)
    @Js
    def PyJs_SourceLocation_2889_(start, end, this, arguments, var=var):
        var = Scope({u'this':this, u'start':start, u'end':end, u'arguments':arguments, u'SourceLocation':PyJs_SourceLocation_2889_}, var)
        var.registers([u'start', u'end'])
        var.get(u'_classCallCheck$4')(var.get(u"this"), var.get(u'SourceLocation'))
        var.get(u"this").put(u'start', var.get(u'start'))
        var.get(u"this").put(u'end', var.get(u'end'))
    PyJs_SourceLocation_2889_._set_name(u'SourceLocation')
    var.put(u'SourceLocation', PyJs_SourceLocation_2889_)
    pass
    pass
    @Js
    def PyJs_anonymous_2890_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'State'])
        @Js
        def PyJsHoisted_State_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            var.get(u'_classCallCheck$5')(var.get(u"this"), var.get(u'State'))
        PyJsHoisted_State_.func_name = u'State'
        var.put(u'State', PyJsHoisted_State_)
        pass
        @Js
        def PyJs_init_2891_(options, input, this, arguments, var=var):
            var = Scope({u'this':this, u'input':input, u'init':PyJs_init_2891_, u'options':options, u'arguments':arguments}, var)
            var.registers([u'input', u'options'])
            var.get(u"this").put(u'strict', (Js(False) if PyJsStrictEq(var.get(u'options').get(u'strictMode'),Js(False)) else PyJsStrictEq(var.get(u'options').get(u'sourceType'),Js(u'module'))))
            var.get(u"this").put(u'input', var.get(u'input'))
            var.get(u"this").put(u'potentialArrowAt', (-Js(1.0)))
            var.get(u"this").put(u'inMethod', var.get(u"this").put(u'inFunction', var.get(u"this").put(u'inGenerator', var.get(u"this").put(u'inAsync', var.get(u"this").put(u'inType', Js(False))))))
            var.get(u"this").put(u'labels', Js([]))
            var.get(u"this").put(u'decorators', Js([]))
            var.get(u"this").put(u'tokens', Js([]))
            var.get(u"this").put(u'comments', Js([]))
            var.get(u"this").put(u'trailingComments', Js([]))
            var.get(u"this").put(u'leadingComments', Js([]))
            var.get(u"this").put(u'commentStack', Js([]))
            var.get(u"this").put(u'pos', var.get(u"this").put(u'lineStart', Js(0.0)))
            var.get(u"this").put(u'curLine', Js(1.0))
            var.get(u"this").put(u'type', var.get(u'types').get(u'eof'))
            var.get(u"this").put(u'value', var.get(u"null"))
            var.get(u"this").put(u'start', var.get(u"this").put(u'end', var.get(u"this").get(u'pos')))
            var.get(u"this").put(u'startLoc', var.get(u"this").put(u'endLoc', var.get(u"this").callprop(u'curPosition')))
            var.get(u"this").put(u'lastTokEndLoc', var.get(u"this").put(u'lastTokStartLoc', var.get(u"null")))
            var.get(u"this").put(u'lastTokStart', var.get(u"this").put(u'lastTokEnd', var.get(u"this").get(u'pos')))
            var.get(u"this").put(u'context', Js([var.get(u'types$1').get(u'braceStatement')]))
            var.get(u"this").put(u'exprAllowed', var.get(u'true'))
            var.get(u"this").put(u'containsEsc', var.get(u"this").put(u'containsOctal', Js(False)))
            var.get(u"this").put(u'octalPosition', var.get(u"null"))
            var.get(u"this").put(u'exportedIdentifiers', Js([]))
            return var.get(u"this")
        PyJs_init_2891_._set_name(u'init')
        var.get(u'State').get(u'prototype').put(u'init', PyJs_init_2891_)
        @Js
        def PyJs_curPosition_2892_(this, arguments, var=var):
            var = Scope({u'this':this, u'curPosition':PyJs_curPosition_2892_, u'arguments':arguments}, var)
            var.registers([])
            return var.get(u'Position').create(var.get(u"this").get(u'curLine'), (var.get(u"this").get(u'pos')-var.get(u"this").get(u'lineStart')))
        PyJs_curPosition_2892_._set_name(u'curPosition')
        var.get(u'State').get(u'prototype').put(u'curPosition', PyJs_curPosition_2892_)
        @Js
        def PyJs_clone_2893_(skipArrays, this, arguments, var=var):
            var = Scope({u'this':this, u'clone':PyJs_clone_2893_, u'skipArrays':skipArrays, u'arguments':arguments}, var)
            var.registers([u'state', u'val', u'key', u'skipArrays'])
            var.put(u'state', var.get(u'State').create())
            for PyJsTemp in var.get(u"this"):
                var.put(u'key', PyJsTemp)
                var.put(u'val', var.get(u"this").get(var.get(u'key')))
                if ((var.get(u'skipArrays').neg() or PyJsStrictEq(var.get(u'key'),Js(u'context'))) and var.get(u'Array').callprop(u'isArray', var.get(u'val'))):
                    var.put(u'val', var.get(u'val').callprop(u'slice'))
                var.get(u'state').put(var.get(u'key'), var.get(u'val'))
            return var.get(u'state')
        PyJs_clone_2893_._set_name(u'clone')
        var.get(u'State').get(u'prototype').put(u'clone', PyJs_clone_2893_)
        return var.get(u'State')
    PyJs_anonymous_2890_._set_name(u'anonymous')
    var.put(u'State', PyJs_anonymous_2890_())
    pass
    @Js
    def PyJs_Token_2894_(state, this, arguments, var=var):
        var = Scope({u'this':this, u'state':state, u'Token':PyJs_Token_2894_, u'arguments':arguments}, var)
        var.registers([u'state'])
        var.get(u'_classCallCheck$1')(var.get(u"this"), var.get(u'Token'))
        var.get(u"this").put(u'type', var.get(u'state').get(u'type'))
        var.get(u"this").put(u'value', var.get(u'state').get(u'value'))
        var.get(u"this").put(u'start', var.get(u'state').get(u'start'))
        var.get(u"this").put(u'end', var.get(u'state').get(u'end'))
        var.get(u"this").put(u'loc', var.get(u'SourceLocation').create(var.get(u'state').get(u'startLoc'), var.get(u'state').get(u'endLoc')))
    PyJs_Token_2894_._set_name(u'Token')
    var.put(u'Token', PyJs_Token_2894_)
    pass
    @Js
    def PyJs_anonymous_2895_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'Tokenizer'])
        @Js
        def PyJsHoisted_Tokenizer_(options, input, this, arguments, var=var):
            var = Scope({u'this':this, u'input':input, u'options':options, u'arguments':arguments}, var)
            var.registers([u'input', u'options'])
            var.get(u'_classCallCheck$1')(var.get(u"this"), var.get(u'Tokenizer'))
            var.get(u"this").put(u'state', var.get(u'State').create())
            var.get(u"this").get(u'state').callprop(u'init', var.get(u'options'), var.get(u'input'))
        PyJsHoisted_Tokenizer_.func_name = u'Tokenizer'
        var.put(u'Tokenizer', PyJsHoisted_Tokenizer_)
        pass
        @Js
        def PyJs_next_2896_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'next':PyJs_next_2896_}, var)
            var.registers([])
            if var.get(u"this").get(u'isLookahead').neg():
                var.get(u"this").get(u'state').get(u'tokens').callprop(u'push', var.get(u'Token').create(var.get(u"this").get(u'state')))
            var.get(u"this").get(u'state').put(u'lastTokEnd', var.get(u"this").get(u'state').get(u'end'))
            var.get(u"this").get(u'state').put(u'lastTokStart', var.get(u"this").get(u'state').get(u'start'))
            var.get(u"this").get(u'state').put(u'lastTokEndLoc', var.get(u"this").get(u'state').get(u'endLoc'))
            var.get(u"this").get(u'state').put(u'lastTokStartLoc', var.get(u"this").get(u'state').get(u'startLoc'))
            var.get(u"this").callprop(u'nextToken')
        PyJs_next_2896_._set_name(u'next')
        var.get(u'Tokenizer').get(u'prototype').put(u'next', PyJs_next_2896_)
        @Js
        def PyJs_eat_2897_(type, this, arguments, var=var):
            var = Scope({u'this':this, u'type':type, u'arguments':arguments, u'eat':PyJs_eat_2897_}, var)
            var.registers([u'type'])
            if var.get(u"this").callprop(u'match', var.get(u'type')):
                var.get(u"this").callprop(u'next')
                return var.get(u'true')
            else:
                return Js(False)
        PyJs_eat_2897_._set_name(u'eat')
        var.get(u'Tokenizer').get(u'prototype').put(u'eat', PyJs_eat_2897_)
        @Js
        def PyJs_match_2898_(type, this, arguments, var=var):
            var = Scope({u'this':this, u'type':type, u'arguments':arguments, u'match':PyJs_match_2898_}, var)
            var.registers([u'type'])
            return PyJsStrictEq(var.get(u"this").get(u'state').get(u'type'),var.get(u'type'))
        PyJs_match_2898_._set_name(u'match')
        var.get(u'Tokenizer').get(u'prototype').put(u'match', PyJs_match_2898_)
        @Js
        def PyJs_isKeyword_2899_(word, this, arguments, var=var):
            var = Scope({u'this':this, u'isKeyword':PyJs_isKeyword_2899_, u'word':word, u'arguments':arguments}, var)
            var.registers([u'word'])
            return var.get(u'isKeyword$1')(var.get(u'word'))
        PyJs_isKeyword_2899_._set_name(u'isKeyword')
        var.get(u'Tokenizer').get(u'prototype').put(u'isKeyword', PyJs_isKeyword_2899_)
        @Js
        def PyJs_lookahead_2900_(this, arguments, var=var):
            var = Scope({u'this':this, u'lookahead':PyJs_lookahead_2900_, u'arguments':arguments}, var)
            var.registers([u'curr', u'old'])
            var.put(u'old', var.get(u"this").get(u'state'))
            var.get(u"this").put(u'state', var.get(u'old').callprop(u'clone', var.get(u'true')))
            var.get(u"this").put(u'isLookahead', var.get(u'true'))
            var.get(u"this").callprop(u'next')
            var.get(u"this").put(u'isLookahead', Js(False))
            var.put(u'curr', var.get(u"this").get(u'state').callprop(u'clone', var.get(u'true')))
            var.get(u"this").put(u'state', var.get(u'old'))
            return var.get(u'curr')
        PyJs_lookahead_2900_._set_name(u'lookahead')
        var.get(u'Tokenizer').get(u'prototype').put(u'lookahead', PyJs_lookahead_2900_)
        @Js
        def PyJs_setStrict_2901_(strict, this, arguments, var=var):
            var = Scope({u'this':this, u'strict':strict, u'arguments':arguments, u'setStrict':PyJs_setStrict_2901_}, var)
            var.registers([u'strict'])
            var.get(u"this").get(u'state').put(u'strict', var.get(u'strict'))
            if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'num')).neg() and var.get(u"this").callprop(u'match', var.get(u'types').get(u'string')).neg()):
                return var.get('undefined')
            var.get(u"this").get(u'state').put(u'pos', var.get(u"this").get(u'state').get(u'start'))
            while (var.get(u"this").get(u'state').get(u'pos')<var.get(u"this").get(u'state').get(u'lineStart')):
                var.get(u"this").get(u'state').put(u'lineStart', (var.get(u"this").get(u'input').callprop(u'lastIndexOf', Js(u'\n'), (var.get(u"this").get(u'state').get(u'lineStart')-Js(2.0)))+Js(1.0)))
                var.get(u"this").get(u'state').put(u'curLine',Js(var.get(u"this").get(u'state').get(u'curLine').to_number())-Js(1))
            var.get(u"this").callprop(u'nextToken')
        PyJs_setStrict_2901_._set_name(u'setStrict')
        var.get(u'Tokenizer').get(u'prototype').put(u'setStrict', PyJs_setStrict_2901_)
        @Js
        def PyJs_curContext_2902_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'curContext':PyJs_curContext_2902_}, var)
            var.registers([])
            return var.get(u"this").get(u'state').get(u'context').get((var.get(u"this").get(u'state').get(u'context').get(u'length')-Js(1.0)))
        PyJs_curContext_2902_._set_name(u'curContext')
        var.get(u'Tokenizer').get(u'prototype').put(u'curContext', PyJs_curContext_2902_)
        @Js
        def PyJs_nextToken_2903_(this, arguments, var=var):
            var = Scope({u'this':this, u'nextToken':PyJs_nextToken_2903_, u'arguments':arguments}, var)
            var.registers([u'curContext'])
            var.put(u'curContext', var.get(u"this").callprop(u'curContext'))
            if (var.get(u'curContext').neg() or var.get(u'curContext').get(u'preserveSpace').neg()):
                var.get(u"this").callprop(u'skipSpace')
            var.get(u"this").get(u'state').put(u'containsOctal', Js(False))
            var.get(u"this").get(u'state').put(u'octalPosition', var.get(u"null"))
            var.get(u"this").get(u'state').put(u'start', var.get(u"this").get(u'state').get(u'pos'))
            var.get(u"this").get(u'state').put(u'startLoc', var.get(u"this").get(u'state').callprop(u'curPosition'))
            if (var.get(u"this").get(u'state').get(u'pos')>=var.get(u"this").get(u'input').get(u'length')):
                return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'eof'))
            if var.get(u'curContext').get(u'override'):
                return var.get(u'curContext').callprop(u'override', var.get(u"this"))
            else:
                return var.get(u"this").callprop(u'readToken', var.get(u"this").callprop(u'fullCharCodeAtPos'))
        PyJs_nextToken_2903_._set_name(u'nextToken')
        var.get(u'Tokenizer').get(u'prototype').put(u'nextToken', PyJs_nextToken_2903_)
        @Js
        def PyJs_readToken_2904_(code, this, arguments, var=var):
            var = Scope({u'this':this, u'readToken':PyJs_readToken_2904_, u'code':code, u'arguments':arguments}, var)
            var.registers([u'code'])
            if (var.get(u'isIdentifierStart')(var.get(u'code')) or PyJsStrictEq(var.get(u'code'),Js(92.0))):
                return var.get(u"this").callprop(u'readWord')
            else:
                return var.get(u"this").callprop(u'getTokenFromCode', var.get(u'code'))
        PyJs_readToken_2904_._set_name(u'readToken')
        var.get(u'Tokenizer').get(u'prototype').put(u'readToken', PyJs_readToken_2904_)
        @Js
        def PyJs_fullCharCodeAtPos_2905_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'fullCharCodeAtPos':PyJs_fullCharCodeAtPos_2905_}, var)
            var.registers([u'code', u'next'])
            var.put(u'code', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
            if ((var.get(u'code')<=Js(55295)) or (var.get(u'code')>=Js(57344))):
                return var.get(u'code')
            var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))))
            return (((var.get(u'code')<<Js(10.0))+var.get(u'next'))-Js(56613888))
        PyJs_fullCharCodeAtPos_2905_._set_name(u'fullCharCodeAtPos')
        var.get(u'Tokenizer').get(u'prototype').put(u'fullCharCodeAtPos', PyJs_fullCharCodeAtPos_2905_)
        @Js
        def PyJs_pushComment_2906_(block, text, start, end, startLoc, endLoc, this, arguments, var=var):
            var = Scope({u'end':end, u'this':this, u'text':text, u'pushComment':PyJs_pushComment_2906_, u'start':start, u'arguments':arguments, u'startLoc':startLoc, u'endLoc':endLoc, u'block':block}, var)
            var.registers([u'comment', u'end', u'text', u'start', u'startLoc', u'endLoc', u'block'])
            PyJs_Object_2907_ = Js({u'type':(Js(u'CommentBlock') if var.get(u'block') else Js(u'CommentLine')),u'value':var.get(u'text'),u'start':var.get(u'start'),u'end':var.get(u'end'),u'loc':var.get(u'SourceLocation').create(var.get(u'startLoc'), var.get(u'endLoc'))})
            var.put(u'comment', PyJs_Object_2907_)
            if var.get(u"this").get(u'isLookahead').neg():
                var.get(u"this").get(u'state').get(u'tokens').callprop(u'push', var.get(u'comment'))
                var.get(u"this").get(u'state').get(u'comments').callprop(u'push', var.get(u'comment'))
                var.get(u"this").callprop(u'addComment', var.get(u'comment'))
        PyJs_pushComment_2906_._set_name(u'pushComment')
        var.get(u'Tokenizer').get(u'prototype').put(u'pushComment', PyJs_pushComment_2906_)
        @Js
        def PyJs_skipBlockComment_2908_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'skipBlockComment':PyJs_skipBlockComment_2908_}, var)
            var.registers([u'start', u'end', u'match', u'startLoc'])
            var.put(u'startLoc', var.get(u"this").get(u'state').callprop(u'curPosition'))
            var.put(u'start', var.get(u"this").get(u'state').get(u'pos'))
            var.put(u'end', var.get(u"this").get(u'input').callprop(u'indexOf', Js(u'*/'), var.get(u"this").get(u'state').put(u'pos', Js(2.0), u'+')))
            if PyJsStrictEq(var.get(u'end'),(-Js(1.0))):
                var.get(u"this").callprop(u'raise', (var.get(u"this").get(u'state').get(u'pos')-Js(2.0)), Js(u'Unterminated comment'))
            var.get(u"this").get(u'state').put(u'pos', (var.get(u'end')+Js(2.0)))
            var.get(u'lineBreakG').put(u'lastIndex', var.get(u'start'))
            var.put(u'match', PyJsComma(Js(0.0), Js(None)))
            while (var.put(u'match', var.get(u'lineBreakG').callprop(u'exec', var.get(u"this").get(u'input'))) and (var.get(u'match').get(u'index')<var.get(u"this").get(u'state').get(u'pos'))):
                var.get(u"this").get(u'state').put(u'curLine',Js(var.get(u"this").get(u'state').get(u'curLine').to_number())+Js(1))
                var.get(u"this").get(u'state').put(u'lineStart', (var.get(u'match').get(u'index')+var.get(u'match').get(u'0').get(u'length')))
            var.get(u"this").callprop(u'pushComment', var.get(u'true'), var.get(u"this").get(u'input').callprop(u'slice', (var.get(u'start')+Js(2.0)), var.get(u'end')), var.get(u'start'), var.get(u"this").get(u'state').get(u'pos'), var.get(u'startLoc'), var.get(u"this").get(u'state').callprop(u'curPosition'))
        PyJs_skipBlockComment_2908_._set_name(u'skipBlockComment')
        var.get(u'Tokenizer').get(u'prototype').put(u'skipBlockComment', PyJs_skipBlockComment_2908_)
        @Js
        def PyJs_skipLineComment_2909_(startSkip, this, arguments, var=var):
            var = Scope({u'startSkip':startSkip, u'this':this, u'arguments':arguments, u'skipLineComment':PyJs_skipLineComment_2909_}, var)
            var.registers([u'startSkip', u'start', u'ch', u'startLoc'])
            var.put(u'start', var.get(u"this").get(u'state').get(u'pos'))
            var.put(u'startLoc', var.get(u"this").get(u'state').callprop(u'curPosition'))
            var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').put(u'pos', var.get(u'startSkip'), u'+')))
            while (((((var.get(u"this").get(u'state').get(u'pos')<var.get(u"this").get(u'input').get(u'length')) and PyJsStrictNeq(var.get(u'ch'),Js(10.0))) and PyJsStrictNeq(var.get(u'ch'),Js(13.0))) and PyJsStrictNeq(var.get(u'ch'),Js(8232.0))) and PyJsStrictNeq(var.get(u'ch'),Js(8233.0))):
                var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
            var.get(u"this").callprop(u'pushComment', Js(False), var.get(u"this").get(u'input').callprop(u'slice', (var.get(u'start')+var.get(u'startSkip')), var.get(u"this").get(u'state').get(u'pos')), var.get(u'start'), var.get(u"this").get(u'state').get(u'pos'), var.get(u'startLoc'), var.get(u"this").get(u'state').callprop(u'curPosition'))
        PyJs_skipLineComment_2909_._set_name(u'skipLineComment')
        var.get(u'Tokenizer').get(u'prototype').put(u'skipLineComment', PyJs_skipLineComment_2909_)
        @Js
        def PyJs_skipSpace_2910_(this, arguments, var=var):
            var = Scope({u'this':this, u'skipSpace':PyJs_skipSpace_2910_, u'arguments':arguments}, var)
            var.registers([u'ch'])
            class JS_CONTINUE_LABEL_6c6f6f70(Exception): pass
            class JS_BREAK_LABEL_6c6f6f70(Exception): pass
            try:
                while (var.get(u"this").get(u'state').get(u'pos')<var.get(u"this").get(u'input').get(u'length')):
                    try:
                        var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
                        while 1:
                            SWITCHED = False
                            CONDITION = (var.get(u'ch'))
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(32.0)):
                                SWITCHED = True
                                pass
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(160.0)):
                                SWITCHED = True
                                var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                                break
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(13.0)):
                                SWITCHED = True
                                if PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))),Js(10.0)):
                                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(10.0)):
                                SWITCHED = True
                                pass
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(8232.0)):
                                SWITCHED = True
                                pass
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(8233.0)):
                                SWITCHED = True
                                var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                                var.get(u"this").get(u'state').put(u'curLine',Js(var.get(u"this").get(u'state').get(u'curLine').to_number())+Js(1))
                                var.get(u"this").get(u'state').put(u'lineStart', var.get(u"this").get(u'state').get(u'pos'))
                                break
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(47.0)):
                                SWITCHED = True
                                while 1:
                                    SWITCHED = False
                                    CONDITION = (var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))))
                                    if SWITCHED or PyJsStrictEq(CONDITION, Js(42.0)):
                                        SWITCHED = True
                                        var.get(u"this").callprop(u'skipBlockComment')
                                        break
                                    if SWITCHED or PyJsStrictEq(CONDITION, Js(47.0)):
                                        SWITCHED = True
                                        var.get(u"this").callprop(u'skipLineComment', Js(2.0))
                                        break
                                    if True:
                                        SWITCHED = True
                                        raise JS_BREAK_LABEL_6c6f6f70("Breaked")
                                    SWITCHED = True
                                    break
                                break
                            if True:
                                SWITCHED = True
                                if (((var.get(u'ch')>Js(8.0)) and (var.get(u'ch')<Js(14.0))) or ((var.get(u'ch')>=Js(5760.0)) and var.get(u'nonASCIIwhitespace').callprop(u'test', var.get(u'String').callprop(u'fromCharCode', var.get(u'ch'))))):
                                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                                else:
                                    raise JS_BREAK_LABEL_6c6f6f70("Breaked")
                            SWITCHED = True
                            break
                    except JS_CONTINUE_LABEL_6c6f6f70:
                        pass
            except JS_BREAK_LABEL_6c6f6f70:
                pass
        PyJs_skipSpace_2910_._set_name(u'skipSpace')
        var.get(u'Tokenizer').get(u'prototype').put(u'skipSpace', PyJs_skipSpace_2910_)
        @Js
        def PyJs_finishToken_2911_(type, val, this, arguments, var=var):
            var = Scope({u'this':this, u'type':type, u'arguments':arguments, u'val':val, u'finishToken':PyJs_finishToken_2911_}, var)
            var.registers([u'type', u'val', u'prevType'])
            var.get(u"this").get(u'state').put(u'end', var.get(u"this").get(u'state').get(u'pos'))
            var.get(u"this").get(u'state').put(u'endLoc', var.get(u"this").get(u'state').callprop(u'curPosition'))
            var.put(u'prevType', var.get(u"this").get(u'state').get(u'type'))
            var.get(u"this").get(u'state').put(u'type', var.get(u'type'))
            var.get(u"this").get(u'state').put(u'value', var.get(u'val'))
            var.get(u"this").callprop(u'updateContext', var.get(u'prevType'))
        PyJs_finishToken_2911_._set_name(u'finishToken')
        var.get(u'Tokenizer').get(u'prototype').put(u'finishToken', PyJs_finishToken_2911_)
        @Js
        def PyJs_readToken_dot_2912_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'readToken_dot':PyJs_readToken_dot_2912_}, var)
            var.registers([u'next2', u'next'])
            var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))))
            if ((var.get(u'next')>=Js(48.0)) and (var.get(u'next')<=Js(57.0))):
                return var.get(u"this").callprop(u'readNumber', var.get(u'true'))
            var.put(u'next2', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(2.0))))
            if (PyJsStrictEq(var.get(u'next'),Js(46.0)) and PyJsStrictEq(var.get(u'next2'),Js(46.0))):
                var.get(u"this").get(u'state').put(u'pos', Js(3.0), u'+')
                return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'ellipsis'))
            else:
                var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'dot'))
        PyJs_readToken_dot_2912_._set_name(u'readToken_dot')
        var.get(u'Tokenizer').get(u'prototype').put(u'readToken_dot', PyJs_readToken_dot_2912_)
        @Js
        def PyJs_readToken_slash_2913_(this, arguments, var=var):
            var = Scope({u'this':this, u'readToken_slash':PyJs_readToken_slash_2913_, u'arguments':arguments}, var)
            var.registers([u'next'])
            if var.get(u"this").get(u'state').get(u'exprAllowed'):
                var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                return var.get(u"this").callprop(u'readRegexp')
            var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))))
            if PyJsStrictEq(var.get(u'next'),Js(61.0)):
                return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'assign'), Js(2.0))
            else:
                return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'slash'), Js(1.0))
        PyJs_readToken_slash_2913_._set_name(u'readToken_slash')
        var.get(u'Tokenizer').get(u'prototype').put(u'readToken_slash', PyJs_readToken_slash_2913_)
        @Js
        def PyJs_readToken_mult_modulo_2914_(code, this, arguments, var=var):
            var = Scope({u'this':this, u'readToken_mult_modulo':PyJs_readToken_mult_modulo_2914_, u'code':code, u'arguments':arguments}, var)
            var.registers([u'width', u'code', u'type', u'next'])
            var.put(u'type', (var.get(u'types').get(u'star') if PyJsStrictEq(var.get(u'code'),Js(42.0)) else var.get(u'types').get(u'modulo')))
            var.put(u'width', Js(1.0))
            var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))))
            if PyJsStrictEq(var.get(u'next'),Js(42.0)):
                (var.put(u'width',Js(var.get(u'width').to_number())+Js(1))-Js(1))
                var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(2.0))))
                var.put(u'type', var.get(u'types').get(u'exponent'))
            if PyJsStrictEq(var.get(u'next'),Js(61.0)):
                (var.put(u'width',Js(var.get(u'width').to_number())+Js(1))-Js(1))
                var.put(u'type', var.get(u'types').get(u'assign'))
            return var.get(u"this").callprop(u'finishOp', var.get(u'type'), var.get(u'width'))
        PyJs_readToken_mult_modulo_2914_._set_name(u'readToken_mult_modulo')
        var.get(u'Tokenizer').get(u'prototype').put(u'readToken_mult_modulo', PyJs_readToken_mult_modulo_2914_)
        @Js
        def PyJs_readToken_pipe_amp_2915_(code, this, arguments, var=var):
            var = Scope({u'this':this, u'code':code, u'arguments':arguments, u'readToken_pipe_amp':PyJs_readToken_pipe_amp_2915_}, var)
            var.registers([u'code', u'next'])
            var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))))
            if PyJsStrictEq(var.get(u'next'),var.get(u'code')):
                return var.get(u"this").callprop(u'finishOp', (var.get(u'types').get(u'logicalOR') if PyJsStrictEq(var.get(u'code'),Js(124.0)) else var.get(u'types').get(u'logicalAND')), Js(2.0))
            if PyJsStrictEq(var.get(u'next'),Js(61.0)):
                return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'assign'), Js(2.0))
            if ((PyJsStrictEq(var.get(u'code'),Js(124.0)) and PyJsStrictEq(var.get(u'next'),Js(125.0))) and var.get(u"this").callprop(u'hasPlugin', Js(u'flow'))):
                return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'braceBarR'), Js(2.0))
            return var.get(u"this").callprop(u'finishOp', (var.get(u'types').get(u'bitwiseOR') if PyJsStrictEq(var.get(u'code'),Js(124.0)) else var.get(u'types').get(u'bitwiseAND')), Js(1.0))
        PyJs_readToken_pipe_amp_2915_._set_name(u'readToken_pipe_amp')
        var.get(u'Tokenizer').get(u'prototype').put(u'readToken_pipe_amp', PyJs_readToken_pipe_amp_2915_)
        @Js
        def PyJs_readToken_caret_2916_(this, arguments, var=var):
            var = Scope({u'this':this, u'readToken_caret':PyJs_readToken_caret_2916_, u'arguments':arguments}, var)
            var.registers([u'next'])
            var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))))
            if PyJsStrictEq(var.get(u'next'),Js(61.0)):
                return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'assign'), Js(2.0))
            else:
                return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'bitwiseXOR'), Js(1.0))
        PyJs_readToken_caret_2916_._set_name(u'readToken_caret')
        var.get(u'Tokenizer').get(u'prototype').put(u'readToken_caret', PyJs_readToken_caret_2916_)
        @Js
        def PyJs_readToken_plus_min_2917_(code, this, arguments, var=var):
            var = Scope({u'this':this, u'code':code, u'arguments':arguments, u'readToken_plus_min':PyJs_readToken_plus_min_2917_}, var)
            var.registers([u'code', u'next'])
            var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))))
            if PyJsStrictEq(var.get(u'next'),var.get(u'code')):
                if ((PyJsStrictEq(var.get(u'next'),Js(45.0)) and PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(2.0))),Js(62.0))) and var.get(u'lineBreak').callprop(u'test', var.get(u"this").get(u'input').callprop(u'slice', var.get(u"this").get(u'state').get(u'lastTokEnd'), var.get(u"this").get(u'state').get(u'pos')))):
                    var.get(u"this").callprop(u'skipLineComment', Js(3.0))
                    var.get(u"this").callprop(u'skipSpace')
                    return var.get(u"this").callprop(u'nextToken')
                return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'incDec'), Js(2.0))
            if PyJsStrictEq(var.get(u'next'),Js(61.0)):
                return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'assign'), Js(2.0))
            else:
                return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'plusMin'), Js(1.0))
        PyJs_readToken_plus_min_2917_._set_name(u'readToken_plus_min')
        var.get(u'Tokenizer').get(u'prototype').put(u'readToken_plus_min', PyJs_readToken_plus_min_2917_)
        @Js
        def PyJs_readToken_lt_gt_2918_(code, this, arguments, var=var):
            var = Scope({u'this':this, u'code':code, u'arguments':arguments, u'readToken_lt_gt':PyJs_readToken_lt_gt_2918_}, var)
            var.registers([u'code', u'size', u'next'])
            var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))))
            var.put(u'size', Js(1.0))
            if PyJsStrictEq(var.get(u'next'),var.get(u'code')):
                var.put(u'size', (Js(3.0) if (PyJsStrictEq(var.get(u'code'),Js(62.0)) and PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(2.0))),Js(62.0))) else Js(2.0)))
                if PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+var.get(u'size'))),Js(61.0)):
                    return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'assign'), (var.get(u'size')+Js(1.0)))
                return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'bitShift'), var.get(u'size'))
            if (((PyJsStrictEq(var.get(u'next'),Js(33.0)) and PyJsStrictEq(var.get(u'code'),Js(60.0))) and PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(2.0))),Js(45.0))) and PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(3.0))),Js(45.0))):
                if var.get(u"this").get(u'inModule'):
                    var.get(u"this").callprop(u'unexpected')
                var.get(u"this").callprop(u'skipLineComment', Js(4.0))
                var.get(u"this").callprop(u'skipSpace')
                return var.get(u"this").callprop(u'nextToken')
            if PyJsStrictEq(var.get(u'next'),Js(61.0)):
                var.put(u'size', Js(2.0))
            return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'relational'), var.get(u'size'))
        PyJs_readToken_lt_gt_2918_._set_name(u'readToken_lt_gt')
        var.get(u'Tokenizer').get(u'prototype').put(u'readToken_lt_gt', PyJs_readToken_lt_gt_2918_)
        @Js
        def PyJs_readToken_eq_excl_2919_(code, this, arguments, var=var):
            var = Scope({u'this':this, u'readToken_eq_excl':PyJs_readToken_eq_excl_2919_, u'code':code, u'arguments':arguments}, var)
            var.registers([u'code', u'next'])
            var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))))
            if PyJsStrictEq(var.get(u'next'),Js(61.0)):
                return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'equality'), (Js(3.0) if PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(2.0))),Js(61.0)) else Js(2.0)))
            if (PyJsStrictEq(var.get(u'code'),Js(61.0)) and PyJsStrictEq(var.get(u'next'),Js(62.0))):
                var.get(u"this").get(u'state').put(u'pos', Js(2.0), u'+')
                return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'arrow'))
            return var.get(u"this").callprop(u'finishOp', (var.get(u'types').get(u'eq') if PyJsStrictEq(var.get(u'code'),Js(61.0)) else var.get(u'types').get(u'prefix')), Js(1.0))
        PyJs_readToken_eq_excl_2919_._set_name(u'readToken_eq_excl')
        var.get(u'Tokenizer').get(u'prototype').put(u'readToken_eq_excl', PyJs_readToken_eq_excl_2919_)
        @Js
        def PyJs_getTokenFromCode_2920_(code, this, arguments, var=var):
            var = Scope({u'this':this, u'getTokenFromCode':PyJs_getTokenFromCode_2920_, u'code':code, u'arguments':arguments}, var)
            var.registers([u'code', u'next'])
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'code'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(46.0)):
                    SWITCHED = True
                    return var.get(u"this").callprop(u'readToken_dot')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(40.0)):
                    SWITCHED = True
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'parenL'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(41.0)):
                    SWITCHED = True
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'parenR'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(59.0)):
                    SWITCHED = True
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'semi'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(44.0)):
                    SWITCHED = True
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'comma'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(91.0)):
                    SWITCHED = True
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'bracketL'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(93.0)):
                    SWITCHED = True
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'bracketR'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(123.0)):
                    SWITCHED = True
                    if (var.get(u"this").callprop(u'hasPlugin', Js(u'flow')) and PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))),Js(124.0))):
                        return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'braceBarL'), Js(2.0))
                    else:
                        var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                        return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'braceL'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(125.0)):
                    SWITCHED = True
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'braceR'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(58.0)):
                    SWITCHED = True
                    if (var.get(u"this").callprop(u'hasPlugin', Js(u'functionBind')) and PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))),Js(58.0))):
                        return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'doubleColon'), Js(2.0))
                    else:
                        var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                        return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'colon'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(63.0)):
                    SWITCHED = True
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'question'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(64.0)):
                    SWITCHED = True
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'at'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(96.0)):
                    SWITCHED = True
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'backQuote'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(48.0)):
                    SWITCHED = True
                    var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))))
                    if (PyJsStrictEq(var.get(u'next'),Js(120.0)) or PyJsStrictEq(var.get(u'next'),Js(88.0))):
                        return var.get(u"this").callprop(u'readRadixNumber', Js(16.0))
                    if (PyJsStrictEq(var.get(u'next'),Js(111.0)) or PyJsStrictEq(var.get(u'next'),Js(79.0))):
                        return var.get(u"this").callprop(u'readRadixNumber', Js(8.0))
                    if (PyJsStrictEq(var.get(u'next'),Js(98.0)) or PyJsStrictEq(var.get(u'next'),Js(66.0))):
                        return var.get(u"this").callprop(u'readRadixNumber', Js(2.0))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(49.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(50.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(51.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(52.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(53.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(54.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(55.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(56.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(57.0)):
                    SWITCHED = True
                    return var.get(u"this").callprop(u'readNumber', Js(False))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(34.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(39.0)):
                    SWITCHED = True
                    return var.get(u"this").callprop(u'readString', var.get(u'code'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(47.0)):
                    SWITCHED = True
                    return var.get(u"this").callprop(u'readToken_slash')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(37.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(42.0)):
                    SWITCHED = True
                    return var.get(u"this").callprop(u'readToken_mult_modulo', var.get(u'code'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(124.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(38.0)):
                    SWITCHED = True
                    return var.get(u"this").callprop(u'readToken_pipe_amp', var.get(u'code'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(94.0)):
                    SWITCHED = True
                    return var.get(u"this").callprop(u'readToken_caret')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(43.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(45.0)):
                    SWITCHED = True
                    return var.get(u"this").callprop(u'readToken_plus_min', var.get(u'code'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(60.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(62.0)):
                    SWITCHED = True
                    return var.get(u"this").callprop(u'readToken_lt_gt', var.get(u'code'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(61.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(33.0)):
                    SWITCHED = True
                    return var.get(u"this").callprop(u'readToken_eq_excl', var.get(u'code'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(126.0)):
                    SWITCHED = True
                    return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'prefix'), Js(1.0))
                SWITCHED = True
                break
            var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'pos'), ((Js(u"Unexpected character '")+var.get(u'codePointToString')(var.get(u'code')))+Js(u"'")))
        PyJs_getTokenFromCode_2920_._set_name(u'getTokenFromCode')
        var.get(u'Tokenizer').get(u'prototype').put(u'getTokenFromCode', PyJs_getTokenFromCode_2920_)
        @Js
        def PyJs_finishOp_2921_(type, size, this, arguments, var=var):
            var = Scope({u'this':this, u'finishOp':PyJs_finishOp_2921_, u'type':type, u'arguments':arguments, u'size':size}, var)
            var.registers([u'type', u'str', u'size'])
            var.put(u'str', var.get(u"this").get(u'input').callprop(u'slice', var.get(u"this").get(u'state').get(u'pos'), (var.get(u"this").get(u'state').get(u'pos')+var.get(u'size'))))
            var.get(u"this").get(u'state').put(u'pos', var.get(u'size'), u'+')
            return var.get(u"this").callprop(u'finishToken', var.get(u'type'), var.get(u'str'))
        PyJs_finishOp_2921_._set_name(u'finishOp')
        var.get(u'Tokenizer').get(u'prototype').put(u'finishOp', PyJs_finishOp_2921_)
        @Js
        def PyJs_readRegexp_2922_(this, arguments, var=var):
            var = Scope({u'this':this, u'readRegexp':PyJs_readRegexp_2922_, u'arguments':arguments}, var)
            var.registers([u'content', u'ch', u'inClass', u'escaped', u'start', u'mods', u'validFlags'])
            var.put(u'escaped', PyJsComma(Js(0.0), Js(None)))
            var.put(u'inClass', PyJsComma(Js(0.0), Js(None)))
            var.put(u'start', var.get(u"this").get(u'state').get(u'pos'))
            #for JS loop
            
            while 1:
                if (var.get(u"this").get(u'state').get(u'pos')>=var.get(u"this").get(u'input').get(u'length')):
                    var.get(u"this").callprop(u'raise', var.get(u'start'), Js(u'Unterminated regular expression'))
                var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charAt', var.get(u"this").get(u'state').get(u'pos')))
                if var.get(u'lineBreak').callprop(u'test', var.get(u'ch')):
                    var.get(u"this").callprop(u'raise', var.get(u'start'), Js(u'Unterminated regular expression'))
                if var.get(u'escaped'):
                    var.put(u'escaped', Js(False))
                else:
                    if PyJsStrictEq(var.get(u'ch'),Js(u'[')):
                        var.put(u'inClass', var.get(u'true'))
                    else:
                        if (PyJsStrictEq(var.get(u'ch'),Js(u']')) and var.get(u'inClass')):
                            var.put(u'inClass', Js(False))
                        else:
                            if (PyJsStrictEq(var.get(u'ch'),Js(u'/')) and var.get(u'inClass').neg()):
                                break
                    var.put(u'escaped', PyJsStrictEq(var.get(u'ch'),Js(u'\\')))
                var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
            
            var.put(u'content', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'start'), var.get(u"this").get(u'state').get(u'pos')))
            var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
            var.put(u'mods', var.get(u"this").callprop(u'readWord1'))
            if var.get(u'mods'):
                var.put(u'validFlags', JsRegExp(u'/^[gmsiyu]*$/'))
                if var.get(u'validFlags').callprop(u'test', var.get(u'mods')).neg():
                    var.get(u"this").callprop(u'raise', var.get(u'start'), Js(u'Invalid regular expression flag'))
            PyJs_Object_2923_ = Js({u'pattern':var.get(u'content'),u'flags':var.get(u'mods')})
            return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'regexp'), PyJs_Object_2923_)
        PyJs_readRegexp_2922_._set_name(u'readRegexp')
        var.get(u'Tokenizer').get(u'prototype').put(u'readRegexp', PyJs_readRegexp_2922_)
        @Js
        def PyJs_readInt_2924_(radix, len, this, arguments, var=var):
            var = Scope({u'this':this, u'readInt':PyJs_readInt_2924_, u'radix':radix, u'arguments':arguments, u'len':len}, var)
            var.registers([u'code', u'e', u'val', u'i', u'len', u'start', u'radix', u'total'])
            var.put(u'start', var.get(u"this").get(u'state').get(u'pos'))
            var.put(u'total', Js(0.0))
            #for JS loop
            var.put(u'i', Js(0.0))
            var.put(u'e', (var.get(u'Infinity') if (var.get(u'len')==var.get(u"null")) else var.get(u'len')))
            while (var.get(u'i')<var.get(u'e')):
                try:
                    var.put(u'code', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
                    var.put(u'val', PyJsComma(Js(0.0), Js(None)))
                    if (var.get(u'code')>=Js(97.0)):
                        var.put(u'val', ((var.get(u'code')-Js(97.0))+Js(10.0)))
                    else:
                        if (var.get(u'code')>=Js(65.0)):
                            var.put(u'val', ((var.get(u'code')-Js(65.0))+Js(10.0)))
                        else:
                            if ((var.get(u'code')>=Js(48.0)) and (var.get(u'code')<=Js(57.0))):
                                var.put(u'val', (var.get(u'code')-Js(48.0)))
                            else:
                                var.put(u'val', var.get(u'Infinity'))
                    if (var.get(u'val')>=var.get(u'radix')):
                        break
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    var.put(u'total', ((var.get(u'total')*var.get(u'radix'))+var.get(u'val')))
                finally:
                        var.put(u'i',Js(var.get(u'i').to_number())+Js(1))
            if (PyJsStrictEq(var.get(u"this").get(u'state').get(u'pos'),var.get(u'start')) or ((var.get(u'len')!=var.get(u"null")) and PyJsStrictNeq((var.get(u"this").get(u'state').get(u'pos')-var.get(u'start')),var.get(u'len')))):
                return var.get(u"null")
            return var.get(u'total')
        PyJs_readInt_2924_._set_name(u'readInt')
        var.get(u'Tokenizer').get(u'prototype').put(u'readInt', PyJs_readInt_2924_)
        @Js
        def PyJs_readRadixNumber_2925_(radix, this, arguments, var=var):
            var = Scope({u'this':this, u'radix':radix, u'arguments':arguments, u'readRadixNumber':PyJs_readRadixNumber_2925_}, var)
            var.registers([u'radix', u'val'])
            var.get(u"this").get(u'state').put(u'pos', Js(2.0), u'+')
            var.put(u'val', var.get(u"this").callprop(u'readInt', var.get(u'radix')))
            if (var.get(u'val')==var.get(u"null")):
                var.get(u"this").callprop(u'raise', (var.get(u"this").get(u'state').get(u'start')+Js(2.0)), (Js(u'Expected number in radix ')+var.get(u'radix')))
            if var.get(u'isIdentifierStart')(var.get(u"this").callprop(u'fullCharCodeAtPos')):
                var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'pos'), Js(u'Identifier directly after number'))
            return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'num'), var.get(u'val'))
        PyJs_readRadixNumber_2925_._set_name(u'readRadixNumber')
        var.get(u'Tokenizer').get(u'prototype').put(u'readRadixNumber', PyJs_readRadixNumber_2925_)
        @Js
        def PyJs_readNumber_2926_(startsWithDot, this, arguments, var=var):
            var = Scope({u'this':this, u'startsWithDot':startsWithDot, u'arguments':arguments, u'readNumber':PyJs_readNumber_2926_}, var)
            var.registers([u'isFloat', u'val', u'next', u'start', u'str', u'octal', u'startsWithDot'])
            var.put(u'start', var.get(u"this").get(u'state').get(u'pos'))
            var.put(u'isFloat', Js(False))
            var.put(u'octal', PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')),Js(48.0)))
            if (var.get(u'startsWithDot').neg() and PyJsStrictEq(var.get(u"this").callprop(u'readInt', Js(10.0)),var.get(u"null"))):
                var.get(u"this").callprop(u'raise', var.get(u'start'), Js(u'Invalid number'))
            var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
            if PyJsStrictEq(var.get(u'next'),Js(46.0)):
                var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                var.get(u"this").callprop(u'readInt', Js(10.0))
                var.put(u'isFloat', var.get(u'true'))
                var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
            if (PyJsStrictEq(var.get(u'next'),Js(69.0)) or PyJsStrictEq(var.get(u'next'),Js(101.0))):
                var.put(u'next', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))))
                if (PyJsStrictEq(var.get(u'next'),Js(43.0)) or PyJsStrictEq(var.get(u'next'),Js(45.0))):
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                if PyJsStrictEq(var.get(u"this").callprop(u'readInt', Js(10.0)),var.get(u"null")):
                    var.get(u"this").callprop(u'raise', var.get(u'start'), Js(u'Invalid number'))
                var.put(u'isFloat', var.get(u'true'))
            if var.get(u'isIdentifierStart')(var.get(u"this").callprop(u'fullCharCodeAtPos')):
                var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'pos'), Js(u'Identifier directly after number'))
            var.put(u'str', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'start'), var.get(u"this").get(u'state').get(u'pos')))
            var.put(u'val', PyJsComma(Js(0.0), Js(None)))
            if var.get(u'isFloat'):
                var.put(u'val', var.get(u'parseFloat')(var.get(u'str')))
            else:
                if (var.get(u'octal').neg() or PyJsStrictEq(var.get(u'str').get(u'length'),Js(1.0))):
                    var.put(u'val', var.get(u'parseInt')(var.get(u'str'), Js(10.0)))
                else:
                    if (JsRegExp(u'/[89]/').callprop(u'test', var.get(u'str')) or var.get(u"this").get(u'state').get(u'strict')):
                        var.get(u"this").callprop(u'raise', var.get(u'start'), Js(u'Invalid number'))
                    else:
                        var.put(u'val', var.get(u'parseInt')(var.get(u'str'), Js(8.0)))
            return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'num'), var.get(u'val'))
        PyJs_readNumber_2926_._set_name(u'readNumber')
        var.get(u'Tokenizer').get(u'prototype').put(u'readNumber', PyJs_readNumber_2926_)
        @Js
        def PyJs_readCodePoint_2927_(this, arguments, var=var):
            var = Scope({u'this':this, u'readCodePoint':PyJs_readCodePoint_2927_, u'arguments':arguments}, var)
            var.registers([u'code', u'ch', u'codePos'])
            var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
            var.put(u'code', PyJsComma(Js(0.0), Js(None)))
            if PyJsStrictEq(var.get(u'ch'),Js(123.0)):
                var.put(u'codePos', var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1)))
                var.put(u'code', var.get(u"this").callprop(u'readHexChar', (var.get(u"this").get(u'input').callprop(u'indexOf', Js(u'}'), var.get(u"this").get(u'state').get(u'pos'))-var.get(u"this").get(u'state').get(u'pos'))))
                var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                if (var.get(u'code')>Js(1114111)):
                    var.get(u"this").callprop(u'raise', var.get(u'codePos'), Js(u'Code point out of bounds'))
            else:
                var.put(u'code', var.get(u"this").callprop(u'readHexChar', Js(4.0)))
            return var.get(u'code')
        PyJs_readCodePoint_2927_._set_name(u'readCodePoint')
        var.get(u'Tokenizer').get(u'prototype').put(u'readCodePoint', PyJs_readCodePoint_2927_)
        @Js
        def PyJs_readString_2928_(quote, this, arguments, var=var):
            var = Scope({u'this':this, u'quote':quote, u'arguments':arguments, u'readString':PyJs_readString_2928_}, var)
            var.registers([u'ch', u'quote', u'chunkStart', u'out'])
            var.put(u'out', Js(u''))
            var.put(u'chunkStart', var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1)))
            #for JS loop
            
            while 1:
                if (var.get(u"this").get(u'state').get(u'pos')>=var.get(u"this").get(u'input').get(u'length')):
                    var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u'Unterminated string constant'))
                var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
                if PyJsStrictEq(var.get(u'ch'),var.get(u'quote')):
                    break
                if PyJsStrictEq(var.get(u'ch'),Js(92.0)):
                    var.put(u'out', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), var.get(u"this").get(u'state').get(u'pos')), u'+')
                    var.put(u'out', var.get(u"this").callprop(u'readEscapedChar', Js(False)), u'+')
                    var.put(u'chunkStart', var.get(u"this").get(u'state').get(u'pos'))
                else:
                    if var.get(u'isNewLine')(var.get(u'ch')):
                        var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u'Unterminated string constant'))
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
            
            var.put(u'out', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), (var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))-Js(1))), u'+')
            return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'string'), var.get(u'out'))
        PyJs_readString_2928_._set_name(u'readString')
        var.get(u'Tokenizer').get(u'prototype').put(u'readString', PyJs_readString_2928_)
        @Js
        def PyJs_readTmplToken_2929_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'readTmplToken':PyJs_readTmplToken_2929_}, var)
            var.registers([u'ch', u'chunkStart', u'out'])
            var.put(u'out', Js(u''))
            var.put(u'chunkStart', var.get(u"this").get(u'state').get(u'pos'))
            #for JS loop
            
            while 1:
                if (var.get(u"this").get(u'state').get(u'pos')>=var.get(u"this").get(u'input').get(u'length')):
                    var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u'Unterminated template'))
                var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
                if (PyJsStrictEq(var.get(u'ch'),Js(96.0)) or (PyJsStrictEq(var.get(u'ch'),Js(36.0)) and PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', (var.get(u"this").get(u'state').get(u'pos')+Js(1.0))),Js(123.0)))):
                    if (PyJsStrictEq(var.get(u"this").get(u'state').get(u'pos'),var.get(u"this").get(u'state').get(u'start')) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'template'))):
                        if PyJsStrictEq(var.get(u'ch'),Js(36.0)):
                            var.get(u"this").get(u'state').put(u'pos', Js(2.0), u'+')
                            return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'dollarBraceL'))
                        else:
                            var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                            return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'backQuote'))
                    var.put(u'out', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), var.get(u"this").get(u'state').get(u'pos')), u'+')
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'template'), var.get(u'out'))
                if PyJsStrictEq(var.get(u'ch'),Js(92.0)):
                    var.put(u'out', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), var.get(u"this").get(u'state').get(u'pos')), u'+')
                    var.put(u'out', var.get(u"this").callprop(u'readEscapedChar', var.get(u'true')), u'+')
                    var.put(u'chunkStart', var.get(u"this").get(u'state').get(u'pos'))
                else:
                    if var.get(u'isNewLine')(var.get(u'ch')):
                        var.put(u'out', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), var.get(u"this").get(u'state').get(u'pos')), u'+')
                        var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                        while 1:
                            SWITCHED = False
                            CONDITION = (var.get(u'ch'))
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(13.0)):
                                SWITCHED = True
                                if PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')),Js(10.0)):
                                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(10.0)):
                                SWITCHED = True
                                var.put(u'out', Js(u'\n'), u'+')
                                break
                            if True:
                                SWITCHED = True
                                var.put(u'out', var.get(u'String').callprop(u'fromCharCode', var.get(u'ch')), u'+')
                                break
                            SWITCHED = True
                            break
                        var.get(u"this").get(u'state').put(u'curLine',Js(var.get(u"this").get(u'state').get(u'curLine').to_number())+Js(1))
                        var.get(u"this").get(u'state').put(u'lineStart', var.get(u"this").get(u'state').get(u'pos'))
                        var.put(u'chunkStart', var.get(u"this").get(u'state').get(u'pos'))
                    else:
                        var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
            
        PyJs_readTmplToken_2929_._set_name(u'readTmplToken')
        var.get(u'Tokenizer').get(u'prototype').put(u'readTmplToken', PyJs_readTmplToken_2929_)
        @Js
        def PyJs_readEscapedChar_2930_(inTemplate, this, arguments, var=var):
            var = Scope({u'this':this, u'readEscapedChar':PyJs_readEscapedChar_2930_, u'inTemplate':inTemplate, u'arguments':arguments}, var)
            var.registers([u'octal', u'octalStr', u'ch', u'inTemplate'])
            var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))))
            var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'ch'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(110.0)):
                    SWITCHED = True
                    return Js(u'\n')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(114.0)):
                    SWITCHED = True
                    return Js(u'\r')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(120.0)):
                    SWITCHED = True
                    return var.get(u'String').callprop(u'fromCharCode', var.get(u"this").callprop(u'readHexChar', Js(2.0)))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(117.0)):
                    SWITCHED = True
                    return var.get(u'codePointToString')(var.get(u"this").callprop(u'readCodePoint'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(116.0)):
                    SWITCHED = True
                    return Js(u'\t')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(98.0)):
                    SWITCHED = True
                    return Js(u'\x08')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(118.0)):
                    SWITCHED = True
                    return Js(u'\x0b')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(102.0)):
                    SWITCHED = True
                    return Js(u'\x0c')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(13.0)):
                    SWITCHED = True
                    if PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')),Js(10.0)):
                        var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(10.0)):
                    SWITCHED = True
                    var.get(u"this").get(u'state').put(u'lineStart', var.get(u"this").get(u'state').get(u'pos'))
                    var.get(u"this").get(u'state').put(u'curLine',Js(var.get(u"this").get(u'state').get(u'curLine').to_number())+Js(1))
                    return Js(u'')
                if True:
                    SWITCHED = True
                    if ((var.get(u'ch')>=Js(48.0)) and (var.get(u'ch')<=Js(55.0))):
                        var.put(u'octalStr', var.get(u"this").get(u'input').callprop(u'substr', (var.get(u"this").get(u'state').get(u'pos')-Js(1.0)), Js(3.0)).callprop(u'match', JsRegExp(u'/^[0-7]+/')).get(u'0'))
                        var.put(u'octal', var.get(u'parseInt')(var.get(u'octalStr'), Js(8.0)))
                        if (var.get(u'octal')>Js(255.0)):
                            var.put(u'octalStr', var.get(u'octalStr').callprop(u'slice', Js(0.0), (-Js(1.0))))
                            var.put(u'octal', var.get(u'parseInt')(var.get(u'octalStr'), Js(8.0)))
                        if (var.get(u'octal')>Js(0.0)):
                            if var.get(u"this").get(u'state').get(u'containsOctal').neg():
                                var.get(u"this").get(u'state').put(u'containsOctal', var.get(u'true'))
                                var.get(u"this").get(u'state').put(u'octalPosition', (var.get(u"this").get(u'state').get(u'pos')-Js(2.0)))
                            if (var.get(u"this").get(u'state').get(u'strict') or var.get(u'inTemplate')):
                                var.get(u"this").callprop(u'raise', (var.get(u"this").get(u'state').get(u'pos')-Js(2.0)), Js(u'Octal literal in strict mode'))
                        var.get(u"this").get(u'state').put(u'pos', (var.get(u'octalStr').get(u'length')-Js(1.0)), u'+')
                        return var.get(u'String').callprop(u'fromCharCode', var.get(u'octal'))
                    return var.get(u'String').callprop(u'fromCharCode', var.get(u'ch'))
                SWITCHED = True
                break
        PyJs_readEscapedChar_2930_._set_name(u'readEscapedChar')
        var.get(u'Tokenizer').get(u'prototype').put(u'readEscapedChar', PyJs_readEscapedChar_2930_)
        @Js
        def PyJs_readHexChar_2931_(len, this, arguments, var=var):
            var = Scope({u'this':this, u'readHexChar':PyJs_readHexChar_2931_, u'arguments':arguments, u'len':len}, var)
            var.registers([u'codePos', u'len', u'n'])
            var.put(u'codePos', var.get(u"this").get(u'state').get(u'pos'))
            var.put(u'n', var.get(u"this").callprop(u'readInt', Js(16.0), var.get(u'len')))
            if PyJsStrictEq(var.get(u'n'),var.get(u"null")):
                var.get(u"this").callprop(u'raise', var.get(u'codePos'), Js(u'Bad character escape sequence'))
            return var.get(u'n')
        PyJs_readHexChar_2931_._set_name(u'readHexChar')
        var.get(u'Tokenizer').get(u'prototype').put(u'readHexChar', PyJs_readHexChar_2931_)
        @Js
        def PyJs_readWord1_2932_(this, arguments, var=var):
            var = Scope({u'this':this, u'readWord1':PyJs_readWord1_2932_, u'arguments':arguments}, var)
            var.registers([u'ch', u'word', u'chunkStart', u'escStart', u'esc', u'first'])
            var.get(u"this").get(u'state').put(u'containsEsc', Js(False))
            var.put(u'word', Js(u''))
            var.put(u'first', var.get(u'true'))
            var.put(u'chunkStart', var.get(u"this").get(u'state').get(u'pos'))
            while (var.get(u"this").get(u'state').get(u'pos')<var.get(u"this").get(u'input').get(u'length')):
                var.put(u'ch', var.get(u"this").callprop(u'fullCharCodeAtPos'))
                if var.get(u'isIdentifierChar')(var.get(u'ch')):
                    var.get(u"this").get(u'state').put(u'pos', (Js(1.0) if (var.get(u'ch')<=Js(65535)) else Js(2.0)), u'+')
                else:
                    if PyJsStrictEq(var.get(u'ch'),Js(92.0)):
                        var.get(u"this").get(u'state').put(u'containsEsc', var.get(u'true'))
                        var.put(u'word', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), var.get(u"this").get(u'state').get(u'pos')), u'+')
                        var.put(u'escStart', var.get(u"this").get(u'state').get(u'pos'))
                        if PyJsStrictNeq(var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))),Js(117.0)):
                            var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'pos'), Js(u'Expecting Unicode escape sequence \\uXXXX'))
                        var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                        var.put(u'esc', var.get(u"this").callprop(u'readCodePoint'))
                        if (var.get(u'isIdentifierStart') if var.get(u'first') else var.get(u'isIdentifierChar'))(var.get(u'esc'), var.get(u'true')).neg():
                            var.get(u"this").callprop(u'raise', var.get(u'escStart'), Js(u'Invalid Unicode escape'))
                        var.put(u'word', var.get(u'codePointToString')(var.get(u'esc')), u'+')
                        var.put(u'chunkStart', var.get(u"this").get(u'state').get(u'pos'))
                    else:
                        break
                var.put(u'first', Js(False))
            return (var.get(u'word')+var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), var.get(u"this").get(u'state').get(u'pos')))
        PyJs_readWord1_2932_._set_name(u'readWord1')
        var.get(u'Tokenizer').get(u'prototype').put(u'readWord1', PyJs_readWord1_2932_)
        @Js
        def PyJs_readWord_2933_(this, arguments, var=var):
            var = Scope({u'this':this, u'readWord':PyJs_readWord_2933_, u'arguments':arguments}, var)
            var.registers([u'type', u'word'])
            var.put(u'word', var.get(u"this").callprop(u'readWord1'))
            var.put(u'type', var.get(u'types').get(u'name'))
            if (var.get(u"this").get(u'state').get(u'containsEsc').neg() and var.get(u"this").callprop(u'isKeyword', var.get(u'word'))):
                var.put(u'type', var.get(u'keywords').get(var.get(u'word')))
            return var.get(u"this").callprop(u'finishToken', var.get(u'type'), var.get(u'word'))
        PyJs_readWord_2933_._set_name(u'readWord')
        var.get(u'Tokenizer').get(u'prototype').put(u'readWord', PyJs_readWord_2933_)
        @Js
        def PyJs_braceIsBlock_2934_(prevType, this, arguments, var=var):
            var = Scope({u'this':this, u'braceIsBlock':PyJs_braceIsBlock_2934_, u'arguments':arguments, u'prevType':prevType}, var)
            var.registers([u'parent', u'prevType'])
            if PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'colon')):
                var.put(u'parent', var.get(u"this").callprop(u'curContext'))
                if (PyJsStrictEq(var.get(u'parent'),var.get(u'types$1').get(u'braceStatement')) or PyJsStrictEq(var.get(u'parent'),var.get(u'types$1').get(u'braceExpression'))):
                    return var.get(u'parent').get(u'isExpr').neg()
            if PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'_return')):
                return var.get(u'lineBreak').callprop(u'test', var.get(u"this").get(u'input').callprop(u'slice', var.get(u"this").get(u'state').get(u'lastTokEnd'), var.get(u"this").get(u'state').get(u'start')))
            if (((PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'_else')) or PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'semi'))) or PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'eof'))) or PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'parenR'))):
                return var.get(u'true')
            if PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'braceL')):
                return PyJsStrictEq(var.get(u"this").callprop(u'curContext'),var.get(u'types$1').get(u'braceStatement'))
            return var.get(u"this").get(u'state').get(u'exprAllowed').neg()
        PyJs_braceIsBlock_2934_._set_name(u'braceIsBlock')
        var.get(u'Tokenizer').get(u'prototype').put(u'braceIsBlock', PyJs_braceIsBlock_2934_)
        @Js
        def PyJs_updateContext_2935_(prevType, this, arguments, var=var):
            var = Scope({u'this':this, u'updateContext':PyJs_updateContext_2935_, u'arguments':arguments, u'prevType':prevType}, var)
            var.registers([u'type', u'update', u'prevType'])
            var.put(u'update', PyJsComma(Js(0.0), Js(None)))
            var.put(u'type', var.get(u"this").get(u'state').get(u'type'))
            if (var.get(u'type').get(u'keyword') and PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'dot'))):
                var.get(u"this").get(u'state').put(u'exprAllowed', Js(False))
            else:
                if var.put(u'update', var.get(u'type').get(u'updateContext')):
                    var.get(u'update').callprop(u'call', var.get(u"this"), var.get(u'prevType'))
                else:
                    var.get(u"this").get(u'state').put(u'exprAllowed', var.get(u'type').get(u'beforeExpr'))
        PyJs_updateContext_2935_._set_name(u'updateContext')
        var.get(u'Tokenizer').get(u'prototype').put(u'updateContext', PyJs_updateContext_2935_)
        return var.get(u'Tokenizer')
    PyJs_anonymous_2895_._set_name(u'anonymous')
    var.put(u'Tokenizer', PyJs_anonymous_2895_())
    pass
    pass
    pass
    PyJs_Object_2938_ = Js({})
    var.put(u'plugins', PyJs_Object_2938_)
    @Js
    def PyJs_anonymous_2939_(_Tokenizer, this, arguments, var=var):
        var = Scope({u'this':this, u'_Tokenizer':_Tokenizer, u'arguments':arguments}, var)
        var.registers([u'Parser', u'_Tokenizer'])
        @Js
        def PyJsHoisted_Parser_(options, input, this, arguments, var=var):
            var = Scope({u'this':this, u'input':input, u'options':options, u'arguments':arguments}, var)
            var.registers([u'input', u'options', u'_this'])
            var.get(u'_classCallCheck')(var.get(u"this"), var.get(u'Parser'))
            var.put(u'options', var.get(u'getOptions')(var.get(u'options')))
            var.put(u'_this', var.get(u'_possibleConstructorReturn')(var.get(u"this"), var.get(u'_Tokenizer').callprop(u'call', var.get(u"this"), var.get(u'options'), var.get(u'input'))))
            var.get(u'_this').put(u'options', var.get(u'options'))
            var.get(u'_this').put(u'inModule', PyJsStrictEq(var.get(u'_this').get(u'options').get(u'sourceType'),Js(u'module')))
            var.get(u'_this').put(u'isReservedWord', var.get(u'reservedWords').get(u'6'))
            var.get(u'_this').put(u'input', var.get(u'input'))
            var.get(u'_this').put(u'plugins', var.get(u'_this').callprop(u'loadPlugins', var.get(u'_this').get(u'options').get(u'plugins')))
            var.get(u'_this').put(u'filename', var.get(u'options').get(u'sourceFilename'))
            if ((PyJsStrictEq(var.get(u'_this').get(u'state').get(u'pos'),Js(0.0)) and PyJsStrictEq(var.get(u'_this').get(u'input').get(u'0'),Js(u'#'))) and PyJsStrictEq(var.get(u'_this').get(u'input').get(u'1'),Js(u'!'))):
                var.get(u'_this').callprop(u'skipLineComment', Js(2.0))
            return var.get(u'_this')
        PyJsHoisted_Parser_.func_name = u'Parser'
        var.put(u'Parser', PyJsHoisted_Parser_)
        var.get(u'_inherits')(var.get(u'Parser'), var.get(u'_Tokenizer'))
        pass
        @Js
        def PyJs_hasPlugin_2940_(name, this, arguments, var=var):
            var = Scope({u'this':this, u'hasPlugin':PyJs_hasPlugin_2940_, u'name':name, u'arguments':arguments}, var)
            var.registers([u'name'])
            return (var.get(u"this").get(u'plugins').get(u'*') or var.get(u"this").get(u'plugins').get(var.get(u'name'))).neg().neg()
        PyJs_hasPlugin_2940_._set_name(u'hasPlugin')
        var.get(u'Parser').get(u'prototype').put(u'hasPlugin', PyJs_hasPlugin_2940_)
        @Js
        def PyJs_extend_2941_(name, f, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'name':name, u'extend':PyJs_extend_2941_, u'f':f}, var)
            var.registers([u'name', u'f'])
            var.get(u"this").put(var.get(u'name'), var.get(u'f')(var.get(u"this").get(var.get(u'name'))))
        PyJs_extend_2941_._set_name(u'extend')
        var.get(u'Parser').get(u'prototype').put(u'extend', PyJs_extend_2941_)
        @Js
        def PyJs_loadPlugins_2942_(pluginList, this, arguments, var=var):
            var = Scope({u'this':this, u'pluginList':pluginList, u'arguments':arguments, u'loadPlugins':PyJs_loadPlugins_2942_}, var)
            var.registers([u'_isArray', u'pluginList', u'_iterator', u'name', u'plugin', u'_i', u'pluginMap', u'_ref'])
            PyJs_Object_2943_ = Js({})
            var.put(u'pluginMap', PyJs_Object_2943_)
            if (var.get(u'pluginList').callprop(u'indexOf', Js(u'flow'))>=Js(0.0)):
                @Js
                def PyJs_anonymous_2944_(plugin, this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments, u'plugin':plugin}, var)
                    var.registers([u'plugin'])
                    return PyJsStrictNeq(var.get(u'plugin'),Js(u'flow'))
                PyJs_anonymous_2944_._set_name(u'anonymous')
                var.put(u'pluginList', var.get(u'pluginList').callprop(u'filter', PyJs_anonymous_2944_))
                var.get(u'pluginList').callprop(u'push', Js(u'flow'))
            #for JS loop
            var.put(u'_iterator', var.get(u'pluginList'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else var.get(u'_iterator').callprop(var.get(u'Symbol').get(u'iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'name', var.get(u'_ref'))
                if var.get(u'pluginMap').get(var.get(u'name')).neg():
                    var.get(u'pluginMap').put(var.get(u'name'), var.get(u'true'))
                    var.put(u'plugin', var.get(u'plugins').get(var.get(u'name')))
                    if var.get(u'plugin'):
                        var.get(u'plugin')(var.get(u"this"))
            
            return var.get(u'pluginMap')
        PyJs_loadPlugins_2942_._set_name(u'loadPlugins')
        var.get(u'Parser').get(u'prototype').put(u'loadPlugins', PyJs_loadPlugins_2942_)
        @Js
        def PyJs_parse_2945_(this, arguments, var=var):
            var = Scope({u'this':this, u'parse':PyJs_parse_2945_, u'arguments':arguments}, var)
            var.registers([u'program', u'file'])
            var.put(u'file', var.get(u"this").callprop(u'startNode'))
            var.put(u'program', var.get(u"this").callprop(u'startNode'))
            var.get(u"this").callprop(u'nextToken')
            return var.get(u"this").callprop(u'parseTopLevel', var.get(u'file'), var.get(u'program'))
        PyJs_parse_2945_._set_name(u'parse')
        var.get(u'Parser').get(u'prototype').put(u'parse', PyJs_parse_2945_)
        return var.get(u'Parser')
    PyJs_anonymous_2939_._set_name(u'anonymous')
    var.put(u'Parser', PyJs_anonymous_2939_(var.get(u'Tokenizer')))
    @Js
    def PyJs_anonymous_2946_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        return var.get(u'obj',throw=False).typeof()
    PyJs_anonymous_2946_._set_name(u'anonymous')
    @Js
    def PyJs_anonymous_2947_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'obj'])
        return (Js(u'symbol') if (((var.get(u'obj') and PyJsStrictEq(var.get(u'Symbol',throw=False).typeof(),Js(u'function'))) and PyJsStrictEq(var.get(u'obj').get(u'constructor'),var.get(u'Symbol'))) and PyJsStrictNeq(var.get(u'obj'),var.get(u'Symbol').get(u'prototype'))) else var.get(u'obj',throw=False).typeof())
    PyJs_anonymous_2947_._set_name(u'anonymous')
    var.put(u'_typeof', (PyJs_anonymous_2946_ if (PyJsStrictEq(var.get(u'Symbol',throw=False).typeof(),Js(u'function')) and PyJsStrictEq(var.get(u'Symbol').get(u'iterator').typeof(),Js(u'symbol'))) else PyJs_anonymous_2947_))
    var.put(u'pp', var.get(u'Parser').get(u'prototype'))
    @Js
    def PyJs_anonymous_2948_(node, key, val, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'val':val, u'key':key, u'arguments':arguments}, var)
        var.registers([u'node', u'val', u'key', u'extra'])
        if var.get(u'node').neg():
            return var.get('undefined')
        PyJs_Object_2949_ = Js({})
        var.put(u'extra', var.get(u'node').put(u'extra', (var.get(u'node').get(u'extra') or PyJs_Object_2949_)))
        var.get(u'extra').put(var.get(u'key'), var.get(u'val'))
    PyJs_anonymous_2948_._set_name(u'anonymous')
    var.get(u'pp').put(u'addExtra', PyJs_anonymous_2948_)
    @Js
    def PyJs_anonymous_2950_(op, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'op':op}, var)
        var.registers([u'op'])
        return (var.get(u"this").callprop(u'match', var.get(u'types').get(u'relational')) and PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),var.get(u'op')))
    PyJs_anonymous_2950_._set_name(u'anonymous')
    var.get(u'pp').put(u'isRelational', PyJs_anonymous_2950_)
    @Js
    def PyJs_anonymous_2951_(op, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'op':op}, var)
        var.registers([u'op'])
        if var.get(u"this").callprop(u'isRelational', var.get(u'op')):
            var.get(u"this").callprop(u'next')
        else:
            var.get(u"this").callprop(u'unexpected', var.get(u"null"), var.get(u'types').get(u'relational'))
    PyJs_anonymous_2951_._set_name(u'anonymous')
    var.get(u'pp').put(u'expectRelational', PyJs_anonymous_2951_)
    @Js
    def PyJs_anonymous_2952_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name'])
        return (var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')) and PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),var.get(u'name')))
    PyJs_anonymous_2952_._set_name(u'anonymous')
    var.get(u'pp').put(u'isContextual', PyJs_anonymous_2952_)
    @Js
    def PyJs_anonymous_2953_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name'])
        return (PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),var.get(u'name')) and var.get(u"this").callprop(u'eat', var.get(u'types').get(u'name')))
    PyJs_anonymous_2953_._set_name(u'anonymous')
    var.get(u'pp').put(u'eatContextual', PyJs_anonymous_2953_)
    @Js
    def PyJs_anonymous_2954_(name, message, this, arguments, var=var):
        var = Scope({u'this':this, u'message':message, u'name':name, u'arguments':arguments}, var)
        var.registers([u'message', u'name'])
        if var.get(u"this").callprop(u'eatContextual', var.get(u'name')).neg():
            var.get(u"this").callprop(u'unexpected', var.get(u"null"), var.get(u'message'))
    PyJs_anonymous_2954_._set_name(u'anonymous')
    var.get(u'pp').put(u'expectContextual', PyJs_anonymous_2954_)
    @Js
    def PyJs_anonymous_2955_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return ((var.get(u"this").callprop(u'match', var.get(u'types').get(u'eof')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceR'))) or var.get(u'lineBreak').callprop(u'test', var.get(u"this").get(u'input').callprop(u'slice', var.get(u"this").get(u'state').get(u'lastTokEnd'), var.get(u"this").get(u'state').get(u'start'))))
    PyJs_anonymous_2955_._set_name(u'anonymous')
    var.get(u'pp').put(u'canInsertSemicolon', PyJs_anonymous_2955_)
    @Js
    def PyJs_anonymous_2956_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return (var.get(u"this").callprop(u'eat', var.get(u'types').get(u'semi')) or var.get(u"this").callprop(u'canInsertSemicolon'))
    PyJs_anonymous_2956_._set_name(u'anonymous')
    var.get(u'pp').put(u'isLineTerminator', PyJs_anonymous_2956_)
    @Js
    def PyJs_anonymous_2957_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if var.get(u"this").callprop(u'isLineTerminator').neg():
            var.get(u"this").callprop(u'unexpected', var.get(u"null"), var.get(u'types').get(u'semi'))
    PyJs_anonymous_2957_._set_name(u'anonymous')
    var.get(u'pp').put(u'semicolon', PyJs_anonymous_2957_)
    @Js
    def PyJs_anonymous_2958_(type, pos, this, arguments, var=var):
        var = Scope({u'this':this, u'type':type, u'pos':pos, u'arguments':arguments}, var)
        var.registers([u'type', u'pos'])
        return (var.get(u"this").callprop(u'eat', var.get(u'type')) or var.get(u"this").callprop(u'unexpected', var.get(u'pos'), var.get(u'type')))
    PyJs_anonymous_2958_._set_name(u'anonymous')
    var.get(u'pp').put(u'expect', PyJs_anonymous_2958_)
    @Js
    def PyJs_anonymous_2959_(pos, this, arguments, var=var):
        var = Scope({u'this':this, u'pos':pos, u'arguments':arguments}, var)
        var.registers([u'pos', u'messageOrType'])
        var.put(u'messageOrType', (var.get(u'arguments').get(u'1') if ((var.get(u'arguments').get(u'length')>Js(1.0)) and PyJsStrictNeq(var.get(u'arguments').get(u'1'),var.get(u'undefined'))) else Js(u'Unexpected token')))
        if ((var.get(u'messageOrType') and PyJsStrictEq((Js(u'undefined') if PyJsStrictEq(var.get(u'messageOrType',throw=False).typeof(),Js(u'undefined')) else var.get(u'_typeof')(var.get(u'messageOrType'))),Js(u'object'))) and var.get(u'messageOrType').get(u'label')):
            var.put(u'messageOrType', (Js(u'Unexpected token, expected ')+var.get(u'messageOrType').get(u'label')))
        var.get(u"this").callprop(u'raise', (var.get(u'pos') if (var.get(u'pos')!=var.get(u"null")) else var.get(u"this").get(u'state').get(u'start')), var.get(u'messageOrType'))
    PyJs_anonymous_2959_._set_name(u'anonymous')
    var.get(u'pp').put(u'unexpected', PyJs_anonymous_2959_)
    var.put(u'pp$1', var.get(u'Parser').get(u'prototype'))
    @Js
    def PyJs_anonymous_2960_(file, program, this, arguments, var=var):
        var = Scope({u'this':this, u'program':program, u'arguments':arguments, u'file':file}, var)
        var.registers([u'program', u'file'])
        var.get(u'program').put(u'sourceType', var.get(u"this").get(u'options').get(u'sourceType'))
        var.get(u"this").callprop(u'parseBlockBody', var.get(u'program'), var.get(u'true'), var.get(u'true'), var.get(u'types').get(u'eof'))
        var.get(u'file').put(u'program', var.get(u"this").callprop(u'finishNode', var.get(u'program'), Js(u'Program')))
        var.get(u'file').put(u'comments', var.get(u"this").get(u'state').get(u'comments'))
        var.get(u'file').put(u'tokens', var.get(u"this").get(u'state').get(u'tokens'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'file'), Js(u'File'))
    PyJs_anonymous_2960_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseTopLevel', PyJs_anonymous_2960_)
    PyJs_Object_2961_ = Js({u'kind':Js(u'loop')})
    var.put(u'loopLabel', PyJs_Object_2961_)
    PyJs_Object_2962_ = Js({u'kind':Js(u'switch')})
    var.put(u'switchLabel', PyJs_Object_2962_)
    @Js
    def PyJs_anonymous_2963_(stmt, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'stmt':stmt}, var)
        var.registers([u'directiveLiteral', u'directive', u'val', u'expr', u'stmt', u'raw'])
        var.put(u'expr', var.get(u'stmt').get(u'expression'))
        var.put(u'directiveLiteral', var.get(u"this").callprop(u'startNodeAt', var.get(u'expr').get(u'start'), var.get(u'expr').get(u'loc').get(u'start')))
        var.put(u'directive', var.get(u"this").callprop(u'startNodeAt', var.get(u'stmt').get(u'start'), var.get(u'stmt').get(u'loc').get(u'start')))
        var.put(u'raw', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'expr').get(u'start'), var.get(u'expr').get(u'end')))
        var.put(u'val', var.get(u'directiveLiteral').put(u'value', var.get(u'raw').callprop(u'slice', Js(1.0), (-Js(1.0)))))
        var.get(u"this").callprop(u'addExtra', var.get(u'directiveLiteral'), Js(u'raw'), var.get(u'raw'))
        var.get(u"this").callprop(u'addExtra', var.get(u'directiveLiteral'), Js(u'rawValue'), var.get(u'val'))
        var.get(u'directive').put(u'value', var.get(u"this").callprop(u'finishNodeAt', var.get(u'directiveLiteral'), Js(u'DirectiveLiteral'), var.get(u'expr').get(u'end'), var.get(u'expr').get(u'loc').get(u'end')))
        return var.get(u"this").callprop(u'finishNodeAt', var.get(u'directive'), Js(u'Directive'), var.get(u'stmt').get(u'end'), var.get(u'stmt').get(u'loc').get(u'end'))
    PyJs_anonymous_2963_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'stmtToDirective', PyJs_anonymous_2963_)
    @Js
    def PyJs_anonymous_2964_(declaration, topLevel, this, arguments, var=var):
        var = Scope({u'this':this, u'topLevel':topLevel, u'arguments':arguments, u'declaration':declaration}, var)
        var.registers([u'node', u'expr', u'topLevel', u'state', u'starttype', u'declaration', u'maybeName'])
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'at')):
            var.get(u"this").callprop(u'parseDecorators', var.get(u'true'))
        var.put(u'starttype', var.get(u"this").get(u'state').get(u'type'))
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'starttype'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_break')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_continue')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseBreakContinueStatement', var.get(u'node'), var.get(u'starttype').get(u'keyword'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_debugger')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseDebuggerStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_do')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseDoStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_for')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseForStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_function')):
                SWITCHED = True
                if var.get(u'declaration').neg():
                    var.get(u"this").callprop(u'unexpected')
                return var.get(u"this").callprop(u'parseFunctionStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_class')):
                SWITCHED = True
                if var.get(u'declaration').neg():
                    var.get(u"this").callprop(u'unexpected')
                var.get(u"this").callprop(u'takeDecorators', var.get(u'node'))
                return var.get(u"this").callprop(u'parseClass', var.get(u'node'), var.get(u'true'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_if')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseIfStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_return')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseReturnStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_switch')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseSwitchStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_throw')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseThrowStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_try')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseTryStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_let')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_const')):
                SWITCHED = True
                if var.get(u'declaration').neg():
                    var.get(u"this").callprop(u'unexpected')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_var')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseVarStatement', var.get(u'node'), var.get(u'starttype'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_while')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseWhileStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_with')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseWithStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'braceL')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseBlock')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'semi')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseEmptyStatement', var.get(u'node'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_export')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_import')):
                SWITCHED = True
                if (var.get(u"this").callprop(u'hasPlugin', Js(u'dynamicImport')) and PyJsStrictEq(var.get(u"this").callprop(u'lookahead').get(u'type'),var.get(u'types').get(u'parenL'))):
                    break
                if var.get(u"this").get(u'options').get(u'allowImportExportEverywhere').neg():
                    if var.get(u'topLevel').neg():
                        var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u"'import' and 'export' may only appear at the top level"))
                    if var.get(u"this").get(u'inModule').neg():
                        var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u"'import' and 'export' may appear only with 'sourceType: module'"))
                return (var.get(u"this").callprop(u'parseImport', var.get(u'node')) if PyJsStrictEq(var.get(u'starttype'),var.get(u'types').get(u'_import')) else var.get(u"this").callprop(u'parseExport', var.get(u'node')))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'name')):
                SWITCHED = True
                if PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),Js(u'async')):
                    var.put(u'state', var.get(u"this").get(u'state').callprop(u'clone'))
                    var.get(u"this").callprop(u'next')
                    if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'_function')) and var.get(u"this").callprop(u'canInsertSemicolon').neg()):
                        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'_function'))
                        return var.get(u"this").callprop(u'parseFunction', var.get(u'node'), var.get(u'true'), Js(False), var.get(u'true'))
                    else:
                        var.get(u"this").put(u'state', var.get(u'state'))
            SWITCHED = True
            break
        var.put(u'maybeName', var.get(u"this").get(u'state').get(u'value'))
        var.put(u'expr', var.get(u"this").callprop(u'parseExpression'))
        if ((PyJsStrictEq(var.get(u'starttype'),var.get(u'types').get(u'name')) and PyJsStrictEq(var.get(u'expr').get(u'type'),Js(u'Identifier'))) and var.get(u"this").callprop(u'eat', var.get(u'types').get(u'colon'))):
            return var.get(u"this").callprop(u'parseLabeledStatement', var.get(u'node'), var.get(u'maybeName'), var.get(u'expr'))
        else:
            return var.get(u"this").callprop(u'parseExpressionStatement', var.get(u'node'), var.get(u'expr'))
    PyJs_anonymous_2964_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseStatement', PyJs_anonymous_2964_)
    @Js
    def PyJs_anonymous_2965_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u"this").get(u'state').get(u'decorators').get(u'length'):
            var.get(u'node').put(u'decorators', var.get(u"this").get(u'state').get(u'decorators'))
            var.get(u"this").get(u'state').put(u'decorators', Js([]))
    PyJs_anonymous_2965_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'takeDecorators', PyJs_anonymous_2965_)
    @Js
    def PyJs_anonymous_2966_(allowExport, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'allowExport':allowExport}, var)
        var.registers([u'allowExport'])
        while var.get(u"this").callprop(u'match', var.get(u'types').get(u'at')):
            var.get(u"this").get(u'state').get(u'decorators').callprop(u'push', var.get(u"this").callprop(u'parseDecorator'))
        if (var.get(u'allowExport') and var.get(u"this").callprop(u'match', var.get(u'types').get(u'_export'))):
            return var.get('undefined')
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'_class')).neg():
            var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u'Leading decorators must be attached to a class declaration'))
    PyJs_anonymous_2966_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseDecorators', PyJs_anonymous_2966_)
    @Js
    def PyJs_anonymous_2967_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u"this").callprop(u'hasPlugin', Js(u'decorators')).neg():
            var.get(u"this").callprop(u'unexpected')
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u"this").callprop(u'next')
        var.get(u'node').put(u'expression', var.get(u"this").callprop(u'parseMaybeAssign'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'Decorator'))
    PyJs_anonymous_2967_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseDecorator', PyJs_anonymous_2967_)
    @Js
    def PyJs_anonymous_2968_(node, keyword, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'keyword':keyword}, var)
        var.registers([u'i', u'node', u'isBreak', u'keyword', u'lab'])
        var.put(u'isBreak', PyJsStrictEq(var.get(u'keyword'),Js(u'break')))
        var.get(u"this").callprop(u'next')
        if var.get(u"this").callprop(u'isLineTerminator'):
            var.get(u'node').put(u'label', var.get(u"null"))
        else:
            if var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')).neg():
                var.get(u"this").callprop(u'unexpected')
            else:
                var.get(u'node').put(u'label', var.get(u"this").callprop(u'parseIdentifier'))
                var.get(u"this").callprop(u'semicolon')
        var.put(u'i', PyJsComma(Js(0.0), Js(None)))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u"this").get(u'state').get(u'labels').get(u'length')):
            try:
                var.put(u'lab', var.get(u"this").get(u'state').get(u'labels').get(var.get(u'i')))
                if ((var.get(u'node').get(u'label')==var.get(u"null")) or PyJsStrictEq(var.get(u'lab').get(u'name'),var.get(u'node').get(u'label').get(u'name'))):
                    if ((var.get(u'lab').get(u'kind')!=var.get(u"null")) and (var.get(u'isBreak') or PyJsStrictEq(var.get(u'lab').get(u'kind'),Js(u'loop')))):
                        break
                    if (var.get(u'node').get(u'label') and var.get(u'isBreak')):
                        break
            finally:
                    var.put(u'i',Js(var.get(u'i').to_number())+Js(1))
        if PyJsStrictEq(var.get(u'i'),var.get(u"this").get(u'state').get(u'labels').get(u'length')):
            var.get(u"this").callprop(u'raise', var.get(u'node').get(u'start'), (Js(u'Unsyntactic ')+var.get(u'keyword')))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), (Js(u'BreakStatement') if var.get(u'isBreak') else Js(u'ContinueStatement')))
    PyJs_anonymous_2968_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseBreakContinueStatement', PyJs_anonymous_2968_)
    @Js
    def PyJs_anonymous_2969_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        var.get(u"this").callprop(u'semicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'DebuggerStatement'))
    PyJs_anonymous_2969_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseDebuggerStatement', PyJs_anonymous_2969_)
    @Js
    def PyJs_anonymous_2970_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        var.get(u"this").get(u'state').get(u'labels').callprop(u'push', var.get(u'loopLabel'))
        var.get(u'node').put(u'body', var.get(u"this").callprop(u'parseStatement', Js(False)))
        var.get(u"this").get(u'state').get(u'labels').callprop(u'pop')
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'_while'))
        var.get(u'node').put(u'test', var.get(u"this").callprop(u'parseParenExpression'))
        var.get(u"this").callprop(u'eat', var.get(u'types').get(u'semi'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'DoWhileStatement'))
    PyJs_anonymous_2970_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseDoStatement', PyJs_anonymous_2970_)
    @Js
    def PyJs_anonymous_2971_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'description', u'_init', u'init', u'varKind', u'refShorthandDefaultPos', u'forAwait'])
        var.get(u"this").callprop(u'next')
        var.get(u"this").get(u'state').get(u'labels').callprop(u'push', var.get(u'loopLabel'))
        var.put(u'forAwait', Js(False))
        if ((var.get(u"this").callprop(u'hasPlugin', Js(u'asyncGenerators')) and var.get(u"this").get(u'state').get(u'inAsync')) and var.get(u"this").callprop(u'isContextual', Js(u'await'))):
            var.put(u'forAwait', var.get(u'true'))
            var.get(u"this").callprop(u'next')
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenL'))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'semi')):
            if var.get(u'forAwait'):
                var.get(u"this").callprop(u'unexpected')
            return var.get(u"this").callprop(u'parseFor', var.get(u'node'), var.get(u"null"))
        if ((var.get(u"this").callprop(u'match', var.get(u'types').get(u'_var')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'_let'))) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'_const'))):
            var.put(u'_init', var.get(u"this").callprop(u'startNode'))
            var.put(u'varKind', var.get(u"this").get(u'state').get(u'type'))
            var.get(u"this").callprop(u'next')
            var.get(u"this").callprop(u'parseVar', var.get(u'_init'), var.get(u'true'), var.get(u'varKind'))
            var.get(u"this").callprop(u'finishNode', var.get(u'_init'), Js(u'VariableDeclaration'))
            if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'_in')) or var.get(u"this").callprop(u'isContextual', Js(u'of'))):
                if (PyJsStrictEq(var.get(u'_init').get(u'declarations').get(u'length'),Js(1.0)) and var.get(u'_init').get(u'declarations').get(u'0').get(u'init').neg()):
                    return var.get(u"this").callprop(u'parseForIn', var.get(u'node'), var.get(u'_init'), var.get(u'forAwait'))
            if var.get(u'forAwait'):
                var.get(u"this").callprop(u'unexpected')
            return var.get(u"this").callprop(u'parseFor', var.get(u'node'), var.get(u'_init'))
        PyJs_Object_2972_ = Js({u'start':Js(0.0)})
        var.put(u'refShorthandDefaultPos', PyJs_Object_2972_)
        var.put(u'init', var.get(u"this").callprop(u'parseExpression', var.get(u'true'), var.get(u'refShorthandDefaultPos')))
        if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'_in')) or var.get(u"this").callprop(u'isContextual', Js(u'of'))):
            var.put(u'description', (Js(u'for-of statement') if var.get(u"this").callprop(u'isContextual', Js(u'of')) else Js(u'for-in statement')))
            var.get(u"this").callprop(u'toAssignable', var.get(u'init'), var.get(u'undefined'), var.get(u'description'))
            var.get(u"this").callprop(u'checkLVal', var.get(u'init'), var.get(u'undefined'), var.get(u'undefined'), var.get(u'description'))
            return var.get(u"this").callprop(u'parseForIn', var.get(u'node'), var.get(u'init'), var.get(u'forAwait'))
        else:
            if var.get(u'refShorthandDefaultPos').get(u'start'):
                var.get(u"this").callprop(u'unexpected', var.get(u'refShorthandDefaultPos').get(u'start'))
        if var.get(u'forAwait'):
            var.get(u"this").callprop(u'unexpected')
        return var.get(u"this").callprop(u'parseFor', var.get(u'node'), var.get(u'init'))
    PyJs_anonymous_2971_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseForStatement', PyJs_anonymous_2971_)
    @Js
    def PyJs_anonymous_2973_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        return var.get(u"this").callprop(u'parseFunction', var.get(u'node'), var.get(u'true'))
    PyJs_anonymous_2973_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseFunctionStatement', PyJs_anonymous_2973_)
    @Js
    def PyJs_anonymous_2974_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        var.get(u'node').put(u'test', var.get(u"this").callprop(u'parseParenExpression'))
        var.get(u'node').put(u'consequent', var.get(u"this").callprop(u'parseStatement', Js(False)))
        var.get(u'node').put(u'alternate', (var.get(u"this").callprop(u'parseStatement', Js(False)) if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'_else')) else var.get(u"null")))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'IfStatement'))
    PyJs_anonymous_2974_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseIfStatement', PyJs_anonymous_2974_)
    @Js
    def PyJs_anonymous_2975_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if (var.get(u"this").get(u'state').get(u'inFunction').neg() and var.get(u"this").get(u'options').get(u'allowReturnOutsideFunction').neg()):
            var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u"'return' outside of function"))
        var.get(u"this").callprop(u'next')
        if var.get(u"this").callprop(u'isLineTerminator'):
            var.get(u'node').put(u'argument', var.get(u"null"))
        else:
            var.get(u'node').put(u'argument', var.get(u"this").callprop(u'parseExpression'))
            var.get(u"this").callprop(u'semicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ReturnStatement'))
    PyJs_anonymous_2975_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseReturnStatement', PyJs_anonymous_2975_)
    @Js
    def PyJs_anonymous_2976_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'sawDefault', u'node', u'isCase', u'cur'])
        var.get(u"this").callprop(u'next')
        var.get(u'node').put(u'discriminant', var.get(u"this").callprop(u'parseParenExpression'))
        var.get(u'node').put(u'cases', Js([]))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceL'))
        var.get(u"this").get(u'state').get(u'labels').callprop(u'push', var.get(u'switchLabel'))
        var.put(u'cur', PyJsComma(Js(0.0), Js(None)))
        #for JS loop
        pass
        while var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceR')).neg():
            if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'_case')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'_default'))):
                var.put(u'isCase', var.get(u"this").callprop(u'match', var.get(u'types').get(u'_case')))
                if var.get(u'cur'):
                    var.get(u"this").callprop(u'finishNode', var.get(u'cur'), Js(u'SwitchCase'))
                var.get(u'node').get(u'cases').callprop(u'push', var.put(u'cur', var.get(u"this").callprop(u'startNode')))
                var.get(u'cur').put(u'consequent', Js([]))
                var.get(u"this").callprop(u'next')
                if var.get(u'isCase'):
                    var.get(u'cur').put(u'test', var.get(u"this").callprop(u'parseExpression'))
                else:
                    if var.get(u'sawDefault'):
                        var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'lastTokStart'), Js(u'Multiple default clauses'))
                    var.put(u'sawDefault', var.get(u'true'))
                    var.get(u'cur').put(u'test', var.get(u"null"))
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'colon'))
            else:
                if var.get(u'cur'):
                    var.get(u'cur').get(u'consequent').callprop(u'push', var.get(u"this").callprop(u'parseStatement', var.get(u'true')))
                else:
                    var.get(u"this").callprop(u'unexpected')
        
        if var.get(u'cur'):
            var.get(u"this").callprop(u'finishNode', var.get(u'cur'), Js(u'SwitchCase'))
        var.get(u"this").callprop(u'next')
        var.get(u"this").get(u'state').get(u'labels').callprop(u'pop')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'SwitchStatement'))
    PyJs_anonymous_2976_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseSwitchStatement', PyJs_anonymous_2976_)
    @Js
    def PyJs_anonymous_2977_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        if var.get(u'lineBreak').callprop(u'test', var.get(u"this").get(u'input').callprop(u'slice', var.get(u"this").get(u'state').get(u'lastTokEnd'), var.get(u"this").get(u'state').get(u'start'))):
            var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'lastTokEnd'), Js(u'Illegal newline after throw'))
        var.get(u'node').put(u'argument', var.get(u"this").callprop(u'parseExpression'))
        var.get(u"this").callprop(u'semicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ThrowStatement'))
    PyJs_anonymous_2977_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseThrowStatement', PyJs_anonymous_2977_)
    var.put(u'empty', Js([]))
    @Js
    def PyJs_anonymous_2978_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'clause'])
        var.get(u"this").callprop(u'next')
        var.get(u'node').put(u'block', var.get(u"this").callprop(u'parseBlock'))
        var.get(u'node').put(u'handler', var.get(u"null"))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'_catch')):
            var.put(u'clause', var.get(u"this").callprop(u'startNode'))
            var.get(u"this").callprop(u'next')
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenL'))
            var.get(u'clause').put(u'param', var.get(u"this").callprop(u'parseBindingAtom'))
            var.get(u"this").callprop(u'checkLVal', var.get(u'clause').get(u'param'), var.get(u'true'), var.get(u'Object').callprop(u'create', var.get(u"null")), Js(u'catch clause'))
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenR'))
            var.get(u'clause').put(u'body', var.get(u"this").callprop(u'parseBlock'))
            var.get(u'node').put(u'handler', var.get(u"this").callprop(u'finishNode', var.get(u'clause'), Js(u'CatchClause')))
        var.get(u'node').put(u'guardedHandlers', var.get(u'empty'))
        var.get(u'node').put(u'finalizer', (var.get(u"this").callprop(u'parseBlock') if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'_finally')) else var.get(u"null")))
        if (var.get(u'node').get(u'handler').neg() and var.get(u'node').get(u'finalizer').neg()):
            var.get(u"this").callprop(u'raise', var.get(u'node').get(u'start'), Js(u'Missing catch or finally clause'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'TryStatement'))
    PyJs_anonymous_2978_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseTryStatement', PyJs_anonymous_2978_)
    @Js
    def PyJs_anonymous_2979_(node, kind, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'kind':kind, u'arguments':arguments}, var)
        var.registers([u'node', u'kind'])
        var.get(u"this").callprop(u'next')
        var.get(u"this").callprop(u'parseVar', var.get(u'node'), Js(False), var.get(u'kind'))
        var.get(u"this").callprop(u'semicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'VariableDeclaration'))
    PyJs_anonymous_2979_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseVarStatement', PyJs_anonymous_2979_)
    @Js
    def PyJs_anonymous_2980_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        var.get(u'node').put(u'test', var.get(u"this").callprop(u'parseParenExpression'))
        var.get(u"this").get(u'state').get(u'labels').callprop(u'push', var.get(u'loopLabel'))
        var.get(u'node').put(u'body', var.get(u"this").callprop(u'parseStatement', Js(False)))
        var.get(u"this").get(u'state').get(u'labels').callprop(u'pop')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'WhileStatement'))
    PyJs_anonymous_2980_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseWhileStatement', PyJs_anonymous_2980_)
    @Js
    def PyJs_anonymous_2981_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u"this").get(u'state').get(u'strict'):
            var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u"'with' in strict mode"))
        var.get(u"this").callprop(u'next')
        var.get(u'node').put(u'object', var.get(u"this").callprop(u'parseParenExpression'))
        var.get(u'node').put(u'body', var.get(u"this").callprop(u'parseStatement', Js(False)))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'WithStatement'))
    PyJs_anonymous_2981_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseWithStatement', PyJs_anonymous_2981_)
    @Js
    def PyJs_anonymous_2982_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'EmptyStatement'))
    PyJs_anonymous_2982_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseEmptyStatement', PyJs_anonymous_2982_)
    @Js
    def PyJs_anonymous_2983_(node, maybeName, expr, this, arguments, var=var):
        var = Scope({u'node':node, u'expr':expr, u'this':this, u'maybeName':maybeName, u'arguments':arguments}, var)
        var.registers([u'node', u'_label', u'_isArray', u'_iterator', u'i', u'expr', u'kind', u'label', u'_i', u'_ref', u'maybeName'])
        #for JS loop
        var.put(u'_iterator', var.get(u"this").get(u'state').get(u'labels'))
        var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
        var.put(u'_i', Js(0.0))
        var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else var.get(u'_iterator').callprop(var.get(u'Symbol').get(u'iterator'))))
        while 1:
            pass
            if var.get(u'_isArray'):
                if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                    break
                var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
            else:
                var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                if var.get(u'_i').get(u'done'):
                    break
                var.put(u'_ref', var.get(u'_i').get(u'value'))
            var.put(u'_label', var.get(u'_ref'))
            if PyJsStrictEq(var.get(u'_label').get(u'name'),var.get(u'maybeName')):
                var.get(u"this").callprop(u'raise', var.get(u'expr').get(u'start'), ((Js(u"Label '")+var.get(u'maybeName'))+Js(u"' is already declared")))
        
        var.put(u'kind', (Js(u'loop') if var.get(u"this").get(u'state').get(u'type').get(u'isLoop') else (Js(u'switch') if var.get(u"this").callprop(u'match', var.get(u'types').get(u'_switch')) else var.get(u"null"))))
        #for JS loop
        var.put(u'i', (var.get(u"this").get(u'state').get(u'labels').get(u'length')-Js(1.0)))
        while (var.get(u'i')>=Js(0.0)):
            try:
                var.put(u'label', var.get(u"this").get(u'state').get(u'labels').get(var.get(u'i')))
                if PyJsStrictEq(var.get(u'label').get(u'statementStart'),var.get(u'node').get(u'start')):
                    var.get(u'label').put(u'statementStart', var.get(u"this").get(u'state').get(u'start'))
                    var.get(u'label').put(u'kind', var.get(u'kind'))
                else:
                    break
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
        PyJs_Object_2984_ = Js({u'name':var.get(u'maybeName'),u'kind':var.get(u'kind'),u'statementStart':var.get(u"this").get(u'state').get(u'start')})
        var.get(u"this").get(u'state').get(u'labels').callprop(u'push', PyJs_Object_2984_)
        var.get(u'node').put(u'body', var.get(u"this").callprop(u'parseStatement', var.get(u'true')))
        var.get(u"this").get(u'state').get(u'labels').callprop(u'pop')
        var.get(u'node').put(u'label', var.get(u'expr'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'LabeledStatement'))
    PyJs_anonymous_2983_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseLabeledStatement', PyJs_anonymous_2983_)
    @Js
    def PyJs_anonymous_2985_(node, expr, this, arguments, var=var):
        var = Scope({u'node':node, u'expr':expr, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'expr'])
        var.get(u'node').put(u'expression', var.get(u'expr'))
        var.get(u"this").callprop(u'semicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ExpressionStatement'))
    PyJs_anonymous_2985_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseExpressionStatement', PyJs_anonymous_2985_)
    @Js
    def PyJs_anonymous_2986_(allowDirectives, this, arguments, var=var):
        var = Scope({u'this':this, u'allowDirectives':allowDirectives, u'arguments':arguments}, var)
        var.registers([u'node', u'allowDirectives'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceL'))
        var.get(u"this").callprop(u'parseBlockBody', var.get(u'node'), var.get(u'allowDirectives'), Js(False), var.get(u'types').get(u'braceR'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'BlockStatement'))
    PyJs_anonymous_2986_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseBlock', PyJs_anonymous_2986_)
    @Js
    def PyJs_anonymous_2987_(node, allowDirectives, topLevel, end, this, arguments, var=var):
        var = Scope({u'node':node, u'topLevel':topLevel, u'allowDirectives':allowDirectives, u'end':end, u'arguments':arguments, u'this':this}, var)
        var.registers([u'node', u'allowDirectives', u'end', u'parsedNonDirective', u'directive', u'topLevel', u'stmt', u'octalPosition', u'oldStrict'])
        var.get(u'node').put(u'body', Js([]))
        var.get(u'node').put(u'directives', Js([]))
        var.put(u'parsedNonDirective', Js(False))
        var.put(u'oldStrict', PyJsComma(Js(0.0), Js(None)))
        var.put(u'octalPosition', PyJsComma(Js(0.0), Js(None)))
        while var.get(u"this").callprop(u'eat', var.get(u'end')).neg():
            if ((var.get(u'parsedNonDirective').neg() and var.get(u"this").get(u'state').get(u'containsOctal')) and var.get(u'octalPosition').neg()):
                var.put(u'octalPosition', var.get(u"this").get(u'state').get(u'octalPosition'))
            var.put(u'stmt', var.get(u"this").callprop(u'parseStatement', var.get(u'true'), var.get(u'topLevel')))
            if ((((var.get(u'allowDirectives') and var.get(u'parsedNonDirective').neg()) and PyJsStrictEq(var.get(u'stmt').get(u'type'),Js(u'ExpressionStatement'))) and PyJsStrictEq(var.get(u'stmt').get(u'expression').get(u'type'),Js(u'StringLiteral'))) and var.get(u'stmt').get(u'expression').get(u'extra').get(u'parenthesized').neg()):
                var.put(u'directive', var.get(u"this").callprop(u'stmtToDirective', var.get(u'stmt')))
                var.get(u'node').get(u'directives').callprop(u'push', var.get(u'directive'))
                if (PyJsStrictEq(var.get(u'oldStrict'),var.get(u'undefined')) and PyJsStrictEq(var.get(u'directive').get(u'value').get(u'value'),Js(u'use strict'))):
                    var.put(u'oldStrict', var.get(u"this").get(u'state').get(u'strict'))
                    var.get(u"this").callprop(u'setStrict', var.get(u'true'))
                    if var.get(u'octalPosition'):
                        var.get(u"this").callprop(u'raise', var.get(u'octalPosition'), Js(u'Octal literal in strict mode'))
                continue
            var.put(u'parsedNonDirective', var.get(u'true'))
            var.get(u'node').get(u'body').callprop(u'push', var.get(u'stmt'))
        if PyJsStrictEq(var.get(u'oldStrict'),Js(False)):
            var.get(u"this").callprop(u'setStrict', Js(False))
    PyJs_anonymous_2987_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseBlockBody', PyJs_anonymous_2987_)
    @Js
    def PyJs_anonymous_2988_(node, init, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'init':init, u'arguments':arguments}, var)
        var.registers([u'node', u'init'])
        var.get(u'node').put(u'init', var.get(u'init'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'semi'))
        var.get(u'node').put(u'test', (var.get(u"null") if var.get(u"this").callprop(u'match', var.get(u'types').get(u'semi')) else var.get(u"this").callprop(u'parseExpression')))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'semi'))
        var.get(u'node').put(u'update', (var.get(u"null") if var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenR')) else var.get(u"this").callprop(u'parseExpression')))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenR'))
        var.get(u'node').put(u'body', var.get(u"this").callprop(u'parseStatement', Js(False)))
        var.get(u"this").get(u'state').get(u'labels').callprop(u'pop')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ForStatement'))
    PyJs_anonymous_2988_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseFor', PyJs_anonymous_2988_)
    @Js
    def PyJs_anonymous_2989_(node, init, forAwait, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'init':init, u'forAwait':forAwait, u'arguments':arguments}, var)
        var.registers([u'node', u'init', u'type', u'forAwait'])
        var.put(u'type', PyJsComma(Js(0.0), Js(None)))
        if var.get(u'forAwait'):
            var.get(u"this").callprop(u'eatContextual', Js(u'of'))
            var.put(u'type', Js(u'ForAwaitStatement'))
        else:
            var.put(u'type', (Js(u'ForInStatement') if var.get(u"this").callprop(u'match', var.get(u'types').get(u'_in')) else Js(u'ForOfStatement')))
            var.get(u"this").callprop(u'next')
        var.get(u'node').put(u'left', var.get(u'init'))
        var.get(u'node').put(u'right', var.get(u"this").callprop(u'parseExpression'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenR'))
        var.get(u'node').put(u'body', var.get(u"this").callprop(u'parseStatement', Js(False)))
        var.get(u"this").get(u'state').get(u'labels').callprop(u'pop')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), var.get(u'type'))
    PyJs_anonymous_2989_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseForIn', PyJs_anonymous_2989_)
    @Js
    def PyJs_anonymous_2990_(node, isFor, kind, this, arguments, var=var):
        var = Scope({u'node':node, u'isFor':isFor, u'kind':kind, u'this':this, u'arguments':arguments}, var)
        var.registers([u'decl', u'node', u'kind', u'isFor'])
        var.get(u'node').put(u'declarations', Js([]))
        var.get(u'node').put(u'kind', var.get(u'kind').get(u'keyword'))
        #for JS loop
        
        while 1:
            var.put(u'decl', var.get(u"this").callprop(u'startNode'))
            var.get(u"this").callprop(u'parseVarHead', var.get(u'decl'))
            if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'eq')):
                var.get(u'decl').put(u'init', var.get(u"this").callprop(u'parseMaybeAssign', var.get(u'isFor')))
            else:
                if (PyJsStrictEq(var.get(u'kind'),var.get(u'types').get(u'_const')) and (var.get(u"this").callprop(u'match', var.get(u'types').get(u'_in')) or var.get(u"this").callprop(u'isContextual', Js(u'of'))).neg()):
                    var.get(u"this").callprop(u'unexpected')
                else:
                    if (PyJsStrictNeq(var.get(u'decl').get(u'id').get(u'type'),Js(u'Identifier')) and (var.get(u'isFor') and (var.get(u"this").callprop(u'match', var.get(u'types').get(u'_in')) or var.get(u"this").callprop(u'isContextual', Js(u'of')))).neg()):
                        var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'lastTokEnd'), Js(u'Complex binding patterns require an initialization value'))
                    else:
                        var.get(u'decl').put(u'init', var.get(u"null"))
            var.get(u'node').get(u'declarations').callprop(u'push', var.get(u"this").callprop(u'finishNode', var.get(u'decl'), Js(u'VariableDeclarator')))
            if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'comma')).neg():
                break
        
        return var.get(u'node')
    PyJs_anonymous_2990_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseVar', PyJs_anonymous_2990_)
    @Js
    def PyJs_anonymous_2991_(decl, this, arguments, var=var):
        var = Scope({u'decl':decl, u'this':this, u'arguments':arguments}, var)
        var.registers([u'decl'])
        var.get(u'decl').put(u'id', var.get(u"this").callprop(u'parseBindingAtom'))
        var.get(u"this").callprop(u'checkLVal', var.get(u'decl').get(u'id'), var.get(u'true'), var.get(u'undefined'), Js(u'variable declaration'))
    PyJs_anonymous_2991_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseVarHead', PyJs_anonymous_2991_)
    @Js
    def PyJs_anonymous_2992_(node, isStatement, allowExpressionBody, isAsync, optionalId, this, arguments, var=var):
        var = Scope({u'node':node, u'optionalId':optionalId, u'isAsync':isAsync, u'arguments':arguments, u'this':this, u'isStatement':isStatement, u'allowExpressionBody':allowExpressionBody}, var)
        var.registers([u'node', u'optionalId', u'isAsync', u'oldInMethod', u'isStatement', u'allowExpressionBody'])
        var.put(u'oldInMethod', var.get(u"this").get(u'state').get(u'inMethod'))
        var.get(u"this").get(u'state').put(u'inMethod', Js(False))
        var.get(u"this").callprop(u'initFunction', var.get(u'node'), var.get(u'isAsync'))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'star')):
            if (var.get(u'node').get(u'async') and var.get(u"this").callprop(u'hasPlugin', Js(u'asyncGenerators')).neg()):
                var.get(u"this").callprop(u'unexpected')
            else:
                var.get(u'node').put(u'generator', var.get(u'true'))
                var.get(u"this").callprop(u'next')
        if (((var.get(u'isStatement') and var.get(u'optionalId').neg()) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')).neg()) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'_yield')).neg()):
            var.get(u"this").callprop(u'unexpected')
        if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'_yield'))):
            var.get(u'node').put(u'id', var.get(u"this").callprop(u'parseBindingIdentifier'))
        var.get(u"this").callprop(u'parseFunctionParams', var.get(u'node'))
        var.get(u"this").callprop(u'parseFunctionBody', var.get(u'node'), var.get(u'allowExpressionBody'))
        var.get(u"this").get(u'state').put(u'inMethod', var.get(u'oldInMethod'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), (Js(u'FunctionDeclaration') if var.get(u'isStatement') else Js(u'FunctionExpression')))
    PyJs_anonymous_2992_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseFunction', PyJs_anonymous_2992_)
    @Js
    def PyJs_anonymous_2993_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenL'))
        var.get(u'node').put(u'params', var.get(u"this").callprop(u'parseBindingList', var.get(u'types').get(u'parenR')))
    PyJs_anonymous_2993_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseFunctionParams', PyJs_anonymous_2993_)
    @Js
    def PyJs_anonymous_2994_(node, isStatement, optionalId, this, arguments, var=var):
        var = Scope({u'node':node, u'optionalId':optionalId, u'this':this, u'isStatement':isStatement, u'arguments':arguments}, var)
        var.registers([u'node', u'optionalId', u'isStatement'])
        var.get(u"this").callprop(u'next')
        var.get(u"this").callprop(u'parseClassId', var.get(u'node'), var.get(u'isStatement'), var.get(u'optionalId'))
        var.get(u"this").callprop(u'parseClassSuper', var.get(u'node'))
        var.get(u"this").callprop(u'parseClassBody', var.get(u'node'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), (Js(u'ClassDeclaration') if var.get(u'isStatement') else Js(u'ClassExpression')))
    PyJs_anonymous_2994_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseClass', PyJs_anonymous_2994_)
    @Js
    def PyJs_anonymous_2995_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return (var.get(u"this").callprop(u'match', var.get(u'types').get(u'eq')) or var.get(u"this").callprop(u'isLineTerminator'))
    PyJs_anonymous_2995_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'isClassProperty', PyJs_anonymous_2995_)
    @Js
    def PyJs_anonymous_2996_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return Js(False)
    PyJs_anonymous_2996_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'isClassMutatorStarter', PyJs_anonymous_2996_)
    @Js
    def PyJs_anonymous_2997_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'isStaticPrototype', u'hadConstructor', u'isConstructorCall', u'isGetSet', u'isGenerator', u'start', u'paramCount', u'isMaybeStatic', u'classBody', u'key', u'isConstructor', u'isAsync', u'isAsyncMethod', u'hadConstructorCall', u'decorators', u'method', u'oldStrict'])
        var.put(u'oldStrict', var.get(u"this").get(u'state').get(u'strict'))
        var.get(u"this").get(u'state').put(u'strict', var.get(u'true'))
        var.put(u'hadConstructorCall', Js(False))
        var.put(u'hadConstructor', Js(False))
        var.put(u'decorators', Js([]))
        var.put(u'classBody', var.get(u"this").callprop(u'startNode'))
        var.get(u'classBody').put(u'body', Js([]))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceL'))
        while var.get(u"this").callprop(u'eat', var.get(u'types').get(u'braceR')).neg():
            if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'semi')):
                continue
            if var.get(u"this").callprop(u'match', var.get(u'types').get(u'at')):
                var.get(u'decorators').callprop(u'push', var.get(u"this").callprop(u'parseDecorator'))
                continue
            var.put(u'method', var.get(u"this").callprop(u'startNode'))
            if var.get(u'decorators').get(u'length'):
                var.get(u'method').put(u'decorators', var.get(u'decorators'))
                var.put(u'decorators', Js([]))
            var.put(u'isConstructorCall', Js(False))
            var.put(u'isMaybeStatic', (var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')) and PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),Js(u'static'))))
            var.put(u'isGenerator', var.get(u"this").callprop(u'eat', var.get(u'types').get(u'star')))
            var.put(u'isGetSet', Js(False))
            var.put(u'isAsync', Js(False))
            var.get(u"this").callprop(u'parsePropertyName', var.get(u'method'))
            var.get(u'method').put(u'static', (var.get(u'isMaybeStatic') and var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL')).neg()))
            if var.get(u'method').get(u'static'):
                var.put(u'isGenerator', var.get(u"this").callprop(u'eat', var.get(u'types').get(u'star')))
                var.get(u"this").callprop(u'parsePropertyName', var.get(u'method'))
            if var.get(u'isGenerator').neg():
                if var.get(u"this").callprop(u'isClassProperty'):
                    var.get(u'classBody').get(u'body').callprop(u'push', var.get(u"this").callprop(u'parseClassProperty', var.get(u'method')))
                    continue
                def PyJs_LONG_2998_(var=var):
                    return (((((PyJsStrictEq(var.get(u'method').get(u'key').get(u'type'),Js(u'Identifier')) and var.get(u'method').get(u'computed').neg()) and var.get(u"this").callprop(u'hasPlugin', Js(u'classConstructorCall'))) and PyJsStrictEq(var.get(u'method').get(u'key').get(u'name'),Js(u'call'))) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'name'))) and PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),Js(u'constructor')))
                if PyJs_LONG_2998_():
                    var.put(u'isConstructorCall', var.get(u'true'))
                    var.get(u"this").callprop(u'parsePropertyName', var.get(u'method'))
            var.put(u'isAsyncMethod', (((var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL')).neg() and var.get(u'method').get(u'computed').neg()) and PyJsStrictEq(var.get(u'method').get(u'key').get(u'type'),Js(u'Identifier'))) and PyJsStrictEq(var.get(u'method').get(u'key').get(u'name'),Js(u'async'))))
            if var.get(u'isAsyncMethod'):
                if (var.get(u"this").callprop(u'hasPlugin', Js(u'asyncGenerators')) and var.get(u"this").callprop(u'eat', var.get(u'types').get(u'star'))):
                    var.put(u'isGenerator', var.get(u'true'))
                var.put(u'isAsync', var.get(u'true'))
                var.get(u"this").callprop(u'parsePropertyName', var.get(u'method'))
            var.get(u'method').put(u'kind', Js(u'method'))
            if var.get(u'method').get(u'computed').neg():
                var.put(u'key', var.get(u'method').get(u'key'))
                if (((((var.get(u'isAsync').neg() and var.get(u'isGenerator').neg()) and var.get(u"this").callprop(u'isClassMutatorStarter').neg()) and PyJsStrictEq(var.get(u'key').get(u'type'),Js(u'Identifier'))) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL')).neg()) and (PyJsStrictEq(var.get(u'key').get(u'name'),Js(u'get')) or PyJsStrictEq(var.get(u'key').get(u'name'),Js(u'set')))):
                    var.put(u'isGetSet', var.get(u'true'))
                    var.get(u'method').put(u'kind', var.get(u'key').get(u'name'))
                    var.put(u'key', var.get(u"this").callprop(u'parsePropertyName', var.get(u'method')))
                var.put(u'isConstructor', ((var.get(u'isConstructorCall').neg() and var.get(u'method').get(u'static').neg()) and ((PyJsStrictEq(var.get(u'key').get(u'type'),Js(u'Identifier')) and PyJsStrictEq(var.get(u'key').get(u'name'),Js(u'constructor'))) or (PyJsStrictEq(var.get(u'key').get(u'type'),Js(u'StringLiteral')) and PyJsStrictEq(var.get(u'key').get(u'value'),Js(u'constructor'))))))
                if var.get(u'isConstructor'):
                    if var.get(u'hadConstructor'):
                        var.get(u"this").callprop(u'raise', var.get(u'key').get(u'start'), Js(u'Duplicate constructor in the same class'))
                    if var.get(u'isGetSet'):
                        var.get(u"this").callprop(u'raise', var.get(u'key').get(u'start'), Js(u"Constructor can't have get/set modifier"))
                    if var.get(u'isGenerator'):
                        var.get(u"this").callprop(u'raise', var.get(u'key').get(u'start'), Js(u"Constructor can't be a generator"))
                    if var.get(u'isAsync'):
                        var.get(u"this").callprop(u'raise', var.get(u'key').get(u'start'), Js(u"Constructor can't be an async function"))
                    var.get(u'method').put(u'kind', Js(u'constructor'))
                    var.put(u'hadConstructor', var.get(u'true'))
                var.put(u'isStaticPrototype', (var.get(u'method').get(u'static') and ((PyJsStrictEq(var.get(u'key').get(u'type'),Js(u'Identifier')) and PyJsStrictEq(var.get(u'key').get(u'name'),Js(u'prototype'))) or (PyJsStrictEq(var.get(u'key').get(u'type'),Js(u'StringLiteral')) and PyJsStrictEq(var.get(u'key').get(u'value'),Js(u'prototype'))))))
                if var.get(u'isStaticPrototype'):
                    var.get(u"this").callprop(u'raise', var.get(u'key').get(u'start'), Js(u'Classes may not have static property named prototype'))
            if var.get(u'isConstructorCall'):
                if var.get(u'hadConstructorCall'):
                    var.get(u"this").callprop(u'raise', var.get(u'method').get(u'start'), Js(u'Duplicate constructor call in the same class'))
                var.get(u'method').put(u'kind', Js(u'constructorCall'))
                var.put(u'hadConstructorCall', var.get(u'true'))
            if ((PyJsStrictEq(var.get(u'method').get(u'kind'),Js(u'constructor')) or PyJsStrictEq(var.get(u'method').get(u'kind'),Js(u'constructorCall'))) and var.get(u'method').get(u'decorators')):
                var.get(u"this").callprop(u'raise', var.get(u'method').get(u'start'), Js(u"You can't attach decorators to a class constructor"))
            var.get(u"this").callprop(u'parseClassMethod', var.get(u'classBody'), var.get(u'method'), var.get(u'isGenerator'), var.get(u'isAsync'))
            if var.get(u'isGetSet'):
                var.put(u'paramCount', (Js(0.0) if PyJsStrictEq(var.get(u'method').get(u'kind'),Js(u'get')) else Js(1.0)))
                if PyJsStrictNeq(var.get(u'method').get(u'params').get(u'length'),var.get(u'paramCount')):
                    var.put(u'start', var.get(u'method').get(u'start'))
                    if PyJsStrictEq(var.get(u'method').get(u'kind'),Js(u'get')):
                        var.get(u"this").callprop(u'raise', var.get(u'start'), Js(u'getter should have no params'))
                    else:
                        var.get(u"this").callprop(u'raise', var.get(u'start'), Js(u'setter should have exactly one param'))
        if var.get(u'decorators').get(u'length'):
            var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u'You have trailing decorators with no method'))
        var.get(u'node').put(u'body', var.get(u"this").callprop(u'finishNode', var.get(u'classBody'), Js(u'ClassBody')))
        var.get(u"this").get(u'state').put(u'strict', var.get(u'oldStrict'))
    PyJs_anonymous_2997_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseClassBody', PyJs_anonymous_2997_)
    @Js
    def PyJs_anonymous_2999_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'eq')):
            if var.get(u"this").callprop(u'hasPlugin', Js(u'classProperties')).neg():
                var.get(u"this").callprop(u'unexpected')
            var.get(u"this").callprop(u'next')
            var.get(u'node').put(u'value', var.get(u"this").callprop(u'parseMaybeAssign'))
        else:
            var.get(u'node').put(u'value', var.get(u"null"))
        var.get(u"this").callprop(u'semicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ClassProperty'))
    PyJs_anonymous_2999_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseClassProperty', PyJs_anonymous_2999_)
    @Js
    def PyJs_anonymous_3000_(classBody, method, isGenerator, isAsync, this, arguments, var=var):
        var = Scope({u'isAsync':isAsync, u'classBody':classBody, u'this':this, u'isGenerator':isGenerator, u'method':method, u'arguments':arguments}, var)
        var.registers([u'isAsync', u'isGenerator', u'classBody', u'method'])
        var.get(u"this").callprop(u'parseMethod', var.get(u'method'), var.get(u'isGenerator'), var.get(u'isAsync'))
        var.get(u'classBody').get(u'body').callprop(u'push', var.get(u"this").callprop(u'finishNode', var.get(u'method'), Js(u'ClassMethod')))
    PyJs_anonymous_3000_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseClassMethod', PyJs_anonymous_3000_)
    @Js
    def PyJs_anonymous_3001_(node, isStatement, optionalId, this, arguments, var=var):
        var = Scope({u'node':node, u'optionalId':optionalId, u'this':this, u'isStatement':isStatement, u'arguments':arguments}, var)
        var.registers([u'node', u'optionalId', u'isStatement'])
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')):
            var.get(u'node').put(u'id', var.get(u"this").callprop(u'parseIdentifier'))
        else:
            if (var.get(u'optionalId') or var.get(u'isStatement').neg()):
                var.get(u'node').put(u'id', var.get(u"null"))
            else:
                var.get(u"this").callprop(u'unexpected')
    PyJs_anonymous_3001_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseClassId', PyJs_anonymous_3001_)
    @Js
    def PyJs_anonymous_3002_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u'node').put(u'superClass', (var.get(u"this").callprop(u'parseExprSubscripts') if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'_extends')) else var.get(u"null")))
    PyJs_anonymous_3002_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseClassSuper', PyJs_anonymous_3002_)
    @Js
    def PyJs_anonymous_3003_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'specifier', u'expr', u'_specifier', u'_specifier2', u'needsSemi'])
        var.get(u"this").callprop(u'next')
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'star')):
            var.put(u'specifier', var.get(u"this").callprop(u'startNode'))
            var.get(u"this").callprop(u'next')
            if (var.get(u"this").callprop(u'hasPlugin', Js(u'exportExtensions')) and var.get(u"this").callprop(u'eatContextual', Js(u'as'))):
                var.get(u'specifier').put(u'exported', var.get(u"this").callprop(u'parseIdentifier'))
                var.get(u'node').put(u'specifiers', Js([var.get(u"this").callprop(u'finishNode', var.get(u'specifier'), Js(u'ExportNamespaceSpecifier'))]))
                var.get(u"this").callprop(u'parseExportSpecifiersMaybe', var.get(u'node'))
                var.get(u"this").callprop(u'parseExportFrom', var.get(u'node'), var.get(u'true'))
            else:
                var.get(u"this").callprop(u'parseExportFrom', var.get(u'node'), var.get(u'true'))
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ExportAllDeclaration'))
        else:
            if (var.get(u"this").callprop(u'hasPlugin', Js(u'exportExtensions')) and var.get(u"this").callprop(u'isExportDefaultSpecifier')):
                var.put(u'_specifier', var.get(u"this").callprop(u'startNode'))
                var.get(u'_specifier').put(u'exported', var.get(u"this").callprop(u'parseIdentifier', var.get(u'true')))
                var.get(u'node').put(u'specifiers', Js([var.get(u"this").callprop(u'finishNode', var.get(u'_specifier'), Js(u'ExportDefaultSpecifier'))]))
                if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'comma')) and PyJsStrictEq(var.get(u"this").callprop(u'lookahead').get(u'type'),var.get(u'types').get(u'star'))):
                    var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
                    var.put(u'_specifier2', var.get(u"this").callprop(u'startNode'))
                    var.get(u"this").callprop(u'expect', var.get(u'types').get(u'star'))
                    var.get(u"this").callprop(u'expectContextual', Js(u'as'))
                    var.get(u'_specifier2').put(u'exported', var.get(u"this").callprop(u'parseIdentifier'))
                    var.get(u'node').get(u'specifiers').callprop(u'push', var.get(u"this").callprop(u'finishNode', var.get(u'_specifier2'), Js(u'ExportNamespaceSpecifier')))
                else:
                    var.get(u"this").callprop(u'parseExportSpecifiersMaybe', var.get(u'node'))
                var.get(u"this").callprop(u'parseExportFrom', var.get(u'node'), var.get(u'true'))
            else:
                if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'_default')):
                    var.put(u'expr', var.get(u"this").callprop(u'startNode'))
                    var.put(u'needsSemi', Js(False))
                    if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'_function')):
                        var.put(u'expr', var.get(u"this").callprop(u'parseFunction', var.get(u'expr'), var.get(u'true'), Js(False), Js(False), var.get(u'true')))
                    else:
                        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'_class')):
                            var.put(u'expr', var.get(u"this").callprop(u'parseClass', var.get(u'expr'), var.get(u'true'), var.get(u'true')))
                        else:
                            var.put(u'needsSemi', var.get(u'true'))
                            var.put(u'expr', var.get(u"this").callprop(u'parseMaybeAssign'))
                    var.get(u'node').put(u'declaration', var.get(u'expr'))
                    if var.get(u'needsSemi'):
                        var.get(u"this").callprop(u'semicolon')
                    var.get(u"this").callprop(u'checkExport', var.get(u'node'), var.get(u'true'), var.get(u'true'))
                    return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ExportDefaultDeclaration'))
                else:
                    if (var.get(u"this").get(u'state').get(u'type').get(u'keyword') or var.get(u"this").callprop(u'shouldParseExportDeclaration')):
                        var.get(u'node').put(u'specifiers', Js([]))
                        var.get(u'node').put(u'source', var.get(u"null"))
                        var.get(u'node').put(u'declaration', var.get(u"this").callprop(u'parseExportDeclaration', var.get(u'node')))
                    else:
                        var.get(u'node').put(u'declaration', var.get(u"null"))
                        var.get(u'node').put(u'specifiers', var.get(u"this").callprop(u'parseExportSpecifiers'))
                        var.get(u"this").callprop(u'parseExportFrom', var.get(u'node'))
        var.get(u"this").callprop(u'checkExport', var.get(u'node'), var.get(u'true'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ExportNamedDeclaration'))
    PyJs_anonymous_3003_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseExport', PyJs_anonymous_3003_)
    @Js
    def PyJs_anonymous_3004_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this").callprop(u'parseStatement', var.get(u'true'))
    PyJs_anonymous_3004_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseExportDeclaration', PyJs_anonymous_3004_)
    @Js
    def PyJs_anonymous_3005_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'lookahead'])
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')):
            return ((PyJsStrictNeq(var.get(u"this").get(u'state').get(u'value'),Js(u'type')) and PyJsStrictNeq(var.get(u"this").get(u'state').get(u'value'),Js(u'async'))) and PyJsStrictNeq(var.get(u"this").get(u'state').get(u'value'),Js(u'interface')))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'_default')).neg():
            return Js(False)
        var.put(u'lookahead', var.get(u"this").callprop(u'lookahead'))
        return (PyJsStrictEq(var.get(u'lookahead').get(u'type'),var.get(u'types').get(u'comma')) or (PyJsStrictEq(var.get(u'lookahead').get(u'type'),var.get(u'types').get(u'name')) and PyJsStrictEq(var.get(u'lookahead').get(u'value'),Js(u'from'))))
    PyJs_anonymous_3005_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'isExportDefaultSpecifier', PyJs_anonymous_3005_)
    @Js
    def PyJs_anonymous_3006_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'comma')):
            var.get(u'node').put(u'specifiers', var.get(u'node').get(u'specifiers').callprop(u'concat', var.get(u"this").callprop(u'parseExportSpecifiers')))
    PyJs_anonymous_3006_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseExportSpecifiersMaybe', PyJs_anonymous_3006_)
    @Js
    def PyJs_anonymous_3007_(node, expect, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'expect':expect, u'arguments':arguments}, var)
        var.registers([u'node', u'expect'])
        if var.get(u"this").callprop(u'eatContextual', Js(u'from')):
            var.get(u'node').put(u'source', (var.get(u"this").callprop(u'parseExprAtom') if var.get(u"this").callprop(u'match', var.get(u'types').get(u'string')) else var.get(u"this").callprop(u'unexpected')))
            var.get(u"this").callprop(u'checkExport', var.get(u'node'))
        else:
            if var.get(u'expect'):
                var.get(u"this").callprop(u'unexpected')
            else:
                var.get(u'node').put(u'source', var.get(u"null"))
        var.get(u"this").callprop(u'semicolon')
    PyJs_anonymous_3007_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseExportFrom', PyJs_anonymous_3007_)
    @Js
    def PyJs_anonymous_3008_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this").callprop(u'isContextual', Js(u'async'))
    PyJs_anonymous_3008_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'shouldParseExportDeclaration', PyJs_anonymous_3008_)
    @Js
    def PyJs_anonymous_3009_(node, checkNames, isDefault, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'checkNames':checkNames, u'arguments':arguments, u'isDefault':isDefault}, var)
        var.registers([u'node', u'specifier', u'_isArray3', u'_isArray2', u'isClass', u'_ref3', u'_i3', u'_i2', u'_ref2', u'checkNames', u'isDefault', u'declaration', u'_iterator3', u'_iterator2'])
        if var.get(u'checkNames'):
            if var.get(u'isDefault'):
                var.get(u"this").callprop(u'checkDuplicateExports', var.get(u'node'), Js(u'default'))
            else:
                if (var.get(u'node').get(u'specifiers') and var.get(u'node').get(u'specifiers').get(u'length')):
                    #for JS loop
                    var.put(u'_iterator2', var.get(u'node').get(u'specifiers'))
                    var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
                    var.put(u'_i2', Js(0.0))
                    var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else var.get(u'_iterator2').callprop(var.get(u'Symbol').get(u'iterator'))))
                    while 1:
                        pass
                        if var.get(u'_isArray2'):
                            if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                                break
                            var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                        else:
                            var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                            if var.get(u'_i2').get(u'done'):
                                break
                            var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                        var.put(u'specifier', var.get(u'_ref2'))
                        var.get(u"this").callprop(u'checkDuplicateExports', var.get(u'specifier'), var.get(u'specifier').get(u'exported').get(u'name'))
                    
                else:
                    if var.get(u'node').get(u'declaration'):
                        if (PyJsStrictEq(var.get(u'node').get(u'declaration').get(u'type'),Js(u'FunctionDeclaration')) or PyJsStrictEq(var.get(u'node').get(u'declaration').get(u'type'),Js(u'ClassDeclaration'))):
                            var.get(u"this").callprop(u'checkDuplicateExports', var.get(u'node'), var.get(u'node').get(u'declaration').get(u'id').get(u'name'))
                        else:
                            if PyJsStrictEq(var.get(u'node').get(u'declaration').get(u'type'),Js(u'VariableDeclaration')):
                                #for JS loop
                                var.put(u'_iterator3', var.get(u'node').get(u'declaration').get(u'declarations'))
                                var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
                                var.put(u'_i3', Js(0.0))
                                var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else var.get(u'_iterator3').callprop(var.get(u'Symbol').get(u'iterator'))))
                                while 1:
                                    pass
                                    if var.get(u'_isArray3'):
                                        if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                                            break
                                        var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                                    else:
                                        var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                                        if var.get(u'_i3').get(u'done'):
                                            break
                                        var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                                    var.put(u'declaration', var.get(u'_ref3'))
                                    var.get(u"this").callprop(u'checkDeclaration', var.get(u'declaration').get(u'id'))
                                
        if var.get(u"this").get(u'state').get(u'decorators').get(u'length'):
            var.put(u'isClass', (var.get(u'node').get(u'declaration') and (PyJsStrictEq(var.get(u'node').get(u'declaration').get(u'type'),Js(u'ClassDeclaration')) or PyJsStrictEq(var.get(u'node').get(u'declaration').get(u'type'),Js(u'ClassExpression')))))
            if (var.get(u'node').get(u'declaration').neg() or var.get(u'isClass').neg()):
                var.get(u"this").callprop(u'raise', var.get(u'node').get(u'start'), Js(u'You can only use decorators on an export when exporting a class'))
            var.get(u"this").callprop(u'takeDecorators', var.get(u'node').get(u'declaration'))
    PyJs_anonymous_3009_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'checkExport', PyJs_anonymous_3009_)
    @Js
    def PyJs_anonymous_3010_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'_isArray5', u'_isArray4', u'_i5', u'_i4', u'elem', u'prop', u'_iterator5', u'_iterator4', u'_ref5', u'_ref4'])
        if PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'ObjectPattern')):
            #for JS loop
            var.put(u'_iterator4', var.get(u'node').get(u'properties'))
            var.put(u'_isArray4', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator4')))
            var.put(u'_i4', Js(0.0))
            var.put(u'_iterator4', (var.get(u'_iterator4') if var.get(u'_isArray4') else var.get(u'_iterator4').callprop(var.get(u'Symbol').get(u'iterator'))))
            while 1:
                pass
                if var.get(u'_isArray4'):
                    if (var.get(u'_i4')>=var.get(u'_iterator4').get(u'length')):
                        break
                    var.put(u'_ref4', var.get(u'_iterator4').get((var.put(u'_i4',Js(var.get(u'_i4').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i4', var.get(u'_iterator4').callprop(u'next'))
                    if var.get(u'_i4').get(u'done'):
                        break
                    var.put(u'_ref4', var.get(u'_i4').get(u'value'))
                var.put(u'prop', var.get(u'_ref4'))
                var.get(u"this").callprop(u'checkDeclaration', var.get(u'prop'))
            
        else:
            if PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'ArrayPattern')):
                #for JS loop
                var.put(u'_iterator5', var.get(u'node').get(u'elements'))
                var.put(u'_isArray5', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator5')))
                var.put(u'_i5', Js(0.0))
                var.put(u'_iterator5', (var.get(u'_iterator5') if var.get(u'_isArray5') else var.get(u'_iterator5').callprop(var.get(u'Symbol').get(u'iterator'))))
                while 1:
                    pass
                    if var.get(u'_isArray5'):
                        if (var.get(u'_i5')>=var.get(u'_iterator5').get(u'length')):
                            break
                        var.put(u'_ref5', var.get(u'_iterator5').get((var.put(u'_i5',Js(var.get(u'_i5').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i5', var.get(u'_iterator5').callprop(u'next'))
                        if var.get(u'_i5').get(u'done'):
                            break
                        var.put(u'_ref5', var.get(u'_i5').get(u'value'))
                    var.put(u'elem', var.get(u'_ref5'))
                    if var.get(u'elem'):
                        var.get(u"this").callprop(u'checkDeclaration', var.get(u'elem'))
                
            else:
                if PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'ObjectProperty')):
                    var.get(u"this").callprop(u'checkDeclaration', var.get(u'node').get(u'value'))
                else:
                    if (PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'RestElement')) or PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'RestProperty'))):
                        var.get(u"this").callprop(u'checkDeclaration', var.get(u'node').get(u'argument'))
                    else:
                        if PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'Identifier')):
                            var.get(u"this").callprop(u'checkDuplicateExports', var.get(u'node'), var.get(u'node').get(u'name'))
    PyJs_anonymous_3010_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'checkDeclaration', PyJs_anonymous_3010_)
    @Js
    def PyJs_anonymous_3011_(node, name, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'node', u'name'])
        if (var.get(u"this").get(u'state').get(u'exportedIdentifiers').callprop(u'indexOf', var.get(u'name'))>(-Js(1.0))):
            var.get(u"this").callprop(u'raiseDuplicateExportError', var.get(u'node'), var.get(u'name'))
        var.get(u"this").get(u'state').get(u'exportedIdentifiers').callprop(u'push', var.get(u'name'))
    PyJs_anonymous_3011_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'checkDuplicateExports', PyJs_anonymous_3011_)
    @Js
    def PyJs_anonymous_3012_(node, name, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'node', u'name'])
        var.get(u"this").callprop(u'raise', var.get(u'node').get(u'start'), (Js(u'Only one default export allowed per module.') if PyJsStrictEq(var.get(u'name'),Js(u'default')) else ((Js(u'`')+var.get(u'name'))+Js(u'` has already been exported. Exported identifiers must be unique.'))))
    PyJs_anonymous_3012_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'raiseDuplicateExportError', PyJs_anonymous_3012_)
    @Js
    def PyJs_anonymous_3013_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'nodes', u'isDefault', u'needsFrom', u'first'])
        var.put(u'nodes', Js([]))
        var.put(u'first', var.get(u'true'))
        var.put(u'needsFrom', PyJsComma(Js(0.0), Js(None)))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceL'))
        while var.get(u"this").callprop(u'eat', var.get(u'types').get(u'braceR')).neg():
            if var.get(u'first'):
                var.put(u'first', Js(False))
            else:
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
                if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'braceR')):
                    break
            var.put(u'isDefault', var.get(u"this").callprop(u'match', var.get(u'types').get(u'_default')))
            if (var.get(u'isDefault') and var.get(u'needsFrom').neg()):
                var.put(u'needsFrom', var.get(u'true'))
            var.put(u'node', var.get(u"this").callprop(u'startNode'))
            var.get(u'node').put(u'local', var.get(u"this").callprop(u'parseIdentifier', var.get(u'isDefault')))
            var.get(u'node').put(u'exported', (var.get(u"this").callprop(u'parseIdentifier', var.get(u'true')) if var.get(u"this").callprop(u'eatContextual', Js(u'as')) else var.get(u'node').get(u'local').callprop(u'__clone')))
            var.get(u'nodes').callprop(u'push', var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ExportSpecifier')))
        if (var.get(u'needsFrom') and var.get(u"this").callprop(u'isContextual', Js(u'from')).neg()):
            var.get(u"this").callprop(u'unexpected')
        return var.get(u'nodes')
    PyJs_anonymous_3013_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseExportSpecifiers', PyJs_anonymous_3013_)
    @Js
    def PyJs_anonymous_3014_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'string')):
            var.get(u'node').put(u'specifiers', Js([]))
            var.get(u'node').put(u'source', var.get(u"this").callprop(u'parseExprAtom'))
        else:
            var.get(u'node').put(u'specifiers', Js([]))
            var.get(u"this").callprop(u'parseImportSpecifiers', var.get(u'node'))
            var.get(u"this").callprop(u'expectContextual', Js(u'from'))
            var.get(u'node').put(u'source', (var.get(u"this").callprop(u'parseExprAtom') if var.get(u"this").callprop(u'match', var.get(u'types').get(u'string')) else var.get(u"this").callprop(u'unexpected')))
        var.get(u"this").callprop(u'semicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ImportDeclaration'))
    PyJs_anonymous_3014_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseImport', PyJs_anonymous_3014_)
    @Js
    def PyJs_anonymous_3015_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'specifier', u'startLoc', u'_specifier3', u'startPos', u'first'])
        var.put(u'first', var.get(u'true'))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')):
            var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
            var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
            var.get(u'node').get(u'specifiers').callprop(u'push', var.get(u"this").callprop(u'parseImportSpecifierDefault', var.get(u"this").callprop(u'parseIdentifier'), var.get(u'startPos'), var.get(u'startLoc')))
            if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'comma')).neg():
                return var.get('undefined')
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'star')):
            var.put(u'specifier', var.get(u"this").callprop(u'startNode'))
            var.get(u"this").callprop(u'next')
            var.get(u"this").callprop(u'expectContextual', Js(u'as'))
            var.get(u'specifier').put(u'local', var.get(u"this").callprop(u'parseIdentifier'))
            var.get(u"this").callprop(u'checkLVal', var.get(u'specifier').get(u'local'), var.get(u'true'), var.get(u'undefined'), Js(u'import namespace specifier'))
            var.get(u'node').get(u'specifiers').callprop(u'push', var.get(u"this").callprop(u'finishNode', var.get(u'specifier'), Js(u'ImportNamespaceSpecifier')))
            return var.get('undefined')
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceL'))
        while var.get(u"this").callprop(u'eat', var.get(u'types').get(u'braceR')).neg():
            if var.get(u'first'):
                var.put(u'first', Js(False))
            else:
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
                if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'braceR')):
                    break
            var.put(u'_specifier3', var.get(u"this").callprop(u'startNode'))
            var.get(u'_specifier3').put(u'imported', var.get(u"this").callprop(u'parseIdentifier', var.get(u'true')))
            var.get(u'_specifier3').put(u'local', (var.get(u"this").callprop(u'parseIdentifier') if var.get(u"this").callprop(u'eatContextual', Js(u'as')) else var.get(u'_specifier3').get(u'imported').callprop(u'__clone')))
            var.get(u"this").callprop(u'checkLVal', var.get(u'_specifier3').get(u'local'), var.get(u'true'), var.get(u'undefined'), Js(u'import specifier'))
            var.get(u'node').get(u'specifiers').callprop(u'push', var.get(u"this").callprop(u'finishNode', var.get(u'_specifier3'), Js(u'ImportSpecifier')))
    PyJs_anonymous_3015_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseImportSpecifiers', PyJs_anonymous_3015_)
    @Js
    def PyJs_anonymous_3016_(id, startPos, startLoc, this, arguments, var=var):
        var = Scope({u'this':this, u'startPos':startPos, u'id':id, u'startLoc':startLoc, u'arguments':arguments}, var)
        var.registers([u'node', u'startPos', u'id', u'startLoc'])
        var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
        var.get(u'node').put(u'local', var.get(u'id'))
        var.get(u"this").callprop(u'checkLVal', var.get(u'node').get(u'local'), var.get(u'true'), var.get(u'undefined'), Js(u'default import specifier'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ImportDefaultSpecifier'))
    PyJs_anonymous_3016_._set_name(u'anonymous')
    var.get(u'pp$1').put(u'parseImportSpecifierDefault', PyJs_anonymous_3016_)
    var.put(u'pp$2', var.get(u'Parser').get(u'prototype'))
    @Js
    def PyJs_anonymous_3017_(node, isBinding, contextDescription, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'isBinding':isBinding, u'arguments':arguments, u'contextDescription':contextDescription}, var)
        var.registers([u'node', u'_isArray', u'_iterator', u'isBinding', u'prop', u'_i', u'message', u'contextDescription', u'_ref'])
        if var.get(u'node'):
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'node').get(u'type'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'Identifier')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ObjectPattern')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ArrayPattern')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'AssignmentPattern')):
                    SWITCHED = True
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ObjectExpression')):
                    SWITCHED = True
                    var.get(u'node').put(u'type', Js(u'ObjectPattern'))
                    #for JS loop
                    var.put(u'_iterator', var.get(u'node').get(u'properties'))
                    var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
                    var.put(u'_i', Js(0.0))
                    var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else var.get(u'_iterator').callprop(var.get(u'Symbol').get(u'iterator'))))
                    while 1:
                        pass
                        if var.get(u'_isArray'):
                            if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                                break
                            var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                        else:
                            var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                            if var.get(u'_i').get(u'done'):
                                break
                            var.put(u'_ref', var.get(u'_i').get(u'value'))
                        var.put(u'prop', var.get(u'_ref'))
                        if PyJsStrictEq(var.get(u'prop').get(u'type'),Js(u'ObjectMethod')):
                            if (PyJsStrictEq(var.get(u'prop').get(u'kind'),Js(u'get')) or PyJsStrictEq(var.get(u'prop').get(u'kind'),Js(u'set'))):
                                var.get(u"this").callprop(u'raise', var.get(u'prop').get(u'key').get(u'start'), Js(u"Object pattern can't contain getter or setter"))
                            else:
                                var.get(u"this").callprop(u'raise', var.get(u'prop').get(u'key').get(u'start'), Js(u"Object pattern can't contain methods"))
                        else:
                            var.get(u"this").callprop(u'toAssignable', var.get(u'prop'), var.get(u'isBinding'), Js(u'object destructuring pattern'))
                    
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ObjectProperty')):
                    SWITCHED = True
                    var.get(u"this").callprop(u'toAssignable', var.get(u'node').get(u'value'), var.get(u'isBinding'), var.get(u'contextDescription'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'SpreadProperty')):
                    SWITCHED = True
                    var.get(u'node').put(u'type', Js(u'RestProperty'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ArrayExpression')):
                    SWITCHED = True
                    var.get(u'node').put(u'type', Js(u'ArrayPattern'))
                    var.get(u"this").callprop(u'toAssignableList', var.get(u'node').get(u'elements'), var.get(u'isBinding'), var.get(u'contextDescription'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'AssignmentExpression')):
                    SWITCHED = True
                    if PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'=')):
                        var.get(u'node').put(u'type', Js(u'AssignmentPattern'))
                        var.get(u'node').delete(u'operator')
                    else:
                        var.get(u"this").callprop(u'raise', var.get(u'node').get(u'left').get(u'end'), Js(u"Only '=' operator can be used for specifying default value."))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'MemberExpression')):
                    SWITCHED = True
                    if var.get(u'isBinding').neg():
                        break
                if True:
                    SWITCHED = True
                    var.put(u'message', (Js(u'Invalid left-hand side')+((Js(u' in ')+var.get(u'contextDescription')) if var.get(u'contextDescription') else Js(u'expression'))))
                    var.get(u"this").callprop(u'raise', var.get(u'node').get(u'start'), var.get(u'message'))
                SWITCHED = True
                break
        return var.get(u'node')
    PyJs_anonymous_3017_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'toAssignable', PyJs_anonymous_3017_)
    @Js
    def PyJs_anonymous_3018_(exprList, isBinding, contextDescription, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'isBinding':isBinding, u'exprList':exprList, u'contextDescription':contextDescription}, var)
        var.registers([u'last', u'i', u'isBinding', u'contextDescription', u'arg', u'end', u'exprList', u'elt'])
        var.put(u'end', var.get(u'exprList').get(u'length'))
        if var.get(u'end'):
            var.put(u'last', var.get(u'exprList').get((var.get(u'end')-Js(1.0))))
            if (var.get(u'last') and PyJsStrictEq(var.get(u'last').get(u'type'),Js(u'RestElement'))):
                var.put(u'end',Js(var.get(u'end').to_number())-Js(1))
            else:
                if (var.get(u'last') and PyJsStrictEq(var.get(u'last').get(u'type'),Js(u'SpreadElement'))):
                    var.get(u'last').put(u'type', Js(u'RestElement'))
                    var.put(u'arg', var.get(u'last').get(u'argument'))
                    var.get(u"this").callprop(u'toAssignable', var.get(u'arg'), var.get(u'isBinding'), var.get(u'contextDescription'))
                    if ((PyJsStrictNeq(var.get(u'arg').get(u'type'),Js(u'Identifier')) and PyJsStrictNeq(var.get(u'arg').get(u'type'),Js(u'MemberExpression'))) and PyJsStrictNeq(var.get(u'arg').get(u'type'),Js(u'ArrayPattern'))):
                        var.get(u"this").callprop(u'unexpected', var.get(u'arg').get(u'start'))
                    var.put(u'end',Js(var.get(u'end').to_number())-Js(1))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'end')):
            try:
                var.put(u'elt', var.get(u'exprList').get(var.get(u'i')))
                if var.get(u'elt'):
                    var.get(u"this").callprop(u'toAssignable', var.get(u'elt'), var.get(u'isBinding'), var.get(u'contextDescription'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'exprList')
    PyJs_anonymous_3018_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'toAssignableList', PyJs_anonymous_3018_)
    @Js
    def PyJs_anonymous_3019_(exprList, this, arguments, var=var):
        var = Scope({u'this':this, u'exprList':exprList, u'arguments':arguments}, var)
        var.registers([u'exprList'])
        return var.get(u'exprList')
    PyJs_anonymous_3019_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'toReferencedList', PyJs_anonymous_3019_)
    @Js
    def PyJs_anonymous_3020_(refShorthandDefaultPos, this, arguments, var=var):
        var = Scope({u'this':this, u'refShorthandDefaultPos':refShorthandDefaultPos, u'arguments':arguments}, var)
        var.registers([u'node', u'refShorthandDefaultPos'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u"this").callprop(u'next')
        var.get(u'node').put(u'argument', var.get(u"this").callprop(u'parseMaybeAssign', Js(False), var.get(u'refShorthandDefaultPos')))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'SpreadElement'))
    PyJs_anonymous_3020_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'parseSpread', PyJs_anonymous_3020_)
    @Js
    def PyJs_anonymous_3021_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u"this").callprop(u'next')
        var.get(u'node').put(u'argument', var.get(u"this").callprop(u'parseBindingIdentifier'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'RestElement'))
    PyJs_anonymous_3021_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'parseRest', PyJs_anonymous_3021_)
    @Js
    def PyJs_anonymous_3022_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return ((var.get(u"this").callprop(u'match', var.get(u'types').get(u'_yield')) and var.get(u"this").get(u'state').get(u'strict').neg()) and var.get(u"this").get(u'state').get(u'inGenerator').neg())
    PyJs_anonymous_3022_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'shouldAllowYieldIdentifier', PyJs_anonymous_3022_)
    @Js
    def PyJs_anonymous_3023_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this").callprop(u'parseIdentifier', var.get(u"this").callprop(u'shouldAllowYieldIdentifier'))
    PyJs_anonymous_3023_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'parseBindingIdentifier', PyJs_anonymous_3023_)
    @Js
    def PyJs_anonymous_3024_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u"this").get(u'state').get(u'type'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_yield')):
                SWITCHED = True
                if (var.get(u"this").get(u'state').get(u'strict') or var.get(u"this").get(u'state').get(u'inGenerator')):
                    var.get(u"this").callprop(u'unexpected')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'name')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseIdentifier', var.get(u'true'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'bracketL')):
                SWITCHED = True
                var.put(u'node', var.get(u"this").callprop(u'startNode'))
                var.get(u"this").callprop(u'next')
                var.get(u'node').put(u'elements', var.get(u"this").callprop(u'parseBindingList', var.get(u'types').get(u'bracketR'), var.get(u'true')))
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ArrayPattern'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'braceL')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseObj', var.get(u'true'))
            if True:
                SWITCHED = True
                var.get(u"this").callprop(u'unexpected')
            SWITCHED = True
            break
    PyJs_anonymous_3024_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'parseBindingAtom', PyJs_anonymous_3024_)
    @Js
    def PyJs_anonymous_3025_(close, allowEmpty, this, arguments, var=var):
        var = Scope({u'this':this, u'close':close, u'allowEmpty':allowEmpty, u'arguments':arguments}, var)
        var.registers([u'elts', u'decorators', u'close', u'first', u'allowEmpty', u'left'])
        var.put(u'elts', Js([]))
        var.put(u'first', var.get(u'true'))
        while var.get(u"this").callprop(u'eat', var.get(u'close')).neg():
            if var.get(u'first'):
                var.put(u'first', Js(False))
            else:
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
            if (var.get(u'allowEmpty') and var.get(u"this").callprop(u'match', var.get(u'types').get(u'comma'))):
                var.get(u'elts').callprop(u'push', var.get(u"null"))
            else:
                if var.get(u"this").callprop(u'eat', var.get(u'close')):
                    break
                else:
                    if var.get(u"this").callprop(u'match', var.get(u'types').get(u'ellipsis')):
                        var.get(u'elts').callprop(u'push', var.get(u"this").callprop(u'parseAssignableListItemTypes', var.get(u"this").callprop(u'parseRest')))
                        var.get(u"this").callprop(u'expect', var.get(u'close'))
                        break
                    else:
                        var.put(u'decorators', Js([]))
                        while var.get(u"this").callprop(u'match', var.get(u'types').get(u'at')):
                            var.get(u'decorators').callprop(u'push', var.get(u"this").callprop(u'parseDecorator'))
                        var.put(u'left', var.get(u"this").callprop(u'parseMaybeDefault'))
                        if var.get(u'decorators').get(u'length'):
                            var.get(u'left').put(u'decorators', var.get(u'decorators'))
                        var.get(u"this").callprop(u'parseAssignableListItemTypes', var.get(u'left'))
                        var.get(u'elts').callprop(u'push', var.get(u"this").callprop(u'parseMaybeDefault', var.get(u'left').get(u'start'), var.get(u'left').get(u'loc').get(u'start'), var.get(u'left')))
        return var.get(u'elts')
    PyJs_anonymous_3025_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'parseBindingList', PyJs_anonymous_3025_)
    @Js
    def PyJs_anonymous_3026_(param, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'param':param}, var)
        var.registers([u'param'])
        return var.get(u'param')
    PyJs_anonymous_3026_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'parseAssignableListItemTypes', PyJs_anonymous_3026_)
    @Js
    def PyJs_anonymous_3027_(startPos, startLoc, left, this, arguments, var=var):
        var = Scope({u'this':this, u'startPos':startPos, u'arguments':arguments, u'startLoc':startLoc, u'left':left}, var)
        var.registers([u'node', u'startPos', u'startLoc', u'left'])
        var.put(u'startLoc', (var.get(u'startLoc') or var.get(u"this").get(u'state').get(u'startLoc')))
        var.put(u'startPos', (var.get(u'startPos') or var.get(u"this").get(u'state').get(u'start')))
        var.put(u'left', (var.get(u'left') or var.get(u"this").callprop(u'parseBindingAtom')))
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'eq')).neg():
            return var.get(u'left')
        var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
        var.get(u'node').put(u'left', var.get(u'left'))
        var.get(u'node').put(u'right', var.get(u"this").callprop(u'parseMaybeAssign'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'AssignmentPattern'))
    PyJs_anonymous_3027_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'parseMaybeDefault', PyJs_anonymous_3027_)
    @Js
    def PyJs_anonymous_3028_(expr, isBinding, checkClashes, contextDescription, this, arguments, var=var):
        var = Scope({u'checkClashes':checkClashes, u'arguments':arguments, u'this':this, u'expr':expr, u'isBinding':isBinding, u'contextDescription':contextDescription}, var)
        var.registers([u'_isArray3', u'_isArray2', u'_ref3', u'isBinding', u'_i3', u'_i2', u'contextDescription', u'prop', u'checkClashes', u'key', u'expr', u'elem', u'message', u'_ref2', u'_iterator3', u'_iterator2'])
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'expr').get(u'type'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'Identifier')):
                SWITCHED = True
                if (var.get(u"this").get(u'state').get(u'strict') and (var.get(u'reservedWords').callprop(u'strictBind', var.get(u'expr').get(u'name')) or var.get(u'reservedWords').callprop(u'strict', var.get(u'expr').get(u'name')))):
                    var.get(u"this").callprop(u'raise', var.get(u'expr').get(u'start'), (((Js(u'Binding ') if var.get(u'isBinding') else Js(u'Assigning to '))+var.get(u'expr').get(u'name'))+Js(u' in strict mode')))
                if var.get(u'checkClashes'):
                    var.put(u'key', (Js(u'_')+var.get(u'expr').get(u'name')))
                    if var.get(u'checkClashes').get(var.get(u'key')):
                        var.get(u"this").callprop(u'raise', var.get(u'expr').get(u'start'), Js(u'Argument name clash in strict mode'))
                    else:
                        var.get(u'checkClashes').put(var.get(u'key'), var.get(u'true'))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'MemberExpression')):
                SWITCHED = True
                if var.get(u'isBinding'):
                    var.get(u"this").callprop(u'raise', var.get(u'expr').get(u'start'), ((Js(u'Binding') if var.get(u'isBinding') else Js(u'Assigning to'))+Js(u' member expression')))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ObjectPattern')):
                SWITCHED = True
                #for JS loop
                var.put(u'_iterator2', var.get(u'expr').get(u'properties'))
                var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
                var.put(u'_i2', Js(0.0))
                var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else var.get(u'_iterator2').callprop(var.get(u'Symbol').get(u'iterator'))))
                while 1:
                    pass
                    if var.get(u'_isArray2'):
                        if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                            break
                        var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                        if var.get(u'_i2').get(u'done'):
                            break
                        var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                    var.put(u'prop', var.get(u'_ref2'))
                    if PyJsStrictEq(var.get(u'prop').get(u'type'),Js(u'ObjectProperty')):
                        var.put(u'prop', var.get(u'prop').get(u'value'))
                    var.get(u"this").callprop(u'checkLVal', var.get(u'prop'), var.get(u'isBinding'), var.get(u'checkClashes'), Js(u'object destructuring pattern'))
                
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ArrayPattern')):
                SWITCHED = True
                #for JS loop
                var.put(u'_iterator3', var.get(u'expr').get(u'elements'))
                var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
                var.put(u'_i3', Js(0.0))
                var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else var.get(u'_iterator3').callprop(var.get(u'Symbol').get(u'iterator'))))
                while 1:
                    pass
                    if var.get(u'_isArray3'):
                        if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                            break
                        var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                    else:
                        var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                        if var.get(u'_i3').get(u'done'):
                            break
                        var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                    var.put(u'elem', var.get(u'_ref3'))
                    if var.get(u'elem'):
                        var.get(u"this").callprop(u'checkLVal', var.get(u'elem'), var.get(u'isBinding'), var.get(u'checkClashes'), Js(u'array destructuring pattern'))
                
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'AssignmentPattern')):
                SWITCHED = True
                var.get(u"this").callprop(u'checkLVal', var.get(u'expr').get(u'left'), var.get(u'isBinding'), var.get(u'checkClashes'), Js(u'assignment pattern'))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'RestProperty')):
                SWITCHED = True
                var.get(u"this").callprop(u'checkLVal', var.get(u'expr').get(u'argument'), var.get(u'isBinding'), var.get(u'checkClashes'), Js(u'rest property'))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'RestElement')):
                SWITCHED = True
                var.get(u"this").callprop(u'checkLVal', var.get(u'expr').get(u'argument'), var.get(u'isBinding'), var.get(u'checkClashes'), Js(u'rest element'))
                break
            if True:
                SWITCHED = True
                var.put(u'message', (((Js(u'Binding invalid') if var.get(u'isBinding') else Js(u'Invalid'))+Js(u' left-hand side'))+((Js(u' in ')+var.get(u'contextDescription')) if var.get(u'contextDescription') else Js(u'expression'))))
                var.get(u"this").callprop(u'raise', var.get(u'expr').get(u'start'), var.get(u'message'))
            SWITCHED = True
            break
    PyJs_anonymous_3028_._set_name(u'anonymous')
    var.get(u'pp$2').put(u'checkLVal', PyJs_anonymous_3028_)
    var.put(u'pp$3', var.get(u'Parser').get(u'prototype'))
    @Js
    def PyJs_anonymous_3029_(prop, propHash, this, arguments, var=var):
        var = Scope({u'this':this, u'propHash':propHash, u'arguments':arguments, u'prop':prop}, var)
        var.registers([u'propHash', u'name', u'key', u'prop'])
        if var.get(u'prop').get(u'computed'):
            return var.get('undefined')
        var.put(u'key', var.get(u'prop').get(u'key'))
        var.put(u'name', PyJsComma(Js(0.0), Js(None)))
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'key').get(u'type'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'Identifier')):
                SWITCHED = True
                var.put(u'name', var.get(u'key').get(u'name'))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'StringLiteral')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'NumericLiteral')):
                SWITCHED = True
                var.put(u'name', var.get(u'String')(var.get(u'key').get(u'value')))
                break
            if True:
                SWITCHED = True
                return var.get('undefined')
            SWITCHED = True
            break
        if (PyJsStrictEq(var.get(u'name'),Js(u'__proto__')) and var.get(u'prop').get(u'kind').neg()):
            if var.get(u'propHash').get(u'proto'):
                var.get(u"this").callprop(u'raise', var.get(u'key').get(u'start'), Js(u'Redefinition of __proto__ property'))
            var.get(u'propHash').put(u'proto', var.get(u'true'))
    PyJs_anonymous_3029_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'checkPropClash', PyJs_anonymous_3029_)
    @Js
    def PyJs_anonymous_3030_(noIn, refShorthandDefaultPos, this, arguments, var=var):
        var = Scope({u'noIn':noIn, u'this':this, u'refShorthandDefaultPos':refShorthandDefaultPos, u'arguments':arguments}, var)
        var.registers([u'node', u'expr', u'refShorthandDefaultPos', u'startLoc', u'noIn', u'startPos'])
        var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        var.put(u'expr', var.get(u"this").callprop(u'parseMaybeAssign', var.get(u'noIn'), var.get(u'refShorthandDefaultPos')))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'comma')):
            var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
            var.get(u'node').put(u'expressions', Js([var.get(u'expr')]))
            while var.get(u"this").callprop(u'eat', var.get(u'types').get(u'comma')):
                var.get(u'node').get(u'expressions').callprop(u'push', var.get(u"this").callprop(u'parseMaybeAssign', var.get(u'noIn'), var.get(u'refShorthandDefaultPos')))
            var.get(u"this").callprop(u'toReferencedList', var.get(u'node').get(u'expressions'))
            return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'SequenceExpression'))
        return var.get(u'expr')
    PyJs_anonymous_3030_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseExpression', PyJs_anonymous_3030_)
    @Js
    def PyJs_anonymous_3031_(noIn, refShorthandDefaultPos, afterLeftParse, refNeedsArrowPos, this, arguments, var=var):
        var = Scope({u'afterLeftParse':afterLeftParse, u'this':this, u'refShorthandDefaultPos':refShorthandDefaultPos, u'noIn':noIn, u'arguments':arguments, u'refNeedsArrowPos':refNeedsArrowPos}, var)
        var.registers([u'node', u'afterLeftParse', u'startLoc', u'errorMsg', u'refNeedsArrowPos', u'refShorthandDefaultPos', u'failOnShorthandAssign', u'noIn', u'startPos', u'_left', u'left'])
        var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'_yield')) and var.get(u"this").get(u'state').get(u'inGenerator')):
            var.put(u'_left', var.get(u"this").callprop(u'parseYield'))
            if var.get(u'afterLeftParse'):
                var.put(u'_left', var.get(u'afterLeftParse').callprop(u'call', var.get(u"this"), var.get(u'_left'), var.get(u'startPos'), var.get(u'startLoc')))
            return var.get(u'_left')
        var.put(u'failOnShorthandAssign', PyJsComma(Js(0.0), Js(None)))
        if var.get(u'refShorthandDefaultPos'):
            var.put(u'failOnShorthandAssign', Js(False))
        else:
            PyJs_Object_3032_ = Js({u'start':Js(0.0)})
            var.put(u'refShorthandDefaultPos', PyJs_Object_3032_)
            var.put(u'failOnShorthandAssign', var.get(u'true'))
        if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'name'))):
            var.get(u"this").get(u'state').put(u'potentialArrowAt', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'left', var.get(u"this").callprop(u'parseMaybeConditional', var.get(u'noIn'), var.get(u'refShorthandDefaultPos'), var.get(u'refNeedsArrowPos')))
        if var.get(u'afterLeftParse'):
            var.put(u'left', var.get(u'afterLeftParse').callprop(u'call', var.get(u"this"), var.get(u'left'), var.get(u'startPos'), var.get(u'startLoc')))
        if var.get(u"this").get(u'state').get(u'type').get(u'isAssign'):
            var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
            var.get(u'node').put(u'operator', var.get(u"this").get(u'state').get(u'value'))
            var.get(u'node').put(u'left', (var.get(u"this").callprop(u'toAssignable', var.get(u'left'), var.get(u'undefined'), Js(u'assignment expression')) if var.get(u"this").callprop(u'match', var.get(u'types').get(u'eq')) else var.get(u'left')))
            var.get(u'refShorthandDefaultPos').put(u'start', Js(0.0))
            var.get(u"this").callprop(u'checkLVal', var.get(u'left'), var.get(u'undefined'), var.get(u'undefined'), Js(u'assignment expression'))
            if (var.get(u'left').get(u'extra') and var.get(u'left').get(u'extra').get(u'parenthesized')):
                var.put(u'errorMsg', PyJsComma(Js(0.0), Js(None)))
                if PyJsStrictEq(var.get(u'left').get(u'type'),Js(u'ObjectPattern')):
                    var.put(u'errorMsg', Js(u'`({a}) = 0` use `({a} = 0)`'))
                else:
                    if PyJsStrictEq(var.get(u'left').get(u'type'),Js(u'ArrayPattern')):
                        var.put(u'errorMsg', Js(u'`([a]) = 0` use `([a] = 0)`'))
                if var.get(u'errorMsg'):
                    var.get(u"this").callprop(u'raise', var.get(u'left').get(u'start'), (Js(u"You're trying to assign to a parenthesized expression, eg. instead of ")+var.get(u'errorMsg')))
            var.get(u"this").callprop(u'next')
            var.get(u'node').put(u'right', var.get(u"this").callprop(u'parseMaybeAssign', var.get(u'noIn')))
            return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'AssignmentExpression'))
        else:
            if (var.get(u'failOnShorthandAssign') and var.get(u'refShorthandDefaultPos').get(u'start')):
                var.get(u"this").callprop(u'unexpected', var.get(u'refShorthandDefaultPos').get(u'start'))
        return var.get(u'left')
    PyJs_anonymous_3031_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseMaybeAssign', PyJs_anonymous_3031_)
    @Js
    def PyJs_anonymous_3033_(noIn, refShorthandDefaultPos, refNeedsArrowPos, this, arguments, var=var):
        var = Scope({u'noIn':noIn, u'this':this, u'refShorthandDefaultPos':refShorthandDefaultPos, u'arguments':arguments, u'refNeedsArrowPos':refNeedsArrowPos}, var)
        var.registers([u'expr', u'refShorthandDefaultPos', u'startLoc', u'noIn', u'startPos', u'refNeedsArrowPos'])
        var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        var.put(u'expr', var.get(u"this").callprop(u'parseExprOps', var.get(u'noIn'), var.get(u'refShorthandDefaultPos')))
        if (var.get(u'refShorthandDefaultPos') and var.get(u'refShorthandDefaultPos').get(u'start')):
            return var.get(u'expr')
        return var.get(u"this").callprop(u'parseConditional', var.get(u'expr'), var.get(u'noIn'), var.get(u'startPos'), var.get(u'startLoc'), var.get(u'refNeedsArrowPos'))
    PyJs_anonymous_3033_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseMaybeConditional', PyJs_anonymous_3033_)
    @Js
    def PyJs_anonymous_3034_(expr, noIn, startPos, startLoc, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'startLoc':startLoc, u'noIn':noIn, u'expr':expr, u'startPos':startPos}, var)
        var.registers([u'node', u'expr', u'startPos', u'noIn', u'startLoc'])
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'question')):
            var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
            var.get(u'node').put(u'test', var.get(u'expr'))
            var.get(u'node').put(u'consequent', var.get(u"this").callprop(u'parseMaybeAssign'))
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'colon'))
            var.get(u'node').put(u'alternate', var.get(u"this").callprop(u'parseMaybeAssign', var.get(u'noIn')))
            return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ConditionalExpression'))
        return var.get(u'expr')
    PyJs_anonymous_3034_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseConditional', PyJs_anonymous_3034_)
    @Js
    def PyJs_anonymous_3035_(noIn, refShorthandDefaultPos, this, arguments, var=var):
        var = Scope({u'noIn':noIn, u'this':this, u'refShorthandDefaultPos':refShorthandDefaultPos, u'arguments':arguments}, var)
        var.registers([u'noIn', u'expr', u'startPos', u'refShorthandDefaultPos', u'startLoc'])
        var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        var.put(u'expr', var.get(u"this").callprop(u'parseMaybeUnary', var.get(u'refShorthandDefaultPos')))
        if (var.get(u'refShorthandDefaultPos') and var.get(u'refShorthandDefaultPos').get(u'start')):
            return var.get(u'expr')
        else:
            return var.get(u"this").callprop(u'parseExprOp', var.get(u'expr'), var.get(u'startPos'), var.get(u'startLoc'), (-Js(1.0)), var.get(u'noIn'))
    PyJs_anonymous_3035_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseExprOps', PyJs_anonymous_3035_)
    @Js
    def PyJs_anonymous_3036_(left, leftStartPos, leftStartLoc, minPrec, noIn, this, arguments, var=var):
        var = Scope({u'minPrec':minPrec, u'arguments':arguments, u'noIn':noIn, u'leftStartLoc':leftStartLoc, u'this':this, u'leftStartPos':leftStartPos, u'left':left}, var)
        var.registers([u'node', u'minPrec', u'leftStartPos', u'prec', u'startLoc', u'noIn', u'leftStartLoc', u'startPos', u'op', u'left'])
        var.put(u'prec', var.get(u"this").get(u'state').get(u'type').get(u'binop'))
        if ((var.get(u'prec')!=var.get(u"null")) and (var.get(u'noIn').neg() or var.get(u"this").callprop(u'match', var.get(u'types').get(u'_in')).neg())):
            if (var.get(u'prec')>var.get(u'minPrec')):
                var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'leftStartPos'), var.get(u'leftStartLoc')))
                var.get(u'node').put(u'left', var.get(u'left'))
                var.get(u'node').put(u'operator', var.get(u"this").get(u'state').get(u'value'))
                if ((((PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'**')) and PyJsStrictEq(var.get(u'left').get(u'type'),Js(u'UnaryExpression'))) and var.get(u'left').get(u'extra')) and var.get(u'left').get(u'extra').get(u'parenthesizedArgument').neg()) and var.get(u'left').get(u'extra').get(u'parenthesized').neg()):
                    var.get(u"this").callprop(u'raise', var.get(u'left').get(u'argument').get(u'start'), Js(u'Illegal expression. Wrap left hand side or entire exponentiation in parentheses.'))
                var.put(u'op', var.get(u"this").get(u'state').get(u'type'))
                var.get(u"this").callprop(u'next')
                var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
                var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
                var.get(u'node').put(u'right', var.get(u"this").callprop(u'parseExprOp', var.get(u"this").callprop(u'parseMaybeUnary'), var.get(u'startPos'), var.get(u'startLoc'), ((var.get(u'prec')-Js(1.0)) if var.get(u'op').get(u'rightAssociative') else var.get(u'prec')), var.get(u'noIn')))
                var.get(u"this").callprop(u'finishNode', var.get(u'node'), (Js(u'LogicalExpression') if (PyJsStrictEq(var.get(u'op'),var.get(u'types').get(u'logicalOR')) or PyJsStrictEq(var.get(u'op'),var.get(u'types').get(u'logicalAND'))) else Js(u'BinaryExpression')))
                return var.get(u"this").callprop(u'parseExprOp', var.get(u'node'), var.get(u'leftStartPos'), var.get(u'leftStartLoc'), var.get(u'minPrec'), var.get(u'noIn'))
        return var.get(u'left')
    PyJs_anonymous_3036_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseExprOp', PyJs_anonymous_3036_)
    @Js
    def PyJs_anonymous_3037_(refShorthandDefaultPos, this, arguments, var=var):
        var = Scope({u'this':this, u'refShorthandDefaultPos':refShorthandDefaultPos, u'arguments':arguments}, var)
        var.registers([u'node', u'expr', u'update', u'_node', u'refShorthandDefaultPos', u'startLoc', u'startPos', u'argType'])
        if var.get(u"this").get(u'state').get(u'type').get(u'prefix'):
            var.put(u'node', var.get(u"this").callprop(u'startNode'))
            var.put(u'update', var.get(u"this").callprop(u'match', var.get(u'types').get(u'incDec')))
            var.get(u'node').put(u'operator', var.get(u"this").get(u'state').get(u'value'))
            var.get(u'node').put(u'prefix', var.get(u'true'))
            var.get(u"this").callprop(u'next')
            var.put(u'argType', var.get(u"this").get(u'state').get(u'type'))
            var.get(u'node').put(u'argument', var.get(u"this").callprop(u'parseMaybeUnary'))
            var.get(u"this").callprop(u'addExtra', var.get(u'node'), Js(u'parenthesizedArgument'), (PyJsStrictEq(var.get(u'argType'),var.get(u'types').get(u'parenL')) and (var.get(u'node').get(u'argument').get(u'extra').neg() or var.get(u'node').get(u'argument').get(u'extra').get(u'parenthesized').neg())))
            if (var.get(u'refShorthandDefaultPos') and var.get(u'refShorthandDefaultPos').get(u'start')):
                var.get(u"this").callprop(u'unexpected', var.get(u'refShorthandDefaultPos').get(u'start'))
            if var.get(u'update'):
                var.get(u"this").callprop(u'checkLVal', var.get(u'node').get(u'argument'), var.get(u'undefined'), var.get(u'undefined'), Js(u'prefix operation'))
            else:
                if ((var.get(u"this").get(u'state').get(u'strict') and PyJsStrictEq(var.get(u'node').get(u'operator'),Js(u'delete'))) and PyJsStrictEq(var.get(u'node').get(u'argument').get(u'type'),Js(u'Identifier'))):
                    var.get(u"this").callprop(u'raise', var.get(u'node').get(u'start'), Js(u'Deleting local variable in strict mode'))
            return var.get(u"this").callprop(u'finishNode', var.get(u'node'), (Js(u'UpdateExpression') if var.get(u'update') else Js(u'UnaryExpression')))
        var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        var.put(u'expr', var.get(u"this").callprop(u'parseExprSubscripts', var.get(u'refShorthandDefaultPos')))
        if (var.get(u'refShorthandDefaultPos') and var.get(u'refShorthandDefaultPos').get(u'start')):
            return var.get(u'expr')
        while (var.get(u"this").get(u'state').get(u'type').get(u'postfix') and var.get(u"this").callprop(u'canInsertSemicolon').neg()):
            var.put(u'_node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
            var.get(u'_node').put(u'operator', var.get(u"this").get(u'state').get(u'value'))
            var.get(u'_node').put(u'prefix', Js(False))
            var.get(u'_node').put(u'argument', var.get(u'expr'))
            var.get(u"this").callprop(u'checkLVal', var.get(u'expr'), var.get(u'undefined'), var.get(u'undefined'), Js(u'postfix operation'))
            var.get(u"this").callprop(u'next')
            var.put(u'expr', var.get(u"this").callprop(u'finishNode', var.get(u'_node'), Js(u'UpdateExpression')))
        return var.get(u'expr')
    PyJs_anonymous_3037_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseMaybeUnary', PyJs_anonymous_3037_)
    @Js
    def PyJs_anonymous_3038_(refShorthandDefaultPos, this, arguments, var=var):
        var = Scope({u'this':this, u'refShorthandDefaultPos':refShorthandDefaultPos, u'arguments':arguments}, var)
        var.registers([u'expr', u'startPos', u'potentialArrowAt', u'startLoc', u'refShorthandDefaultPos'])
        var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        var.put(u'potentialArrowAt', var.get(u"this").get(u'state').get(u'potentialArrowAt'))
        var.put(u'expr', var.get(u"this").callprop(u'parseExprAtom', var.get(u'refShorthandDefaultPos')))
        if (PyJsStrictEq(var.get(u'expr').get(u'type'),Js(u'ArrowFunctionExpression')) and PyJsStrictEq(var.get(u'expr').get(u'start'),var.get(u'potentialArrowAt'))):
            return var.get(u'expr')
        if (var.get(u'refShorthandDefaultPos') and var.get(u'refShorthandDefaultPos').get(u'start')):
            return var.get(u'expr')
        return var.get(u"this").callprop(u'parseSubscripts', var.get(u'expr'), var.get(u'startPos'), var.get(u'startLoc'))
    PyJs_anonymous_3038_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseExprSubscripts', PyJs_anonymous_3038_)
    @Js
    def PyJs_anonymous_3039_(base, startPos, startLoc, noCalls, this, arguments, var=var):
        var = Scope({u'base':base, u'arguments':arguments, u'startLoc':startLoc, u'this':this, u'startPos':startPos, u'noCalls':noCalls}, var)
        var.registers([u'node', u'startLoc', u'possibleAsync', u'_node3', u'_node2', u'base', u'_node5', u'_node4', u'startPos', u'noCalls'])
        #for JS loop
        
        while 1:
            if (var.get(u'noCalls').neg() and var.get(u"this").callprop(u'eat', var.get(u'types').get(u'doubleColon'))):
                var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
                var.get(u'node').put(u'object', var.get(u'base'))
                var.get(u'node').put(u'callee', var.get(u"this").callprop(u'parseNoCallExpr'))
                return var.get(u"this").callprop(u'parseSubscripts', var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'BindExpression')), var.get(u'startPos'), var.get(u'startLoc'), var.get(u'noCalls'))
            else:
                if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'dot')):
                    var.put(u'_node2', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
                    var.get(u'_node2').put(u'object', var.get(u'base'))
                    var.get(u'_node2').put(u'property', var.get(u"this").callprop(u'parseIdentifier', var.get(u'true')))
                    var.get(u'_node2').put(u'computed', Js(False))
                    var.put(u'base', var.get(u"this").callprop(u'finishNode', var.get(u'_node2'), Js(u'MemberExpression')))
                else:
                    if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'bracketL')):
                        var.put(u'_node3', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
                        var.get(u'_node3').put(u'object', var.get(u'base'))
                        var.get(u'_node3').put(u'property', var.get(u"this").callprop(u'parseExpression'))
                        var.get(u'_node3').put(u'computed', var.get(u'true'))
                        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'bracketR'))
                        var.put(u'base', var.get(u"this").callprop(u'finishNode', var.get(u'_node3'), Js(u'MemberExpression')))
                    else:
                        if (var.get(u'noCalls').neg() and var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL'))):
                            var.put(u'possibleAsync', (((PyJsStrictEq(var.get(u"this").get(u'state').get(u'potentialArrowAt'),var.get(u'base').get(u'start')) and PyJsStrictEq(var.get(u'base').get(u'type'),Js(u'Identifier'))) and PyJsStrictEq(var.get(u'base').get(u'name'),Js(u'async'))) and var.get(u"this").callprop(u'canInsertSemicolon').neg()))
                            var.get(u"this").callprop(u'next')
                            var.put(u'_node4', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
                            var.get(u'_node4').put(u'callee', var.get(u'base'))
                            var.get(u'_node4').put(u'arguments', var.get(u"this").callprop(u'parseCallExpressionArguments', var.get(u'types').get(u'parenR'), var.get(u'possibleAsync')))
                            if (PyJsStrictEq(var.get(u'_node4').get(u'callee').get(u'type'),Js(u'Import')) and PyJsStrictNeq(var.get(u'_node4').get(u'arguments').get(u'length'),Js(1.0))):
                                var.get(u"this").callprop(u'raise', var.get(u'_node4').get(u'start'), Js(u'import() requires exactly one argument'))
                            var.put(u'base', var.get(u"this").callprop(u'finishNode', var.get(u'_node4'), Js(u'CallExpression')))
                            if (var.get(u'possibleAsync') and var.get(u"this").callprop(u'shouldParseAsyncArrow')):
                                return var.get(u"this").callprop(u'parseAsyncArrowFromCallExpression', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')), var.get(u'_node4'))
                            else:
                                var.get(u"this").callprop(u'toReferencedList', var.get(u'_node4').get(u'arguments'))
                        else:
                            if var.get(u"this").callprop(u'match', var.get(u'types').get(u'backQuote')):
                                var.put(u'_node5', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
                                var.get(u'_node5').put(u'tag', var.get(u'base'))
                                var.get(u'_node5').put(u'quasi', var.get(u"this").callprop(u'parseTemplate'))
                                var.put(u'base', var.get(u"this").callprop(u'finishNode', var.get(u'_node5'), Js(u'TaggedTemplateExpression')))
                            else:
                                return var.get(u'base')
        
    PyJs_anonymous_3039_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseSubscripts', PyJs_anonymous_3039_)
    @Js
    def PyJs_anonymous_3040_(close, possibleAsyncArrow, this, arguments, var=var):
        var = Scope({u'this':this, u'close':close, u'possibleAsyncArrow':possibleAsyncArrow, u'arguments':arguments}, var)
        var.registers([u'elts', u'close', u'first', u'possibleAsyncArrow', u'innerParenStart'])
        var.put(u'innerParenStart', PyJsComma(Js(0.0), Js(None)))
        var.put(u'elts', Js([]))
        var.put(u'first', var.get(u'true'))
        while var.get(u"this").callprop(u'eat', var.get(u'close')).neg():
            if var.get(u'first'):
                var.put(u'first', Js(False))
            else:
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
                if var.get(u"this").callprop(u'eat', var.get(u'close')):
                    break
            if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL')) and var.get(u'innerParenStart').neg()):
                var.put(u'innerParenStart', var.get(u"this").get(u'state').get(u'start'))
            PyJs_Object_3041_ = Js({u'start':Js(0.0)})
            var.get(u'elts').callprop(u'push', var.get(u"this").callprop(u'parseExprListItem', var.get(u'undefined'), (PyJs_Object_3041_ if var.get(u'possibleAsyncArrow') else var.get(u'undefined'))))
        if ((var.get(u'possibleAsyncArrow') and var.get(u'innerParenStart')) and var.get(u"this").callprop(u'shouldParseAsyncArrow')):
            var.get(u"this").callprop(u'unexpected')
        return var.get(u'elts')
    PyJs_anonymous_3040_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseCallExpressionArguments', PyJs_anonymous_3040_)
    @Js
    def PyJs_anonymous_3042_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this").callprop(u'match', var.get(u'types').get(u'arrow'))
    PyJs_anonymous_3042_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'shouldParseAsyncArrow', PyJs_anonymous_3042_)
    @Js
    def PyJs_anonymous_3043_(node, call, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'call':call, u'arguments':arguments}, var)
        var.registers([u'node', u'call'])
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'arrow'))
        return var.get(u"this").callprop(u'parseArrowExpression', var.get(u'node'), var.get(u'call').get(u'arguments'), var.get(u'true'))
    PyJs_anonymous_3043_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseAsyncArrowFromCallExpression', PyJs_anonymous_3043_)
    @Js
    def PyJs_anonymous_3044_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'startPos', u'startLoc'])
        var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        return var.get(u"this").callprop(u'parseSubscripts', var.get(u"this").callprop(u'parseExprAtom'), var.get(u'startPos'), var.get(u'startLoc'), var.get(u'true'))
    PyJs_anonymous_3044_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseNoCallExpr', PyJs_anonymous_3044_)
    @Js
    def PyJs_anonymous_3045_(refShorthandDefaultPos, this, arguments, var=var):
        var = Scope({u'this':this, u'refShorthandDefaultPos':refShorthandDefaultPos, u'arguments':arguments}, var)
        var.registers([u'node', u'oldLabels', u'allowAwait', u'oldInFunction', u'allowYield', u'value', u'params', u'_node6', u'callee', u'id', u'canBeArrow', u'refShorthandDefaultPos'])
        var.put(u'node', PyJsComma(Js(0.0), Js(None)))
        var.put(u'canBeArrow', PyJsStrictEq(var.get(u"this").get(u'state').get(u'potentialArrowAt'),var.get(u"this").get(u'state').get(u'start')))
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u"this").get(u'state').get(u'type'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_super')):
                SWITCHED = True
                if (var.get(u"this").get(u'state').get(u'inMethod').neg() and var.get(u"this").get(u'options').get(u'allowSuperOutsideMethod').neg()):
                    var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u"'super' outside of function or class"))
                var.put(u'node', var.get(u"this").callprop(u'startNode'))
                var.get(u"this").callprop(u'next')
                if ((var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL')).neg() and var.get(u"this").callprop(u'match', var.get(u'types').get(u'bracketL')).neg()) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'dot')).neg()):
                    var.get(u"this").callprop(u'unexpected')
                if ((var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL')) and PyJsStrictNeq(var.get(u"this").get(u'state').get(u'inMethod'),Js(u'constructor'))) and var.get(u"this").get(u'options').get(u'allowSuperOutsideMethod').neg()):
                    var.get(u"this").callprop(u'raise', var.get(u'node').get(u'start'), Js(u'super() outside of class constructor'))
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'Super'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_import')):
                SWITCHED = True
                if var.get(u"this").callprop(u'hasPlugin', Js(u'dynamicImport')).neg():
                    var.get(u"this").callprop(u'unexpected')
                var.put(u'node', var.get(u"this").callprop(u'startNode'))
                var.get(u"this").callprop(u'next')
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL')).neg():
                    var.get(u"this").callprop(u'unexpected', var.get(u"null"), var.get(u'types').get(u'parenL'))
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'Import'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_this')):
                SWITCHED = True
                var.put(u'node', var.get(u"this").callprop(u'startNode'))
                var.get(u"this").callprop(u'next')
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ThisExpression'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_yield')):
                SWITCHED = True
                if var.get(u"this").get(u'state').get(u'inGenerator'):
                    var.get(u"this").callprop(u'unexpected')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'name')):
                SWITCHED = True
                var.put(u'node', var.get(u"this").callprop(u'startNode'))
                var.put(u'allowAwait', (PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),Js(u'await')) and var.get(u"this").get(u'state').get(u'inAsync')))
                var.put(u'allowYield', var.get(u"this").callprop(u'shouldAllowYieldIdentifier'))
                var.put(u'id', var.get(u"this").callprop(u'parseIdentifier', (var.get(u'allowAwait') or var.get(u'allowYield'))))
                if PyJsStrictEq(var.get(u'id').get(u'name'),Js(u'await')):
                    if (var.get(u"this").get(u'state').get(u'inAsync') or var.get(u"this").get(u'inModule')):
                        return var.get(u"this").callprop(u'parseAwait', var.get(u'node'))
                else:
                    if ((PyJsStrictEq(var.get(u'id').get(u'name'),Js(u'async')) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'_function'))) and var.get(u"this").callprop(u'canInsertSemicolon').neg()):
                        var.get(u"this").callprop(u'next')
                        return var.get(u"this").callprop(u'parseFunction', var.get(u'node'), Js(False), Js(False), var.get(u'true'))
                    else:
                        if ((var.get(u'canBeArrow') and PyJsStrictEq(var.get(u'id').get(u'name'),Js(u'async'))) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'name'))):
                            var.put(u'params', Js([var.get(u"this").callprop(u'parseIdentifier')]))
                            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'arrow'))
                            return var.get(u"this").callprop(u'parseArrowExpression', var.get(u'node'), var.get(u'params'), var.get(u'true'))
                if ((var.get(u'canBeArrow') and var.get(u"this").callprop(u'canInsertSemicolon').neg()) and var.get(u"this").callprop(u'eat', var.get(u'types').get(u'arrow'))):
                    return var.get(u"this").callprop(u'parseArrowExpression', var.get(u'node'), Js([var.get(u'id')]))
                return var.get(u'id')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_do')):
                SWITCHED = True
                if var.get(u"this").callprop(u'hasPlugin', Js(u'doExpressions')):
                    var.put(u'_node6', var.get(u"this").callprop(u'startNode'))
                    var.get(u"this").callprop(u'next')
                    var.put(u'oldInFunction', var.get(u"this").get(u'state').get(u'inFunction'))
                    var.put(u'oldLabels', var.get(u"this").get(u'state').get(u'labels'))
                    var.get(u"this").get(u'state').put(u'labels', Js([]))
                    var.get(u"this").get(u'state').put(u'inFunction', Js(False))
                    var.get(u'_node6').put(u'body', var.get(u"this").callprop(u'parseBlock', Js(False), var.get(u'true')))
                    var.get(u"this").get(u'state').put(u'inFunction', var.get(u'oldInFunction'))
                    var.get(u"this").get(u'state').put(u'labels', var.get(u'oldLabels'))
                    return var.get(u"this").callprop(u'finishNode', var.get(u'_node6'), Js(u'DoExpression'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'regexp')):
                SWITCHED = True
                var.put(u'value', var.get(u"this").get(u'state').get(u'value'))
                var.put(u'node', var.get(u"this").callprop(u'parseLiteral', var.get(u'value').get(u'value'), Js(u'RegExpLiteral')))
                var.get(u'node').put(u'pattern', var.get(u'value').get(u'pattern'))
                var.get(u'node').put(u'flags', var.get(u'value').get(u'flags'))
                return var.get(u'node')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'num')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseLiteral', var.get(u"this").get(u'state').get(u'value'), Js(u'NumericLiteral'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'string')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseLiteral', var.get(u"this").get(u'state').get(u'value'), Js(u'StringLiteral'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_null')):
                SWITCHED = True
                var.put(u'node', var.get(u"this").callprop(u'startNode'))
                var.get(u"this").callprop(u'next')
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'NullLiteral'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_true')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_false')):
                SWITCHED = True
                var.put(u'node', var.get(u"this").callprop(u'startNode'))
                var.get(u'node').put(u'value', var.get(u"this").callprop(u'match', var.get(u'types').get(u'_true')))
                var.get(u"this").callprop(u'next')
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'BooleanLiteral'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'parenL')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseParenAndDistinguishExpression', var.get(u"null"), var.get(u"null"), var.get(u'canBeArrow'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'bracketL')):
                SWITCHED = True
                var.put(u'node', var.get(u"this").callprop(u'startNode'))
                var.get(u"this").callprop(u'next')
                var.get(u'node').put(u'elements', var.get(u"this").callprop(u'parseExprList', var.get(u'types').get(u'bracketR'), var.get(u'true'), var.get(u'refShorthandDefaultPos')))
                var.get(u"this").callprop(u'toReferencedList', var.get(u'node').get(u'elements'))
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ArrayExpression'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'braceL')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseObj', Js(False), var.get(u'refShorthandDefaultPos'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_function')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseFunctionExpression')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'at')):
                SWITCHED = True
                var.get(u"this").callprop(u'parseDecorators')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_class')):
                SWITCHED = True
                var.put(u'node', var.get(u"this").callprop(u'startNode'))
                var.get(u"this").callprop(u'takeDecorators', var.get(u'node'))
                return var.get(u"this").callprop(u'parseClass', var.get(u'node'), Js(False))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_new')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseNew')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'backQuote')):
                SWITCHED = True
                return var.get(u"this").callprop(u'parseTemplate')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'doubleColon')):
                SWITCHED = True
                var.put(u'node', var.get(u"this").callprop(u'startNode'))
                var.get(u"this").callprop(u'next')
                var.get(u'node').put(u'object', var.get(u"null"))
                var.put(u'callee', var.get(u'node').put(u'callee', var.get(u"this").callprop(u'parseNoCallExpr')))
                if PyJsStrictEq(var.get(u'callee').get(u'type'),Js(u'MemberExpression')):
                    return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'BindExpression'))
                else:
                    var.get(u"this").callprop(u'raise', var.get(u'callee').get(u'start'), Js(u'Binding should be performed on object property.'))
            if True:
                SWITCHED = True
                var.get(u"this").callprop(u'unexpected')
            SWITCHED = True
            break
    PyJs_anonymous_3045_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseExprAtom', PyJs_anonymous_3045_)
    @Js
    def PyJs_anonymous_3046_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'meta'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.put(u'meta', var.get(u"this").callprop(u'parseIdentifier', var.get(u'true')))
        if ((var.get(u"this").get(u'state').get(u'inGenerator') and var.get(u"this").callprop(u'eat', var.get(u'types').get(u'dot'))) and var.get(u"this").callprop(u'hasPlugin', Js(u'functionSent'))):
            return var.get(u"this").callprop(u'parseMetaProperty', var.get(u'node'), var.get(u'meta'), Js(u'sent'))
        else:
            return var.get(u"this").callprop(u'parseFunction', var.get(u'node'), Js(False))
    PyJs_anonymous_3046_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseFunctionExpression', PyJs_anonymous_3046_)
    @Js
    def PyJs_anonymous_3047_(node, meta, propertyName, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'propertyName':propertyName, u'meta':meta, u'arguments':arguments}, var)
        var.registers([u'node', u'propertyName', u'meta'])
        var.get(u'node').put(u'meta', var.get(u'meta'))
        var.get(u'node').put(u'property', var.get(u"this").callprop(u'parseIdentifier', var.get(u'true')))
        if PyJsStrictNeq(var.get(u'node').get(u'property').get(u'name'),var.get(u'propertyName')):
            var.get(u"this").callprop(u'raise', var.get(u'node').get(u'property').get(u'start'), (((Js(u'The only valid meta property for new is ')+var.get(u'meta').get(u'name'))+Js(u'.'))+var.get(u'propertyName')))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'MetaProperty'))
    PyJs_anonymous_3047_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseMetaProperty', PyJs_anonymous_3047_)
    @Js
    def PyJs_anonymous_3048_(value, type, this, arguments, var=var):
        var = Scope({u'this':this, u'type':type, u'arguments':arguments, u'value':value}, var)
        var.registers([u'node', u'type', u'value'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u"this").callprop(u'addExtra', var.get(u'node'), Js(u'rawValue'), var.get(u'value'))
        var.get(u"this").callprop(u'addExtra', var.get(u'node'), Js(u'raw'), var.get(u"this").get(u'input').callprop(u'slice', var.get(u"this").get(u'state').get(u'start'), var.get(u"this").get(u'state').get(u'end')))
        var.get(u'node').put(u'value', var.get(u'value'))
        var.get(u"this").callprop(u'next')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), var.get(u'type'))
    PyJs_anonymous_3048_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseLiteral', PyJs_anonymous_3048_)
    @Js
    def PyJs_anonymous_3049_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'val'])
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenL'))
        var.put(u'val', var.get(u"this").callprop(u'parseExpression'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenR'))
        return var.get(u'val')
    PyJs_anonymous_3049_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseParenExpression', PyJs_anonymous_3049_)
    @Js
    def PyJs_anonymous_3050_(startPos, startLoc, canBeArrow, this, arguments, var=var):
        var = Scope({u'this':this, u'startPos':startPos, u'canBeArrow':canBeArrow, u'startLoc':startLoc, u'arguments':arguments}, var)
        var.registers([u'innerStartLoc', u'optionalCommaStart', u'_ref', u'startPos', u'arrowNode', u'_iterator', u'val', u'param', u'innerStartPos', u'spreadNodeStartPos', u'refShorthandDefaultPos', u'_i', u'spreadStart', u'exprList', u'canBeArrow', u'innerEndPos', u'spreadNodeStartLoc', u'refNeedsArrowPos', u'_isArray', u'innerEndLoc', u'startLoc', u'first'])
        var.put(u'startPos', (var.get(u'startPos') or var.get(u"this").get(u'state').get(u'start')))
        var.put(u'startLoc', (var.get(u'startLoc') or var.get(u"this").get(u'state').get(u'startLoc')))
        var.put(u'val', PyJsComma(Js(0.0), Js(None)))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenL'))
        var.put(u'innerStartPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'innerStartLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        var.put(u'exprList', Js([]))
        var.put(u'first', var.get(u'true'))
        PyJs_Object_3051_ = Js({u'start':Js(0.0)})
        var.put(u'refShorthandDefaultPos', PyJs_Object_3051_)
        var.put(u'spreadStart', PyJsComma(Js(0.0), Js(None)))
        var.put(u'optionalCommaStart', PyJsComma(Js(0.0), Js(None)))
        PyJs_Object_3052_ = Js({u'start':Js(0.0)})
        var.put(u'refNeedsArrowPos', PyJs_Object_3052_)
        while var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenR')).neg():
            if var.get(u'first'):
                var.put(u'first', Js(False))
            else:
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'), (var.get(u'refNeedsArrowPos').get(u'start') or var.get(u"null")))
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenR')):
                    var.put(u'optionalCommaStart', var.get(u"this").get(u'state').get(u'start'))
                    break
            if var.get(u"this").callprop(u'match', var.get(u'types').get(u'ellipsis')):
                var.put(u'spreadNodeStartPos', var.get(u"this").get(u'state').get(u'start'))
                var.put(u'spreadNodeStartLoc', var.get(u"this").get(u'state').get(u'startLoc'))
                var.put(u'spreadStart', var.get(u"this").get(u'state').get(u'start'))
                var.get(u'exprList').callprop(u'push', var.get(u"this").callprop(u'parseParenItem', var.get(u"this").callprop(u'parseRest'), var.get(u'spreadNodeStartLoc'), var.get(u'spreadNodeStartPos')))
                break
            else:
                var.get(u'exprList').callprop(u'push', var.get(u"this").callprop(u'parseMaybeAssign', Js(False), var.get(u'refShorthandDefaultPos'), var.get(u"this").get(u'parseParenItem'), var.get(u'refNeedsArrowPos')))
        var.put(u'innerEndPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'innerEndLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenR'))
        var.put(u'arrowNode', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
        if ((var.get(u'canBeArrow') and var.get(u"this").callprop(u'shouldParseArrow')) and var.put(u'arrowNode', var.get(u"this").callprop(u'parseArrow', var.get(u'arrowNode')))):
            #for JS loop
            var.put(u'_iterator', var.get(u'exprList'))
            var.put(u'_isArray', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator')))
            var.put(u'_i', Js(0.0))
            var.put(u'_iterator', (var.get(u'_iterator') if var.get(u'_isArray') else var.get(u'_iterator').callprop(var.get(u'Symbol').get(u'iterator'))))
            while 1:
                pass
                if var.get(u'_isArray'):
                    if (var.get(u'_i')>=var.get(u'_iterator').get(u'length')):
                        break
                    var.put(u'_ref', var.get(u'_iterator').get((var.put(u'_i',Js(var.get(u'_i').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i', var.get(u'_iterator').callprop(u'next'))
                    if var.get(u'_i').get(u'done'):
                        break
                    var.put(u'_ref', var.get(u'_i').get(u'value'))
                var.put(u'param', var.get(u'_ref'))
                if (var.get(u'param').get(u'extra') and var.get(u'param').get(u'extra').get(u'parenthesized')):
                    var.get(u"this").callprop(u'unexpected', var.get(u'param').get(u'extra').get(u'parenStart'))
            
            return var.get(u"this").callprop(u'parseArrowExpression', var.get(u'arrowNode'), var.get(u'exprList'))
        if var.get(u'exprList').get(u'length').neg():
            var.get(u"this").callprop(u'unexpected', var.get(u"this").get(u'state').get(u'lastTokStart'))
        if var.get(u'optionalCommaStart'):
            var.get(u"this").callprop(u'unexpected', var.get(u'optionalCommaStart'))
        if var.get(u'spreadStart'):
            var.get(u"this").callprop(u'unexpected', var.get(u'spreadStart'))
        if var.get(u'refShorthandDefaultPos').get(u'start'):
            var.get(u"this").callprop(u'unexpected', var.get(u'refShorthandDefaultPos').get(u'start'))
        if var.get(u'refNeedsArrowPos').get(u'start'):
            var.get(u"this").callprop(u'unexpected', var.get(u'refNeedsArrowPos').get(u'start'))
        if (var.get(u'exprList').get(u'length')>Js(1.0)):
            var.put(u'val', var.get(u"this").callprop(u'startNodeAt', var.get(u'innerStartPos'), var.get(u'innerStartLoc')))
            var.get(u'val').put(u'expressions', var.get(u'exprList'))
            var.get(u"this").callprop(u'toReferencedList', var.get(u'val').get(u'expressions'))
            var.get(u"this").callprop(u'finishNodeAt', var.get(u'val'), Js(u'SequenceExpression'), var.get(u'innerEndPos'), var.get(u'innerEndLoc'))
        else:
            var.put(u'val', var.get(u'exprList').get(u'0'))
        var.get(u"this").callprop(u'addExtra', var.get(u'val'), Js(u'parenthesized'), var.get(u'true'))
        var.get(u"this").callprop(u'addExtra', var.get(u'val'), Js(u'parenStart'), var.get(u'startPos'))
        return var.get(u'val')
    PyJs_anonymous_3050_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseParenAndDistinguishExpression', PyJs_anonymous_3050_)
    @Js
    def PyJs_anonymous_3053_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this").callprop(u'canInsertSemicolon').neg()
    PyJs_anonymous_3053_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'shouldParseArrow', PyJs_anonymous_3053_)
    @Js
    def PyJs_anonymous_3054_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'arrow')):
            return var.get(u'node')
    PyJs_anonymous_3054_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseArrow', PyJs_anonymous_3054_)
    @Js
    def PyJs_anonymous_3055_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        return var.get(u'node')
    PyJs_anonymous_3055_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseParenItem', PyJs_anonymous_3055_)
    @Js
    def PyJs_anonymous_3056_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'meta'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.put(u'meta', var.get(u"this").callprop(u'parseIdentifier', var.get(u'true')))
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'dot')):
            return var.get(u"this").callprop(u'parseMetaProperty', var.get(u'node'), var.get(u'meta'), Js(u'target'))
        var.get(u'node').put(u'callee', var.get(u"this").callprop(u'parseNoCallExpr'))
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'parenL')):
            var.get(u'node').put(u'arguments', var.get(u"this").callprop(u'parseExprList', var.get(u'types').get(u'parenR')))
            var.get(u"this").callprop(u'toReferencedList', var.get(u'node').get(u'arguments'))
        else:
            var.get(u'node').put(u'arguments', Js([]))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'NewExpression'))
    PyJs_anonymous_3056_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseNew', PyJs_anonymous_3056_)
    @Js
    def PyJs_anonymous_3057_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'elem'])
        var.put(u'elem', var.get(u"this").callprop(u'startNode'))
        PyJs_Object_3058_ = Js({u'raw':var.get(u"this").get(u'input').callprop(u'slice', var.get(u"this").get(u'state').get(u'start'), var.get(u"this").get(u'state').get(u'end')).callprop(u'replace', JsRegExp(u'/\\r\\n?/g'), Js(u'\n')),u'cooked':var.get(u"this").get(u'state').get(u'value')})
        var.get(u'elem').put(u'value', PyJs_Object_3058_)
        var.get(u"this").callprop(u'next')
        var.get(u'elem').put(u'tail', var.get(u"this").callprop(u'match', var.get(u'types').get(u'backQuote')))
        return var.get(u"this").callprop(u'finishNode', var.get(u'elem'), Js(u'TemplateElement'))
    PyJs_anonymous_3057_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseTemplateElement', PyJs_anonymous_3057_)
    @Js
    def PyJs_anonymous_3059_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'curElt'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u"this").callprop(u'next')
        var.get(u'node').put(u'expressions', Js([]))
        var.put(u'curElt', var.get(u"this").callprop(u'parseTemplateElement'))
        var.get(u'node').put(u'quasis', Js([var.get(u'curElt')]))
        while var.get(u'curElt').get(u'tail').neg():
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'dollarBraceL'))
            var.get(u'node').get(u'expressions').callprop(u'push', var.get(u"this").callprop(u'parseExpression'))
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceR'))
            var.get(u'node').get(u'quasis').callprop(u'push', var.put(u'curElt', var.get(u"this").callprop(u'parseTemplateElement')))
        var.get(u"this").callprop(u'next')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'TemplateLiteral'))
    PyJs_anonymous_3059_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseTemplate', PyJs_anonymous_3059_)
    @Js
    def PyJs_anonymous_3060_(isPattern, refShorthandDefaultPos, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'refShorthandDefaultPos':refShorthandDefaultPos, u'isPattern':isPattern}, var)
        var.registers([u'node', u'firstRestLocation', u'isGenerator', u'prop', u'isAsync', u'asyncId', u'refShorthandDefaultPos', u'startLoc', u'propHash', u'position', u'startPos', u'isPattern', u'decorators', u'first'])
        var.put(u'decorators', Js([]))
        var.put(u'propHash', var.get(u'Object').callprop(u'create', var.get(u"null")))
        var.put(u'first', var.get(u'true'))
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u'node').put(u'properties', Js([]))
        var.get(u"this").callprop(u'next')
        var.put(u'firstRestLocation', var.get(u"null"))
        while var.get(u"this").callprop(u'eat', var.get(u'types').get(u'braceR')).neg():
            if var.get(u'first'):
                var.put(u'first', Js(False))
            else:
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
                if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'braceR')):
                    break
            while var.get(u"this").callprop(u'match', var.get(u'types').get(u'at')):
                var.get(u'decorators').callprop(u'push', var.get(u"this").callprop(u'parseDecorator'))
            var.put(u'prop', var.get(u"this").callprop(u'startNode'))
            var.put(u'isGenerator', Js(False))
            var.put(u'isAsync', Js(False))
            var.put(u'startPos', PyJsComma(Js(0.0), Js(None)))
            var.put(u'startLoc', PyJsComma(Js(0.0), Js(None)))
            if var.get(u'decorators').get(u'length'):
                var.get(u'prop').put(u'decorators', var.get(u'decorators'))
                var.put(u'decorators', Js([]))
            if (var.get(u"this").callprop(u'hasPlugin', Js(u'objectRestSpread')) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'ellipsis'))):
                var.put(u'prop', var.get(u"this").callprop(u'parseSpread'))
                var.get(u'prop').put(u'type', (Js(u'RestProperty') if var.get(u'isPattern') else Js(u'SpreadProperty')))
                var.get(u'node').get(u'properties').callprop(u'push', var.get(u'prop'))
                if var.get(u'isPattern'):
                    var.put(u'position', var.get(u"this").get(u'state').get(u'start'))
                    if PyJsStrictNeq(var.get(u'firstRestLocation'),var.get(u"null")):
                        var.get(u"this").callprop(u'unexpected', var.get(u'firstRestLocation'), Js(u'Cannot have multiple rest elements when destructuring'))
                    else:
                        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'braceR')):
                            break
                        else:
                            if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'comma')) and PyJsStrictEq(var.get(u"this").callprop(u'lookahead').get(u'type'),var.get(u'types').get(u'braceR'))):
                                continue
                            else:
                                var.put(u'firstRestLocation', var.get(u'position'))
                                continue
                else:
                    continue
            var.get(u'prop').put(u'method', Js(False))
            var.get(u'prop').put(u'shorthand', Js(False))
            if (var.get(u'isPattern') or var.get(u'refShorthandDefaultPos')):
                var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
                var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
            if var.get(u'isPattern').neg():
                var.put(u'isGenerator', var.get(u"this").callprop(u'eat', var.get(u'types').get(u'star')))
            if (var.get(u'isPattern').neg() and var.get(u"this").callprop(u'isContextual', Js(u'async'))):
                if var.get(u'isGenerator'):
                    var.get(u"this").callprop(u'unexpected')
                var.put(u'asyncId', var.get(u"this").callprop(u'parseIdentifier'))
                if ((((var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL'))) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceR'))) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'eq'))) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'comma'))):
                    var.get(u'prop').put(u'key', var.get(u'asyncId'))
                else:
                    var.put(u'isAsync', var.get(u'true'))
                    if var.get(u"this").callprop(u'hasPlugin', Js(u'asyncGenerators')):
                        var.put(u'isGenerator', var.get(u"this").callprop(u'eat', var.get(u'types').get(u'star')))
                    var.get(u"this").callprop(u'parsePropertyName', var.get(u'prop'))
            else:
                var.get(u"this").callprop(u'parsePropertyName', var.get(u'prop'))
            var.get(u"this").callprop(u'parseObjPropValue', var.get(u'prop'), var.get(u'startPos'), var.get(u'startLoc'), var.get(u'isGenerator'), var.get(u'isAsync'), var.get(u'isPattern'), var.get(u'refShorthandDefaultPos'))
            var.get(u"this").callprop(u'checkPropClash', var.get(u'prop'), var.get(u'propHash'))
            if var.get(u'prop').get(u'shorthand'):
                var.get(u"this").callprop(u'addExtra', var.get(u'prop'), Js(u'shorthand'), var.get(u'true'))
            var.get(u'node').get(u'properties').callprop(u'push', var.get(u'prop'))
        if PyJsStrictNeq(var.get(u'firstRestLocation'),var.get(u"null")):
            var.get(u"this").callprop(u'unexpected', var.get(u'firstRestLocation'), Js(u'The rest element has to be the last element when destructuring'))
        if var.get(u'decorators').get(u'length'):
            var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u'You have trailing decorators with no property'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), (Js(u'ObjectPattern') if var.get(u'isPattern') else Js(u'ObjectExpression')))
    PyJs_anonymous_3060_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseObj', PyJs_anonymous_3060_)
    @Js
    def PyJs_anonymous_3061_(prop, startPos, startLoc, isGenerator, isAsync, isPattern, refShorthandDefaultPos, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'isGenerator':isGenerator, u'prop':prop, u'isAsync':isAsync, u'refShorthandDefaultPos':refShorthandDefaultPos, u'startLoc':startLoc, u'startPos':startPos, u'isPattern':isPattern}, var)
        var.registers([u'isGenerator', u'prop', u'start', u'paramCount', u'illegalBinding', u'refShorthandDefaultPos', u'startLoc', u'isAsync', u'startPos', u'isPattern'])
        if ((var.get(u'isAsync') or var.get(u'isGenerator')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL'))):
            if var.get(u'isPattern'):
                var.get(u"this").callprop(u'unexpected')
            var.get(u'prop').put(u'kind', Js(u'method'))
            var.get(u'prop').put(u'method', var.get(u'true'))
            var.get(u"this").callprop(u'parseMethod', var.get(u'prop'), var.get(u'isGenerator'), var.get(u'isAsync'))
            return var.get(u"this").callprop(u'finishNode', var.get(u'prop'), Js(u'ObjectMethod'))
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'colon')):
            var.get(u'prop').put(u'value', (var.get(u"this").callprop(u'parseMaybeDefault', var.get(u"this").get(u'state').get(u'start'), var.get(u"this").get(u'state').get(u'startLoc')) if var.get(u'isPattern') else var.get(u"this").callprop(u'parseMaybeAssign', Js(False), var.get(u'refShorthandDefaultPos'))))
            return var.get(u"this").callprop(u'finishNode', var.get(u'prop'), Js(u'ObjectProperty'))
        def PyJs_LONG_3062_(var=var):
            return (((((var.get(u'isPattern').neg() and var.get(u'prop').get(u'computed').neg()) and PyJsStrictEq(var.get(u'prop').get(u'key').get(u'type'),Js(u'Identifier'))) and (PyJsStrictEq(var.get(u'prop').get(u'key').get(u'name'),Js(u'get')) or PyJsStrictEq(var.get(u'prop').get(u'key').get(u'name'),Js(u'set')))) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'comma')).neg()) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceR')).neg())
        if PyJs_LONG_3062_():
            if (var.get(u'isGenerator') or var.get(u'isAsync')):
                var.get(u"this").callprop(u'unexpected')
            var.get(u'prop').put(u'kind', var.get(u'prop').get(u'key').get(u'name'))
            var.get(u"this").callprop(u'parsePropertyName', var.get(u'prop'))
            var.get(u"this").callprop(u'parseMethod', var.get(u'prop'), Js(False))
            var.put(u'paramCount', (Js(0.0) if PyJsStrictEq(var.get(u'prop').get(u'kind'),Js(u'get')) else Js(1.0)))
            if PyJsStrictNeq(var.get(u'prop').get(u'params').get(u'length'),var.get(u'paramCount')):
                var.put(u'start', var.get(u'prop').get(u'start'))
                if PyJsStrictEq(var.get(u'prop').get(u'kind'),Js(u'get')):
                    var.get(u"this").callprop(u'raise', var.get(u'start'), Js(u'getter should have no params'))
                else:
                    var.get(u"this").callprop(u'raise', var.get(u'start'), Js(u'setter should have exactly one param'))
            return var.get(u"this").callprop(u'finishNode', var.get(u'prop'), Js(u'ObjectMethod'))
        if (var.get(u'prop').get(u'computed').neg() and PyJsStrictEq(var.get(u'prop').get(u'key').get(u'type'),Js(u'Identifier'))):
            if var.get(u'isPattern'):
                var.put(u'illegalBinding', var.get(u"this").callprop(u'isKeyword', var.get(u'prop').get(u'key').get(u'name')))
                if (var.get(u'illegalBinding').neg() and var.get(u"this").get(u'state').get(u'strict')):
                    var.put(u'illegalBinding', (var.get(u'reservedWords').callprop(u'strictBind', var.get(u'prop').get(u'key').get(u'name')) or var.get(u'reservedWords').callprop(u'strict', var.get(u'prop').get(u'key').get(u'name'))))
                if var.get(u'illegalBinding'):
                    var.get(u"this").callprop(u'raise', var.get(u'prop').get(u'key').get(u'start'), (Js(u'Binding ')+var.get(u'prop').get(u'key').get(u'name')))
                var.get(u'prop').put(u'value', var.get(u"this").callprop(u'parseMaybeDefault', var.get(u'startPos'), var.get(u'startLoc'), var.get(u'prop').get(u'key').callprop(u'__clone')))
            else:
                if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'eq')) and var.get(u'refShorthandDefaultPos')):
                    if var.get(u'refShorthandDefaultPos').get(u'start').neg():
                        var.get(u'refShorthandDefaultPos').put(u'start', var.get(u"this").get(u'state').get(u'start'))
                    var.get(u'prop').put(u'value', var.get(u"this").callprop(u'parseMaybeDefault', var.get(u'startPos'), var.get(u'startLoc'), var.get(u'prop').get(u'key').callprop(u'__clone')))
                else:
                    var.get(u'prop').put(u'value', var.get(u'prop').get(u'key').callprop(u'__clone'))
            var.get(u'prop').put(u'shorthand', var.get(u'true'))
            return var.get(u"this").callprop(u'finishNode', var.get(u'prop'), Js(u'ObjectProperty'))
        var.get(u"this").callprop(u'unexpected')
    PyJs_anonymous_3061_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseObjPropValue', PyJs_anonymous_3061_)
    @Js
    def PyJs_anonymous_3063_(prop, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'prop':prop}, var)
        var.registers([u'prop'])
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'bracketL')):
            var.get(u'prop').put(u'computed', var.get(u'true'))
            var.get(u'prop').put(u'key', var.get(u"this").callprop(u'parseMaybeAssign'))
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'bracketR'))
            return var.get(u'prop').get(u'key')
        else:
            var.get(u'prop').put(u'computed', Js(False))
            return var.get(u'prop').put(u'key', (var.get(u"this").callprop(u'parseExprAtom') if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'num')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'string'))) else var.get(u"this").callprop(u'parseIdentifier', var.get(u'true'))))
    PyJs_anonymous_3063_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parsePropertyName', PyJs_anonymous_3063_)
    @Js
    def PyJs_anonymous_3064_(node, isAsync, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'isAsync':isAsync, u'arguments':arguments}, var)
        var.registers([u'node', u'isAsync'])
        var.get(u'node').put(u'id', var.get(u"null"))
        var.get(u'node').put(u'generator', Js(False))
        var.get(u'node').put(u'expression', Js(False))
        var.get(u'node').put(u'async', var.get(u'isAsync').neg().neg())
    PyJs_anonymous_3064_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'initFunction', PyJs_anonymous_3064_)
    @Js
    def PyJs_anonymous_3065_(node, isGenerator, isAsync, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'isAsync':isAsync, u'isGenerator':isGenerator, u'arguments':arguments}, var)
        var.registers([u'node', u'oldInMethod', u'isAsync', u'isGenerator'])
        var.put(u'oldInMethod', var.get(u"this").get(u'state').get(u'inMethod'))
        var.get(u"this").get(u'state').put(u'inMethod', (var.get(u'node').get(u'kind') or var.get(u'true')))
        var.get(u"this").callprop(u'initFunction', var.get(u'node'), var.get(u'isAsync'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenL'))
        var.get(u'node').put(u'params', var.get(u"this").callprop(u'parseBindingList', var.get(u'types').get(u'parenR')))
        var.get(u'node').put(u'generator', var.get(u'isGenerator'))
        var.get(u"this").callprop(u'parseFunctionBody', var.get(u'node'))
        var.get(u"this").get(u'state').put(u'inMethod', var.get(u'oldInMethod'))
        return var.get(u'node')
    PyJs_anonymous_3065_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseMethod', PyJs_anonymous_3065_)
    @Js
    def PyJs_anonymous_3066_(node, params, isAsync, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'isAsync':isAsync, u'params':params, u'arguments':arguments}, var)
        var.registers([u'node', u'isAsync', u'params'])
        var.get(u"this").callprop(u'initFunction', var.get(u'node'), var.get(u'isAsync'))
        var.get(u'node').put(u'params', var.get(u"this").callprop(u'toAssignableList', var.get(u'params'), var.get(u'true'), Js(u'arrow function parameters')))
        var.get(u"this").callprop(u'parseFunctionBody', var.get(u'node'), var.get(u'true'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ArrowFunctionExpression'))
    PyJs_anonymous_3066_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseArrowExpression', PyJs_anonymous_3066_)
    @Js
    def PyJs_anonymous_3067_(node, allowExpression, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'allowExpression':allowExpression, u'arguments':arguments}, var)
        var.registers([u'node', u'_isArray3', u'_isArray2', u'directive', u'oldLabels', u'checkLVal', u'oldInAsync', u'allowExpression', u'isStrict', u'_i3', u'_i2', u'param', u'_ref2', u'oldInFunc', u'isExpression', u'oldStrict', u'nameHash', u'oldInGen', u'_ref3', u'_iterator3', u'_iterator2'])
        var.put(u'isExpression', (var.get(u'allowExpression') and var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceL')).neg()))
        var.put(u'oldInAsync', var.get(u"this").get(u'state').get(u'inAsync'))
        var.get(u"this").get(u'state').put(u'inAsync', var.get(u'node').get(u'async'))
        if var.get(u'isExpression'):
            var.get(u'node').put(u'body', var.get(u"this").callprop(u'parseMaybeAssign'))
            var.get(u'node').put(u'expression', var.get(u'true'))
        else:
            var.put(u'oldInFunc', var.get(u"this").get(u'state').get(u'inFunction'))
            var.put(u'oldInGen', var.get(u"this").get(u'state').get(u'inGenerator'))
            var.put(u'oldLabels', var.get(u"this").get(u'state').get(u'labels'))
            var.get(u"this").get(u'state').put(u'inFunction', var.get(u'true'))
            var.get(u"this").get(u'state').put(u'inGenerator', var.get(u'node').get(u'generator'))
            var.get(u"this").get(u'state').put(u'labels', Js([]))
            var.get(u'node').put(u'body', var.get(u"this").callprop(u'parseBlock', var.get(u'true')))
            var.get(u'node').put(u'expression', Js(False))
            var.get(u"this").get(u'state').put(u'inFunction', var.get(u'oldInFunc'))
            var.get(u"this").get(u'state').put(u'inGenerator', var.get(u'oldInGen'))
            var.get(u"this").get(u'state').put(u'labels', var.get(u'oldLabels'))
        var.get(u"this").get(u'state').put(u'inAsync', var.get(u'oldInAsync'))
        var.put(u'checkLVal', var.get(u"this").get(u'state').get(u'strict'))
        var.put(u'isStrict', Js(False))
        if var.get(u'allowExpression'):
            var.put(u'checkLVal', var.get(u'true'))
        if (var.get(u'isExpression').neg() and var.get(u'node').get(u'body').get(u'directives').get(u'length')):
            #for JS loop
            var.put(u'_iterator2', var.get(u'node').get(u'body').get(u'directives'))
            var.put(u'_isArray2', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator2')))
            var.put(u'_i2', Js(0.0))
            var.put(u'_iterator2', (var.get(u'_iterator2') if var.get(u'_isArray2') else var.get(u'_iterator2').callprop(var.get(u'Symbol').get(u'iterator'))))
            while 1:
                pass
                if var.get(u'_isArray2'):
                    if (var.get(u'_i2')>=var.get(u'_iterator2').get(u'length')):
                        break
                    var.put(u'_ref2', var.get(u'_iterator2').get((var.put(u'_i2',Js(var.get(u'_i2').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i2', var.get(u'_iterator2').callprop(u'next'))
                    if var.get(u'_i2').get(u'done'):
                        break
                    var.put(u'_ref2', var.get(u'_i2').get(u'value'))
                var.put(u'directive', var.get(u'_ref2'))
                if PyJsStrictEq(var.get(u'directive').get(u'value').get(u'value'),Js(u'use strict')):
                    var.put(u'isStrict', var.get(u'true'))
                    var.put(u'checkLVal', var.get(u'true'))
                    break
            
        if (((var.get(u'isStrict') and var.get(u'node').get(u'id')) and PyJsStrictEq(var.get(u'node').get(u'id').get(u'type'),Js(u'Identifier'))) and PyJsStrictEq(var.get(u'node').get(u'id').get(u'name'),Js(u'yield'))):
            var.get(u"this").callprop(u'raise', var.get(u'node').get(u'id').get(u'start'), Js(u'Binding yield in strict mode'))
        if var.get(u'checkLVal'):
            var.put(u'nameHash', var.get(u'Object').callprop(u'create', var.get(u"null")))
            var.put(u'oldStrict', var.get(u"this").get(u'state').get(u'strict'))
            if var.get(u'isStrict'):
                var.get(u"this").get(u'state').put(u'strict', var.get(u'true'))
            if var.get(u'node').get(u'id'):
                var.get(u"this").callprop(u'checkLVal', var.get(u'node').get(u'id'), var.get(u'true'), var.get(u'undefined'), Js(u'function name'))
            #for JS loop
            var.put(u'_iterator3', var.get(u'node').get(u'params'))
            var.put(u'_isArray3', var.get(u'Array').callprop(u'isArray', var.get(u'_iterator3')))
            var.put(u'_i3', Js(0.0))
            var.put(u'_iterator3', (var.get(u'_iterator3') if var.get(u'_isArray3') else var.get(u'_iterator3').callprop(var.get(u'Symbol').get(u'iterator'))))
            while 1:
                pass
                if var.get(u'_isArray3'):
                    if (var.get(u'_i3')>=var.get(u'_iterator3').get(u'length')):
                        break
                    var.put(u'_ref3', var.get(u'_iterator3').get((var.put(u'_i3',Js(var.get(u'_i3').to_number())+Js(1))-Js(1))))
                else:
                    var.put(u'_i3', var.get(u'_iterator3').callprop(u'next'))
                    if var.get(u'_i3').get(u'done'):
                        break
                    var.put(u'_ref3', var.get(u'_i3').get(u'value'))
                var.put(u'param', var.get(u'_ref3'))
                if (var.get(u'isStrict') and PyJsStrictNeq(var.get(u'param').get(u'type'),Js(u'Identifier'))):
                    var.get(u"this").callprop(u'raise', var.get(u'param').get(u'start'), Js(u'Non-simple parameter in strict mode'))
                var.get(u"this").callprop(u'checkLVal', var.get(u'param'), var.get(u'true'), var.get(u'nameHash'), Js(u'function parameter list'))
            
            var.get(u"this").get(u'state').put(u'strict', var.get(u'oldStrict'))
    PyJs_anonymous_3067_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseFunctionBody', PyJs_anonymous_3067_)
    @Js
    def PyJs_anonymous_3068_(close, allowEmpty, refShorthandDefaultPos, this, arguments, var=var):
        var = Scope({u'this':this, u'close':close, u'allowEmpty':allowEmpty, u'refShorthandDefaultPos':refShorthandDefaultPos, u'arguments':arguments}, var)
        var.registers([u'elts', u'close', u'allowEmpty', u'refShorthandDefaultPos', u'first'])
        var.put(u'elts', Js([]))
        var.put(u'first', var.get(u'true'))
        while var.get(u"this").callprop(u'eat', var.get(u'close')).neg():
            if var.get(u'first'):
                var.put(u'first', Js(False))
            else:
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
                if var.get(u"this").callprop(u'eat', var.get(u'close')):
                    break
            var.get(u'elts').callprop(u'push', var.get(u"this").callprop(u'parseExprListItem', var.get(u'allowEmpty'), var.get(u'refShorthandDefaultPos')))
        return var.get(u'elts')
    PyJs_anonymous_3068_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseExprList', PyJs_anonymous_3068_)
    @Js
    def PyJs_anonymous_3069_(allowEmpty, refShorthandDefaultPos, this, arguments, var=var):
        var = Scope({u'this':this, u'allowEmpty':allowEmpty, u'refShorthandDefaultPos':refShorthandDefaultPos, u'arguments':arguments}, var)
        var.registers([u'allowEmpty', u'refShorthandDefaultPos', u'elt'])
        var.put(u'elt', PyJsComma(Js(0.0), Js(None)))
        if (var.get(u'allowEmpty') and var.get(u"this").callprop(u'match', var.get(u'types').get(u'comma'))):
            var.put(u'elt', var.get(u"null"))
        else:
            if var.get(u"this").callprop(u'match', var.get(u'types').get(u'ellipsis')):
                var.put(u'elt', var.get(u"this").callprop(u'parseSpread', var.get(u'refShorthandDefaultPos')))
            else:
                var.put(u'elt', var.get(u"this").callprop(u'parseMaybeAssign', Js(False), var.get(u'refShorthandDefaultPos'), var.get(u"this").get(u'parseParenItem')))
        return var.get(u'elt')
    PyJs_anonymous_3069_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseExprListItem', PyJs_anonymous_3069_)
    @Js
    def PyJs_anonymous_3070_(liberal, this, arguments, var=var):
        var = Scope({u'this':this, u'liberal':liberal, u'arguments':arguments}, var)
        var.registers([u'node', u'liberal'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')):
            if ((var.get(u'liberal').neg() and var.get(u"this").get(u'state').get(u'strict')) and var.get(u'reservedWords').callprop(u'strict', var.get(u"this").get(u'state').get(u'value'))):
                var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), ((Js(u"The keyword '")+var.get(u"this").get(u'state').get(u'value'))+Js(u"' is reserved")))
            var.get(u'node').put(u'name', var.get(u"this").get(u'state').get(u'value'))
        else:
            if (var.get(u'liberal') and var.get(u"this").get(u'state').get(u'type').get(u'keyword')):
                var.get(u'node').put(u'name', var.get(u"this").get(u'state').get(u'type').get(u'keyword'))
            else:
                var.get(u"this").callprop(u'unexpected')
        if ((var.get(u'liberal').neg() and PyJsStrictEq(var.get(u'node').get(u'name'),Js(u'await'))) and var.get(u"this").get(u'state').get(u'inAsync')):
            var.get(u"this").callprop(u'raise', var.get(u'node').get(u'start'), Js(u'invalid use of await inside of an async function'))
        var.get(u'node').get(u'loc').put(u'identifierName', var.get(u'node').get(u'name'))
        var.get(u"this").callprop(u'next')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'Identifier'))
    PyJs_anonymous_3070_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseIdentifier', PyJs_anonymous_3070_)
    @Js
    def PyJs_anonymous_3071_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u"this").get(u'state').get(u'inAsync').neg():
            var.get(u"this").callprop(u'unexpected')
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'star')):
            var.get(u"this").callprop(u'raise', var.get(u'node').get(u'start'), Js(u'await* has been removed from the async functions proposal. Use Promise.all() instead.'))
        var.get(u'node').put(u'argument', var.get(u"this").callprop(u'parseMaybeUnary'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'AwaitExpression'))
    PyJs_anonymous_3071_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseAwait', PyJs_anonymous_3071_)
    @Js
    def PyJs_anonymous_3072_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u"this").callprop(u'next')
        if ((var.get(u"this").callprop(u'match', var.get(u'types').get(u'semi')) or var.get(u"this").callprop(u'canInsertSemicolon')) or (var.get(u"this").callprop(u'match', var.get(u'types').get(u'star')).neg() and var.get(u"this").get(u'state').get(u'type').get(u'startsExpr').neg())):
            var.get(u'node').put(u'delegate', Js(False))
            var.get(u'node').put(u'argument', var.get(u"null"))
        else:
            var.get(u'node').put(u'delegate', var.get(u"this").callprop(u'eat', var.get(u'types').get(u'star')))
            var.get(u'node').put(u'argument', var.get(u"this").callprop(u'parseMaybeAssign'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'YieldExpression'))
    PyJs_anonymous_3072_._set_name(u'anonymous')
    var.get(u'pp$3').put(u'parseYield', PyJs_anonymous_3072_)
    pass
    var.put(u'pp$4', var.get(u'Parser').get(u'prototype'))
    var.put(u'commentKeys', Js([Js(u'leadingComments'), Js(u'trailingComments'), Js(u'innerComments')]))
    @Js
    def PyJs_anonymous_3073_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'Node'])
        @Js
        def PyJsHoisted_Node_(pos, loc, filename, this, arguments, var=var):
            var = Scope({u'this':this, u'loc':loc, u'pos':pos, u'arguments':arguments, u'filename':filename}, var)
            var.registers([u'loc', u'pos', u'filename'])
            var.get(u'_classCallCheck$6')(var.get(u"this"), var.get(u'Node'))
            var.get(u"this").put(u'type', Js(u''))
            var.get(u"this").put(u'start', var.get(u'pos'))
            var.get(u"this").put(u'end', Js(0.0))
            var.get(u"this").put(u'loc', var.get(u'SourceLocation').create(var.get(u'loc')))
            if var.get(u'filename'):
                var.get(u"this").get(u'loc').put(u'filename', var.get(u'filename'))
        PyJsHoisted_Node_.func_name = u'Node'
        var.put(u'Node', PyJsHoisted_Node_)
        pass
        @Js
        def PyJs___clone_3074_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'__clone':PyJs___clone_3074_}, var)
            var.registers([u'node2', u'key'])
            var.put(u'node2', var.get(u'Node').create())
            for PyJsTemp in var.get(u"this"):
                var.put(u'key', PyJsTemp)
                if (var.get(u'commentKeys').callprop(u'indexOf', var.get(u'key'))<Js(0.0)):
                    var.get(u'node2').put(var.get(u'key'), var.get(u"this").get(var.get(u'key')))
            return var.get(u'node2')
        PyJs___clone_3074_._set_name(u'__clone')
        var.get(u'Node').get(u'prototype').put(u'__clone', PyJs___clone_3074_)
        return var.get(u'Node')
    PyJs_anonymous_3073_._set_name(u'anonymous')
    var.put(u'Node', PyJs_anonymous_3073_())
    @Js
    def PyJs_anonymous_3075_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u'Node').create(var.get(u"this").get(u'state').get(u'start'), var.get(u"this").get(u'state').get(u'startLoc'), var.get(u"this").get(u'filename'))
    PyJs_anonymous_3075_._set_name(u'anonymous')
    var.get(u'pp$4').put(u'startNode', PyJs_anonymous_3075_)
    @Js
    def PyJs_anonymous_3076_(pos, loc, this, arguments, var=var):
        var = Scope({u'this':this, u'loc':loc, u'pos':pos, u'arguments':arguments}, var)
        var.registers([u'loc', u'pos'])
        return var.get(u'Node').create(var.get(u'pos'), var.get(u'loc'), var.get(u"this").get(u'filename'))
    PyJs_anonymous_3076_._set_name(u'anonymous')
    var.get(u'pp$4').put(u'startNodeAt', PyJs_anonymous_3076_)
    pass
    @Js
    def PyJs_anonymous_3077_(node, type, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'type':type, u'arguments':arguments}, var)
        var.registers([u'node', u'type'])
        return var.get(u'finishNodeAt').callprop(u'call', var.get(u"this"), var.get(u'node'), var.get(u'type'), var.get(u"this").get(u'state').get(u'lastTokEnd'), var.get(u"this").get(u'state').get(u'lastTokEndLoc'))
    PyJs_anonymous_3077_._set_name(u'anonymous')
    var.get(u'pp$4').put(u'finishNode', PyJs_anonymous_3077_)
    @Js
    def PyJs_anonymous_3078_(node, type, pos, loc, this, arguments, var=var):
        var = Scope({u'node':node, u'loc':loc, u'arguments':arguments, u'this':this, u'type':type, u'pos':pos}, var)
        var.registers([u'node', u'loc', u'type', u'pos'])
        return var.get(u'finishNodeAt').callprop(u'call', var.get(u"this"), var.get(u'node'), var.get(u'type'), var.get(u'pos'), var.get(u'loc'))
    PyJs_anonymous_3078_._set_name(u'anonymous')
    var.get(u'pp$4').put(u'finishNodeAt', PyJs_anonymous_3078_)
    var.put(u'pp$5', var.get(u'Parser').get(u'prototype'))
    @Js
    def PyJs_anonymous_3079_(pos, message, this, arguments, var=var):
        var = Scope({u'this':this, u'message':message, u'pos':pos, u'arguments':arguments}, var)
        var.registers([u'loc', u'message', u'pos', u'err'])
        var.put(u'loc', var.get(u'getLineInfo')(var.get(u"this").get(u'input'), var.get(u'pos')))
        var.put(u'message', ((((Js(u' (')+var.get(u'loc').get(u'line'))+Js(u':'))+var.get(u'loc').get(u'column'))+Js(u')')), u'+')
        var.put(u'err', var.get(u'SyntaxError').create(var.get(u'message')))
        var.get(u'err').put(u'pos', var.get(u'pos'))
        var.get(u'err').put(u'loc', var.get(u'loc'))
        PyJsTempException = JsToPyException(var.get(u'err'))
        raise PyJsTempException
    PyJs_anonymous_3079_._set_name(u'anonymous')
    var.get(u'pp$5').put(u'raise', PyJs_anonymous_3079_)
    pass
    var.put(u'pp$6', var.get(u'Parser').get(u'prototype'))
    @Js
    def PyJs_anonymous_3080_(comment, this, arguments, var=var):
        var = Scope({u'comment':comment, u'this':this, u'arguments':arguments}, var)
        var.registers([u'comment'])
        if var.get(u"this").get(u'filename'):
            var.get(u'comment').get(u'loc').put(u'filename', var.get(u"this").get(u'filename'))
        var.get(u"this").get(u'state').get(u'trailingComments').callprop(u'push', var.get(u'comment'))
        var.get(u"this").get(u'state').get(u'leadingComments').callprop(u'push', var.get(u'comment'))
    PyJs_anonymous_3080_._set_name(u'anonymous')
    var.get(u'pp$6').put(u'addComment', PyJs_anonymous_3080_)
    @Js
    def PyJs_anonymous_3081_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'i', u'trailingComments', u'j', u'lastInStack', u'lastChild', u'stack'])
        if (PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'Program')) and (var.get(u'node').get(u'body').get(u'length')>Js(0.0))):
            return var.get('undefined')
        var.put(u'stack', var.get(u"this").get(u'state').get(u'commentStack'))
        var.put(u'lastChild', PyJsComma(Js(0.0), Js(None)))
        var.put(u'trailingComments', PyJsComma(Js(0.0), Js(None)))
        var.put(u'i', PyJsComma(Js(0.0), Js(None)))
        var.put(u'j', PyJsComma(Js(0.0), Js(None)))
        if (var.get(u"this").get(u'state').get(u'trailingComments').get(u'length')>Js(0.0)):
            if (var.get(u"this").get(u'state').get(u'trailingComments').get(u'0').get(u'start')>=var.get(u'node').get(u'end')):
                var.put(u'trailingComments', var.get(u"this").get(u'state').get(u'trailingComments'))
                var.get(u"this").get(u'state').put(u'trailingComments', Js([]))
            else:
                var.get(u"this").get(u'state').get(u'trailingComments').put(u'length', Js(0.0))
        else:
            var.put(u'lastInStack', var.get(u'last')(var.get(u'stack')))
            if (((var.get(u'stack').get(u'length')>Js(0.0)) and var.get(u'lastInStack').get(u'trailingComments')) and (var.get(u'lastInStack').get(u'trailingComments').get(u'0').get(u'start')>=var.get(u'node').get(u'end'))):
                var.put(u'trailingComments', var.get(u'lastInStack').get(u'trailingComments'))
                var.get(u'lastInStack').put(u'trailingComments', var.get(u"null"))
        while ((var.get(u'stack').get(u'length')>Js(0.0)) and (var.get(u'last')(var.get(u'stack')).get(u'start')>=var.get(u'node').get(u'start'))):
            var.put(u'lastChild', var.get(u'stack').callprop(u'pop'))
        if var.get(u'lastChild'):
            if var.get(u'lastChild').get(u'leadingComments'):
                if (PyJsStrictNeq(var.get(u'lastChild'),var.get(u'node')) and (var.get(u'last')(var.get(u'lastChild').get(u'leadingComments')).get(u'end')<=var.get(u'node').get(u'start'))):
                    var.get(u'node').put(u'leadingComments', var.get(u'lastChild').get(u'leadingComments'))
                    var.get(u'lastChild').put(u'leadingComments', var.get(u"null"))
                else:
                    #for JS loop
                    var.put(u'i', (var.get(u'lastChild').get(u'leadingComments').get(u'length')-Js(2.0)))
                    while (var.get(u'i')>=Js(0.0)):
                        try:
                            if (var.get(u'lastChild').get(u'leadingComments').get(var.get(u'i')).get(u'end')<=var.get(u'node').get(u'start')):
                                var.get(u'node').put(u'leadingComments', var.get(u'lastChild').get(u'leadingComments').callprop(u'splice', Js(0.0), (var.get(u'i')+Js(1.0))))
                                break
                        finally:
                                var.put(u'i',Js(var.get(u'i').to_number())-Js(1))
        else:
            if (var.get(u"this").get(u'state').get(u'leadingComments').get(u'length')>Js(0.0)):
                if (var.get(u'last')(var.get(u"this").get(u'state').get(u'leadingComments')).get(u'end')<=var.get(u'node').get(u'start')):
                    if var.get(u"this").get(u'state').get(u'commentPreviousNode'):
                        #for JS loop
                        var.put(u'j', Js(0.0))
                        while (var.get(u'j')<var.get(u"this").get(u'state').get(u'leadingComments').get(u'length')):
                            try:
                                if (var.get(u"this").get(u'state').get(u'leadingComments').get(var.get(u'j')).get(u'end')<var.get(u"this").get(u'state').get(u'commentPreviousNode').get(u'end')):
                                    var.get(u"this").get(u'state').get(u'leadingComments').callprop(u'splice', var.get(u'j'), Js(1.0))
                                    (var.put(u'j',Js(var.get(u'j').to_number())-Js(1))+Js(1))
                            finally:
                                    (var.put(u'j',Js(var.get(u'j').to_number())+Js(1))-Js(1))
                    if (var.get(u"this").get(u'state').get(u'leadingComments').get(u'length')>Js(0.0)):
                        var.get(u'node').put(u'leadingComments', var.get(u"this").get(u'state').get(u'leadingComments'))
                        var.get(u"this").get(u'state').put(u'leadingComments', Js([]))
                else:
                    #for JS loop
                    var.put(u'i', Js(0.0))
                    while (var.get(u'i')<var.get(u"this").get(u'state').get(u'leadingComments').get(u'length')):
                        try:
                            if (var.get(u"this").get(u'state').get(u'leadingComments').get(var.get(u'i')).get(u'end')>var.get(u'node').get(u'start')):
                                break
                        finally:
                                (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                    var.get(u'node').put(u'leadingComments', var.get(u"this").get(u'state').get(u'leadingComments').callprop(u'slice', Js(0.0), var.get(u'i')))
                    if PyJsStrictEq(var.get(u'node').get(u'leadingComments').get(u'length'),Js(0.0)):
                        var.get(u'node').put(u'leadingComments', var.get(u"null"))
                    var.put(u'trailingComments', var.get(u"this").get(u'state').get(u'leadingComments').callprop(u'slice', var.get(u'i')))
                    if PyJsStrictEq(var.get(u'trailingComments').get(u'length'),Js(0.0)):
                        var.put(u'trailingComments', var.get(u"null"))
        var.get(u"this").get(u'state').put(u'commentPreviousNode', var.get(u'node'))
        if var.get(u'trailingComments'):
            if ((var.get(u'trailingComments').get(u'length') and (var.get(u'trailingComments').get(u'0').get(u'start')>=var.get(u'node').get(u'start'))) and (var.get(u'last')(var.get(u'trailingComments')).get(u'end')<=var.get(u'node').get(u'end'))):
                var.get(u'node').put(u'innerComments', var.get(u'trailingComments'))
            else:
                var.get(u'node').put(u'trailingComments', var.get(u'trailingComments'))
        var.get(u'stack').callprop(u'push', var.get(u'node'))
    PyJs_anonymous_3081_._set_name(u'anonymous')
    var.get(u'pp$6').put(u'processComment', PyJs_anonymous_3081_)
    var.put(u'pp$7', var.get(u'Parser').get(u'prototype'))
    @Js
    def PyJs_anonymous_3082_(tok, allowLeadingPipeOrAnd, this, arguments, var=var):
        var = Scope({u'this':this, u'tok':tok, u'arguments':arguments, u'allowLeadingPipeOrAnd':allowLeadingPipeOrAnd}, var)
        var.registers([u'tok', u'oldInType', u'type', u'allowLeadingPipeOrAnd'])
        var.put(u'oldInType', var.get(u"this").get(u'state').get(u'inType'))
        var.get(u"this").get(u'state').put(u'inType', var.get(u'true'))
        var.get(u"this").callprop(u'expect', (var.get(u'tok') or var.get(u'types').get(u'colon')))
        if var.get(u'allowLeadingPipeOrAnd'):
            if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'bitwiseAND')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'bitwiseOR'))):
                var.get(u"this").callprop(u'next')
        var.put(u'type', var.get(u"this").callprop(u'flowParseType'))
        var.get(u"this").get(u'state').put(u'inType', var.get(u'oldInType'))
        return var.get(u'type')
    PyJs_anonymous_3082_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseTypeInitialiser', PyJs_anonymous_3082_)
    @Js
    def PyJs_anonymous_3083_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        var.get(u"this").callprop(u'flowParseInterfaceish', var.get(u'node'), var.get(u'true'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'DeclareClass'))
    PyJs_anonymous_3083_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseDeclareClass', PyJs_anonymous_3083_)
    @Js
    def PyJs_anonymous_3084_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'typeContainer', u'tmp', u'typeNode', u'id', u'node'])
        var.get(u"this").callprop(u'next')
        var.put(u'id', var.get(u'node').put(u'id', var.get(u"this").callprop(u'parseIdentifier')))
        var.put(u'typeNode', var.get(u"this").callprop(u'startNode'))
        var.put(u'typeContainer', var.get(u"this").callprop(u'startNode'))
        if var.get(u"this").callprop(u'isRelational', Js(u'<')):
            var.get(u'typeNode').put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterDeclaration'))
        else:
            var.get(u'typeNode').put(u'typeParameters', var.get(u"null"))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenL'))
        var.put(u'tmp', var.get(u"this").callprop(u'flowParseFunctionTypeParams'))
        var.get(u'typeNode').put(u'params', var.get(u'tmp').get(u'params'))
        var.get(u'typeNode').put(u'rest', var.get(u'tmp').get(u'rest'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenR'))
        var.get(u'typeNode').put(u'returnType', var.get(u"this").callprop(u'flowParseTypeInitialiser'))
        var.get(u'typeContainer').put(u'typeAnnotation', var.get(u"this").callprop(u'finishNode', var.get(u'typeNode'), Js(u'FunctionTypeAnnotation')))
        var.get(u'id').put(u'typeAnnotation', var.get(u"this").callprop(u'finishNode', var.get(u'typeContainer'), Js(u'TypeAnnotation')))
        var.get(u"this").callprop(u'finishNode', var.get(u'id'), var.get(u'id').get(u'type'))
        var.get(u"this").callprop(u'semicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'DeclareFunction'))
    PyJs_anonymous_3084_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseDeclareFunction', PyJs_anonymous_3084_)
    @Js
    def PyJs_anonymous_3085_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'_class')):
            return var.get(u"this").callprop(u'flowParseDeclareClass', var.get(u'node'))
        else:
            if var.get(u"this").callprop(u'match', var.get(u'types').get(u'_function')):
                return var.get(u"this").callprop(u'flowParseDeclareFunction', var.get(u'node'))
            else:
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'_var')):
                    return var.get(u"this").callprop(u'flowParseDeclareVariable', var.get(u'node'))
                else:
                    if var.get(u"this").callprop(u'isContextual', Js(u'module')):
                        if PyJsStrictEq(var.get(u"this").callprop(u'lookahead').get(u'type'),var.get(u'types').get(u'dot')):
                            return var.get(u"this").callprop(u'flowParseDeclareModuleExports', var.get(u'node'))
                        else:
                            return var.get(u"this").callprop(u'flowParseDeclareModule', var.get(u'node'))
                    else:
                        if var.get(u"this").callprop(u'isContextual', Js(u'type')):
                            return var.get(u"this").callprop(u'flowParseDeclareTypeAlias', var.get(u'node'))
                        else:
                            if var.get(u"this").callprop(u'isContextual', Js(u'interface')):
                                return var.get(u"this").callprop(u'flowParseDeclareInterface', var.get(u'node'))
                            else:
                                var.get(u"this").callprop(u'unexpected')
    PyJs_anonymous_3085_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseDeclare', PyJs_anonymous_3085_)
    @Js
    def PyJs_anonymous_3086_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        var.get(u'node').put(u'id', var.get(u"this").callprop(u'flowParseTypeAnnotatableIdentifier'))
        var.get(u"this").callprop(u'semicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'DeclareVariable'))
    PyJs_anonymous_3086_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseDeclareVariable', PyJs_anonymous_3086_)
    @Js
    def PyJs_anonymous_3087_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'bodyNode', u'body', u'node2', u'node'])
        var.get(u"this").callprop(u'next')
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'string')):
            var.get(u'node').put(u'id', var.get(u"this").callprop(u'parseExprAtom'))
        else:
            var.get(u'node').put(u'id', var.get(u"this").callprop(u'parseIdentifier'))
        var.put(u'bodyNode', var.get(u'node').put(u'body', var.get(u"this").callprop(u'startNode')))
        var.put(u'body', var.get(u'bodyNode').put(u'body', Js([])))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceL'))
        while var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceR')).neg():
            var.put(u'node2', var.get(u"this").callprop(u'startNode'))
            var.get(u"this").callprop(u'expectContextual', Js(u'declare'), Js(u'Unexpected token. Only declares are allowed inside declare module'))
            var.get(u'body').callprop(u'push', var.get(u"this").callprop(u'flowParseDeclare', var.get(u'node2')))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceR'))
        var.get(u"this").callprop(u'finishNode', var.get(u'bodyNode'), Js(u'BlockStatement'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'DeclareModule'))
    PyJs_anonymous_3087_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseDeclareModule', PyJs_anonymous_3087_)
    @Js
    def PyJs_anonymous_3088_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'expectContextual', Js(u'module'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'dot'))
        var.get(u"this").callprop(u'expectContextual', Js(u'exports'))
        var.get(u'node').put(u'typeAnnotation', var.get(u"this").callprop(u'flowParseTypeAnnotation'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'DeclareModuleExports'))
    PyJs_anonymous_3088_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseDeclareModuleExports', PyJs_anonymous_3088_)
    @Js
    def PyJs_anonymous_3089_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        var.get(u"this").callprop(u'flowParseTypeAlias', var.get(u'node'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'DeclareTypeAlias'))
    PyJs_anonymous_3089_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseDeclareTypeAlias', PyJs_anonymous_3089_)
    @Js
    def PyJs_anonymous_3090_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'next')
        var.get(u"this").callprop(u'flowParseInterfaceish', var.get(u'node'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'DeclareInterface'))
    PyJs_anonymous_3090_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseDeclareInterface', PyJs_anonymous_3090_)
    @Js
    def PyJs_anonymous_3091_(node, allowStatic, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments, u'allowStatic':allowStatic}, var)
        var.registers([u'node', u'allowStatic'])
        var.get(u'node').put(u'id', var.get(u"this").callprop(u'parseIdentifier'))
        if var.get(u"this").callprop(u'isRelational', Js(u'<')):
            var.get(u'node').put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterDeclaration'))
        else:
            var.get(u'node').put(u'typeParameters', var.get(u"null"))
        var.get(u'node').put(u'extends', Js([]))
        var.get(u'node').put(u'mixins', Js([]))
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'_extends')):
            while 1:
                var.get(u'node').get(u'extends').callprop(u'push', var.get(u"this").callprop(u'flowParseInterfaceExtends'))
                if not var.get(u"this").callprop(u'eat', var.get(u'types').get(u'comma')):
                    break
        if var.get(u"this").callprop(u'isContextual', Js(u'mixins')):
            var.get(u"this").callprop(u'next')
            while 1:
                var.get(u'node').get(u'mixins').callprop(u'push', var.get(u"this").callprop(u'flowParseInterfaceExtends'))
                if not var.get(u"this").callprop(u'eat', var.get(u'types').get(u'comma')):
                    break
        var.get(u'node').put(u'body', var.get(u"this").callprop(u'flowParseObjectType', var.get(u'allowStatic')))
    PyJs_anonymous_3091_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseInterfaceish', PyJs_anonymous_3091_)
    @Js
    def PyJs_anonymous_3092_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u'node').put(u'id', var.get(u"this").callprop(u'flowParseQualifiedTypeIdentifier'))
        if var.get(u"this").callprop(u'isRelational', Js(u'<')):
            var.get(u'node').put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterInstantiation'))
        else:
            var.get(u'node').put(u'typeParameters', var.get(u"null"))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'InterfaceExtends'))
    PyJs_anonymous_3092_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseInterfaceExtends', PyJs_anonymous_3092_)
    @Js
    def PyJs_anonymous_3093_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u"this").callprop(u'flowParseInterfaceish', var.get(u'node'), Js(False))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'InterfaceDeclaration'))
    PyJs_anonymous_3093_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseInterface', PyJs_anonymous_3093_)
    @Js
    def PyJs_anonymous_3094_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u'node').put(u'id', var.get(u"this").callprop(u'parseIdentifier'))
        if var.get(u"this").callprop(u'isRelational', Js(u'<')):
            var.get(u'node').put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterDeclaration'))
        else:
            var.get(u'node').put(u'typeParameters', var.get(u"null"))
        var.get(u'node').put(u'right', var.get(u"this").callprop(u'flowParseTypeInitialiser', var.get(u'types').get(u'eq'), var.get(u'true')))
        var.get(u"this").callprop(u'semicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'TypeAlias'))
    PyJs_anonymous_3094_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseTypeAlias', PyJs_anonymous_3094_)
    @Js
    def PyJs_anonymous_3095_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'variance', u'ident'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.put(u'variance', var.get(u"this").callprop(u'flowParseVariance'))
        var.put(u'ident', var.get(u"this").callprop(u'flowParseTypeAnnotatableIdentifier'))
        var.get(u'node').put(u'name', var.get(u'ident').get(u'name'))
        var.get(u'node').put(u'variance', var.get(u'variance'))
        var.get(u'node').put(u'bound', var.get(u'ident').get(u'typeAnnotation'))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'eq')):
            var.get(u"this").callprop(u'eat', var.get(u'types').get(u'eq'))
            var.get(u'node').put(u'default', var.get(u"this").callprop(u'flowParseType'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'TypeParameter'))
    PyJs_anonymous_3095_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseTypeParameter', PyJs_anonymous_3095_)
    @Js
    def PyJs_anonymous_3096_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'oldInType'])
        var.put(u'oldInType', var.get(u"this").get(u'state').get(u'inType'))
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u'node').put(u'params', Js([]))
        var.get(u"this").get(u'state').put(u'inType', var.get(u'true'))
        if (var.get(u"this").callprop(u'isRelational', Js(u'<')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'jsxTagStart'))):
            var.get(u"this").callprop(u'next')
        else:
            var.get(u"this").callprop(u'unexpected')
        while 1:
            var.get(u'node').get(u'params').callprop(u'push', var.get(u"this").callprop(u'flowParseTypeParameter'))
            if var.get(u"this").callprop(u'isRelational', Js(u'>')).neg():
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
            if not var.get(u"this").callprop(u'isRelational', Js(u'>')).neg():
                break
        var.get(u"this").callprop(u'expectRelational', Js(u'>'))
        var.get(u"this").get(u'state').put(u'inType', var.get(u'oldInType'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'TypeParameterDeclaration'))
    PyJs_anonymous_3096_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseTypeParameterDeclaration', PyJs_anonymous_3096_)
    @Js
    def PyJs_anonymous_3097_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'oldInType'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.put(u'oldInType', var.get(u"this").get(u'state').get(u'inType'))
        var.get(u'node').put(u'params', Js([]))
        var.get(u"this").get(u'state').put(u'inType', var.get(u'true'))
        var.get(u"this").callprop(u'expectRelational', Js(u'<'))
        while var.get(u"this").callprop(u'isRelational', Js(u'>')).neg():
            var.get(u'node').get(u'params').callprop(u'push', var.get(u"this").callprop(u'flowParseType'))
            if var.get(u"this").callprop(u'isRelational', Js(u'>')).neg():
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
        var.get(u"this").callprop(u'expectRelational', Js(u'>'))
        var.get(u"this").get(u'state').put(u'inType', var.get(u'oldInType'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'TypeParameterInstantiation'))
    PyJs_anonymous_3097_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseTypeParameterInstantiation', PyJs_anonymous_3097_)
    @Js
    def PyJs_anonymous_3098_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return (var.get(u"this").callprop(u'parseExprAtom') if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'num')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'string'))) else var.get(u"this").callprop(u'parseIdentifier', var.get(u'true')))
    PyJs_anonymous_3098_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseObjectPropertyKey', PyJs_anonymous_3098_)
    @Js
    def PyJs_anonymous_3099_(node, isStatic, variance, this, arguments, var=var):
        var = Scope({u'node':node, u'variance':variance, u'isStatic':isStatic, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'variance', u'isStatic'])
        var.get(u'node').put(u'static', var.get(u'isStatic'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'bracketL'))
        var.get(u'node').put(u'id', var.get(u"this").callprop(u'flowParseObjectPropertyKey'))
        var.get(u'node').put(u'key', var.get(u"this").callprop(u'flowParseTypeInitialiser'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'bracketR'))
        var.get(u'node').put(u'value', var.get(u"this").callprop(u'flowParseTypeInitialiser'))
        var.get(u'node').put(u'variance', var.get(u'variance'))
        var.get(u"this").callprop(u'flowObjectTypeSemicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ObjectTypeIndexer'))
    PyJs_anonymous_3099_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseObjectTypeIndexer', PyJs_anonymous_3099_)
    @Js
    def PyJs_anonymous_3100_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u'node').put(u'params', Js([]))
        var.get(u'node').put(u'rest', var.get(u"null"))
        var.get(u'node').put(u'typeParameters', var.get(u"null"))
        if var.get(u"this").callprop(u'isRelational', Js(u'<')):
            var.get(u'node').put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterDeclaration'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenL'))
        while var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')):
            var.get(u'node').get(u'params').callprop(u'push', var.get(u"this").callprop(u'flowParseFunctionTypeParam'))
            if var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenR')).neg():
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'ellipsis')):
            var.get(u'node').put(u'rest', var.get(u"this").callprop(u'flowParseFunctionTypeParam'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenR'))
        var.get(u'node').put(u'returnType', var.get(u"this").callprop(u'flowParseTypeInitialiser'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'FunctionTypeAnnotation'))
    PyJs_anonymous_3100_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseObjectTypeMethodish', PyJs_anonymous_3100_)
    @Js
    def PyJs_anonymous_3101_(startPos, startLoc, isStatic, key, this, arguments, var=var):
        var = Scope({u'isStatic':isStatic, u'startLoc':startLoc, u'key':key, u'this':this, u'startPos':startPos, u'arguments':arguments}, var)
        var.registers([u'node', u'key', u'startPos', u'isStatic', u'startLoc'])
        var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
        var.get(u'node').put(u'value', var.get(u"this").callprop(u'flowParseObjectTypeMethodish', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc'))))
        var.get(u'node').put(u'static', var.get(u'isStatic'))
        var.get(u'node').put(u'key', var.get(u'key'))
        var.get(u'node').put(u'optional', Js(False))
        var.get(u"this").callprop(u'flowObjectTypeSemicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ObjectTypeProperty'))
    PyJs_anonymous_3101_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseObjectTypeMethod', PyJs_anonymous_3101_)
    @Js
    def PyJs_anonymous_3102_(node, isStatic, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'isStatic':isStatic, u'arguments':arguments}, var)
        var.registers([u'node', u'valueNode', u'isStatic'])
        var.put(u'valueNode', var.get(u"this").callprop(u'startNode'))
        var.get(u'node').put(u'static', var.get(u'isStatic'))
        var.get(u'node').put(u'value', var.get(u"this").callprop(u'flowParseObjectTypeMethodish', var.get(u'valueNode')))
        var.get(u"this").callprop(u'flowObjectTypeSemicolon')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ObjectTypeCallProperty'))
    PyJs_anonymous_3102_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseObjectTypeCallProperty', PyJs_anonymous_3102_)
    @Js
    def PyJs_anonymous_3103_(allowStatic, allowExact, this, arguments, var=var):
        var = Scope({u'this':this, u'allowExact':allowExact, u'arguments':arguments, u'allowStatic':allowStatic}, var)
        var.registers([u'node', u'isStatic', u'nodeStart', u'variancePos', u'propertyKey', u'endDelim', u'oldInType', u'optional', u'startLoc', u'variance', u'startPos', u'exact', u'allowExact', u'allowStatic', u'out'])
        var.put(u'oldInType', var.get(u"this").get(u'state').get(u'inType'))
        var.get(u"this").get(u'state').put(u'inType', var.get(u'true'))
        var.put(u'nodeStart', var.get(u"this").callprop(u'startNode'))
        var.put(u'node', PyJsComma(Js(0.0), Js(None)))
        var.put(u'propertyKey', PyJsComma(Js(0.0), Js(None)))
        var.put(u'isStatic', Js(False))
        var.get(u'nodeStart').put(u'callProperties', Js([]))
        var.get(u'nodeStart').put(u'properties', Js([]))
        var.get(u'nodeStart').put(u'indexers', Js([]))
        var.put(u'endDelim', PyJsComma(Js(0.0), Js(None)))
        var.put(u'exact', PyJsComma(Js(0.0), Js(None)))
        if (var.get(u'allowExact') and var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceBarL'))):
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceBarL'))
            var.put(u'endDelim', var.get(u'types').get(u'braceBarR'))
            var.put(u'exact', var.get(u'true'))
        else:
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceL'))
            var.put(u'endDelim', var.get(u'types').get(u'braceR'))
            var.put(u'exact', Js(False))
        var.get(u'nodeStart').put(u'exact', var.get(u'exact'))
        while var.get(u"this").callprop(u'match', var.get(u'endDelim')).neg():
            var.put(u'optional', Js(False))
            var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
            var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
            var.put(u'node', var.get(u"this").callprop(u'startNode'))
            if ((var.get(u'allowStatic') and var.get(u"this").callprop(u'isContextual', Js(u'static'))) and PyJsStrictNeq(var.get(u"this").callprop(u'lookahead').get(u'type'),var.get(u'types').get(u'colon'))):
                var.get(u"this").callprop(u'next')
                var.put(u'isStatic', var.get(u'true'))
            var.put(u'variancePos', var.get(u"this").get(u'state').get(u'start'))
            var.put(u'variance', var.get(u"this").callprop(u'flowParseVariance'))
            if var.get(u"this").callprop(u'match', var.get(u'types').get(u'bracketL')):
                var.get(u'nodeStart').get(u'indexers').callprop(u'push', var.get(u"this").callprop(u'flowParseObjectTypeIndexer', var.get(u'node'), var.get(u'isStatic'), var.get(u'variance')))
            else:
                if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL')) or var.get(u"this").callprop(u'isRelational', Js(u'<'))):
                    if var.get(u'variance'):
                        var.get(u"this").callprop(u'unexpected', var.get(u'variancePos'))
                    var.get(u'nodeStart').get(u'callProperties').callprop(u'push', var.get(u"this").callprop(u'flowParseObjectTypeCallProperty', var.get(u'node'), var.get(u'allowStatic')))
                else:
                    var.put(u'propertyKey', var.get(u"this").callprop(u'flowParseObjectPropertyKey'))
                    if (var.get(u"this").callprop(u'isRelational', Js(u'<')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL'))):
                        if var.get(u'variance'):
                            var.get(u"this").callprop(u'unexpected', var.get(u'variancePos'))
                        var.get(u'nodeStart').get(u'properties').callprop(u'push', var.get(u"this").callprop(u'flowParseObjectTypeMethod', var.get(u'startPos'), var.get(u'startLoc'), var.get(u'isStatic'), var.get(u'propertyKey')))
                    else:
                        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'question')):
                            var.put(u'optional', var.get(u'true'))
                        var.get(u'node').put(u'key', var.get(u'propertyKey'))
                        var.get(u'node').put(u'value', var.get(u"this").callprop(u'flowParseTypeInitialiser'))
                        var.get(u'node').put(u'optional', var.get(u'optional'))
                        var.get(u'node').put(u'static', var.get(u'isStatic'))
                        var.get(u'node').put(u'variance', var.get(u'variance'))
                        var.get(u"this").callprop(u'flowObjectTypeSemicolon')
                        var.get(u'nodeStart').get(u'properties').callprop(u'push', var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ObjectTypeProperty')))
            var.put(u'isStatic', Js(False))
        var.get(u"this").callprop(u'expect', var.get(u'endDelim'))
        var.put(u'out', var.get(u"this").callprop(u'finishNode', var.get(u'nodeStart'), Js(u'ObjectTypeAnnotation')))
        var.get(u"this").get(u'state').put(u'inType', var.get(u'oldInType'))
        return var.get(u'out')
    PyJs_anonymous_3103_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseObjectType', PyJs_anonymous_3103_)
    @Js
    def PyJs_anonymous_3104_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if (((var.get(u"this").callprop(u'eat', var.get(u'types').get(u'semi')).neg() and var.get(u"this").callprop(u'eat', var.get(u'types').get(u'comma')).neg()) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceR')).neg()) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceBarR')).neg()):
            var.get(u"this").callprop(u'unexpected')
    PyJs_anonymous_3104_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowObjectTypeSemicolon', PyJs_anonymous_3104_)
    @Js
    def PyJs_anonymous_3105_(startPos, startLoc, id, this, arguments, var=var):
        var = Scope({u'this':this, u'startPos':startPos, u'id':id, u'startLoc':startLoc, u'arguments':arguments}, var)
        var.registers([u'node', u'startPos', u'node2', u'id', u'startLoc'])
        var.put(u'startPos', (var.get(u'startPos') or var.get(u"this").get(u'state').get(u'start')))
        var.put(u'startLoc', (var.get(u'startLoc') or var.get(u"this").get(u'state').get(u'startLoc')))
        var.put(u'node', (var.get(u'id') or var.get(u"this").callprop(u'parseIdentifier')))
        while var.get(u"this").callprop(u'eat', var.get(u'types').get(u'dot')):
            var.put(u'node2', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
            var.get(u'node2').put(u'qualification', var.get(u'node'))
            var.get(u'node2').put(u'id', var.get(u"this").callprop(u'parseIdentifier'))
            var.put(u'node', var.get(u"this").callprop(u'finishNode', var.get(u'node2'), Js(u'QualifiedTypeIdentifier')))
        return var.get(u'node')
    PyJs_anonymous_3105_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseQualifiedTypeIdentifier', PyJs_anonymous_3105_)
    @Js
    def PyJs_anonymous_3106_(startPos, startLoc, id, this, arguments, var=var):
        var = Scope({u'this':this, u'startPos':startPos, u'id':id, u'startLoc':startLoc, u'arguments':arguments}, var)
        var.registers([u'node', u'startPos', u'id', u'startLoc'])
        var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
        var.get(u'node').put(u'typeParameters', var.get(u"null"))
        var.get(u'node').put(u'id', var.get(u"this").callprop(u'flowParseQualifiedTypeIdentifier', var.get(u'startPos'), var.get(u'startLoc'), var.get(u'id')))
        if var.get(u"this").callprop(u'isRelational', Js(u'<')):
            var.get(u'node').put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterInstantiation'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'GenericTypeAnnotation'))
    PyJs_anonymous_3106_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseGenericType', PyJs_anonymous_3106_)
    @Js
    def PyJs_anonymous_3107_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'_typeof'))
        var.get(u'node').put(u'argument', var.get(u"this").callprop(u'flowParsePrimaryType'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'TypeofTypeAnnotation'))
    PyJs_anonymous_3107_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseTypeofType', PyJs_anonymous_3107_)
    @Js
    def PyJs_anonymous_3108_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u'node').put(u'types', Js([]))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'bracketL'))
        while ((var.get(u"this").get(u'state').get(u'pos')<var.get(u"this").get(u'input').get(u'length')) and var.get(u"this").callprop(u'match', var.get(u'types').get(u'bracketR')).neg()):
            var.get(u'node').get(u'types').callprop(u'push', var.get(u"this").callprop(u'flowParseType'))
            if var.get(u"this").callprop(u'match', var.get(u'types').get(u'bracketR')):
                break
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'bracketR'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'TupleTypeAnnotation'))
    PyJs_anonymous_3108_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseTupleType', PyJs_anonymous_3108_)
    @Js
    def PyJs_anonymous_3109_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'optional'])
        var.put(u'optional', Js(False))
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u'node').put(u'name', var.get(u"this").callprop(u'parseIdentifier'))
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'question')):
            var.put(u'optional', var.get(u'true'))
        var.get(u'node').put(u'optional', var.get(u'optional'))
        var.get(u'node').put(u'typeAnnotation', var.get(u"this").callprop(u'flowParseTypeInitialiser'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'FunctionTypeParam'))
    PyJs_anonymous_3109_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseFunctionTypeParam', PyJs_anonymous_3109_)
    @Js
    def PyJs_anonymous_3110_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'ret'])
        PyJs_Object_3111_ = Js({u'params':Js([]),u'rest':var.get(u"null")})
        var.put(u'ret', PyJs_Object_3111_)
        while var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')):
            var.get(u'ret').get(u'params').callprop(u'push', var.get(u"this").callprop(u'flowParseFunctionTypeParam'))
            if var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenR')).neg():
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'comma'))
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'ellipsis')):
            var.get(u'ret').put(u'rest', var.get(u"this").callprop(u'flowParseFunctionTypeParam'))
        return var.get(u'ret')
    PyJs_anonymous_3110_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseFunctionTypeParams', PyJs_anonymous_3110_)
    @Js
    def PyJs_anonymous_3112_(startPos, startLoc, node, id, this, arguments, var=var):
        var = Scope({u'node':node, u'arguments':arguments, u'startLoc':startLoc, u'this':this, u'startPos':startPos, u'id':id}, var)
        var.registers([u'node', u'startPos', u'id', u'startLoc'])
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'id').get(u'name'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'any')):
                SWITCHED = True
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'AnyTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'void')):
                SWITCHED = True
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'VoidTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'bool')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'boolean')):
                SWITCHED = True
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'BooleanTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'mixed')):
                SWITCHED = True
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'MixedTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'empty')):
                SWITCHED = True
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'EmptyTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'number')):
                SWITCHED = True
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'NumberTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'string')):
                SWITCHED = True
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'StringTypeAnnotation'))
            if True:
                SWITCHED = True
                return var.get(u"this").callprop(u'flowParseGenericType', var.get(u'startPos'), var.get(u'startLoc'), var.get(u'id'))
            SWITCHED = True
            break
    PyJs_anonymous_3112_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowIdentToTypeAnnotation', PyJs_anonymous_3112_)
    @Js
    def PyJs_anonymous_3113_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'tmp', u'token', u'isGroupedType', u'startLoc', u'startPos', u'type'])
        var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.put(u'tmp', PyJsComma(Js(0.0), Js(None)))
        var.put(u'type', PyJsComma(Js(0.0), Js(None)))
        var.put(u'isGroupedType', Js(False))
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u"this").get(u'state').get(u'type'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'name')):
                SWITCHED = True
                return var.get(u"this").callprop(u'flowIdentToTypeAnnotation', var.get(u'startPos'), var.get(u'startLoc'), var.get(u'node'), var.get(u"this").callprop(u'parseIdentifier'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'braceL')):
                SWITCHED = True
                return var.get(u"this").callprop(u'flowParseObjectType', Js(False), Js(False))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'braceBarL')):
                SWITCHED = True
                return var.get(u"this").callprop(u'flowParseObjectType', Js(False), var.get(u'true'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'bracketL')):
                SWITCHED = True
                return var.get(u"this").callprop(u'flowParseTupleType')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'relational')):
                SWITCHED = True
                if PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),Js(u'<')):
                    var.get(u'node').put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterDeclaration'))
                    var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenL'))
                    var.put(u'tmp', var.get(u"this").callprop(u'flowParseFunctionTypeParams'))
                    var.get(u'node').put(u'params', var.get(u'tmp').get(u'params'))
                    var.get(u'node').put(u'rest', var.get(u'tmp').get(u'rest'))
                    var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenR'))
                    var.get(u"this").callprop(u'expect', var.get(u'types').get(u'arrow'))
                    var.get(u'node').put(u'returnType', var.get(u"this").callprop(u'flowParseType'))
                    return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'FunctionTypeAnnotation'))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'parenL')):
                SWITCHED = True
                var.get(u"this").callprop(u'next')
                if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenR')).neg() and var.get(u"this").callprop(u'match', var.get(u'types').get(u'ellipsis')).neg()):
                    if var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')):
                        var.put(u'token', var.get(u"this").callprop(u'lookahead').get(u'type'))
                        var.put(u'isGroupedType', (PyJsStrictNeq(var.get(u'token'),var.get(u'types').get(u'question')) and PyJsStrictNeq(var.get(u'token'),var.get(u'types').get(u'colon'))))
                    else:
                        var.put(u'isGroupedType', var.get(u'true'))
                if var.get(u'isGroupedType'):
                    var.put(u'type', var.get(u"this").callprop(u'flowParseType'))
                    var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenR'))
                    return var.get(u'type')
                var.put(u'tmp', var.get(u"this").callprop(u'flowParseFunctionTypeParams'))
                var.get(u'node').put(u'params', var.get(u'tmp').get(u'params'))
                var.get(u'node').put(u'rest', var.get(u'tmp').get(u'rest'))
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'parenR'))
                var.get(u"this").callprop(u'expect', var.get(u'types').get(u'arrow'))
                var.get(u'node').put(u'returnType', var.get(u"this").callprop(u'flowParseType'))
                var.get(u'node').put(u'typeParameters', var.get(u"null"))
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'FunctionTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'string')):
                SWITCHED = True
                var.get(u'node').put(u'value', var.get(u"this").get(u'state').get(u'value'))
                var.get(u"this").callprop(u'addExtra', var.get(u'node'), Js(u'rawValue'), var.get(u'node').get(u'value'))
                var.get(u"this").callprop(u'addExtra', var.get(u'node'), Js(u'raw'), var.get(u"this").get(u'input').callprop(u'slice', var.get(u"this").get(u'state').get(u'start'), var.get(u"this").get(u'state').get(u'end')))
                var.get(u"this").callprop(u'next')
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'StringLiteralTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_true')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_false')):
                SWITCHED = True
                var.get(u'node').put(u'value', var.get(u"this").callprop(u'match', var.get(u'types').get(u'_true')))
                var.get(u"this").callprop(u'next')
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'BooleanLiteralTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'plusMin')):
                SWITCHED = True
                if PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),Js(u'-')):
                    var.get(u"this").callprop(u'next')
                    if var.get(u"this").callprop(u'match', var.get(u'types').get(u'num')).neg():
                        var.get(u"this").callprop(u'unexpected')
                    var.get(u'node').put(u'value', (-var.get(u"this").get(u'state').get(u'value')))
                    var.get(u"this").callprop(u'addExtra', var.get(u'node'), Js(u'rawValue'), var.get(u'node').get(u'value'))
                    var.get(u"this").callprop(u'addExtra', var.get(u'node'), Js(u'raw'), var.get(u"this").get(u'input').callprop(u'slice', var.get(u"this").get(u'state').get(u'start'), var.get(u"this").get(u'state').get(u'end')))
                    var.get(u"this").callprop(u'next')
                    return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'NumericLiteralTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'num')):
                SWITCHED = True
                var.get(u'node').put(u'value', var.get(u"this").get(u'state').get(u'value'))
                var.get(u"this").callprop(u'addExtra', var.get(u'node'), Js(u'rawValue'), var.get(u'node').get(u'value'))
                var.get(u"this").callprop(u'addExtra', var.get(u'node'), Js(u'raw'), var.get(u"this").get(u'input').callprop(u'slice', var.get(u"this").get(u'state').get(u'start'), var.get(u"this").get(u'state').get(u'end')))
                var.get(u"this").callprop(u'next')
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'NumericLiteralTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_null')):
                SWITCHED = True
                var.get(u'node').put(u'value', var.get(u"this").callprop(u'match', var.get(u'types').get(u'_null')))
                var.get(u"this").callprop(u'next')
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'NullLiteralTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'_this')):
                SWITCHED = True
                var.get(u'node').put(u'value', var.get(u"this").callprop(u'match', var.get(u'types').get(u'_this')))
                var.get(u"this").callprop(u'next')
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ThisTypeAnnotation'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'star')):
                SWITCHED = True
                var.get(u"this").callprop(u'next')
                return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ExistentialTypeParam'))
            if True:
                SWITCHED = True
                if PyJsStrictEq(var.get(u"this").get(u'state').get(u'type').get(u'keyword'),Js(u'typeof')):
                    return var.get(u"this").callprop(u'flowParseTypeofType')
            SWITCHED = True
            break
        var.get(u"this").callprop(u'unexpected')
    PyJs_anonymous_3113_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParsePrimaryType', PyJs_anonymous_3113_)
    @Js
    def PyJs_anonymous_3114_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'type'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.put(u'type', var.get(u'node').put(u'elementType', var.get(u"this").callprop(u'flowParsePrimaryType')))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'bracketL')):
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'bracketL'))
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'bracketR'))
            return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'ArrayTypeAnnotation'))
        else:
            return var.get(u'type')
    PyJs_anonymous_3114_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParsePostfixType', PyJs_anonymous_3114_)
    @Js
    def PyJs_anonymous_3115_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'question')):
            var.get(u'node').put(u'typeAnnotation', var.get(u"this").callprop(u'flowParsePrefixType'))
            return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'NullableTypeAnnotation'))
        else:
            return var.get(u"this").callprop(u'flowParsePostfixType')
    PyJs_anonymous_3115_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParsePrefixType', PyJs_anonymous_3115_)
    @Js
    def PyJs_anonymous_3116_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'type'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.put(u'type', var.get(u"this").callprop(u'flowParsePrefixType'))
        var.get(u'node').put(u'types', Js([var.get(u'type')]))
        while var.get(u"this").callprop(u'eat', var.get(u'types').get(u'bitwiseAND')):
            var.get(u'node').get(u'types').callprop(u'push', var.get(u"this").callprop(u'flowParsePrefixType'))
        return (var.get(u'type') if PyJsStrictEq(var.get(u'node').get(u'types').get(u'length'),Js(1.0)) else var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'IntersectionTypeAnnotation')))
    PyJs_anonymous_3116_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseIntersectionType', PyJs_anonymous_3116_)
    @Js
    def PyJs_anonymous_3117_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'type'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.put(u'type', var.get(u"this").callprop(u'flowParseIntersectionType'))
        var.get(u'node').put(u'types', Js([var.get(u'type')]))
        while var.get(u"this").callprop(u'eat', var.get(u'types').get(u'bitwiseOR')):
            var.get(u'node').get(u'types').callprop(u'push', var.get(u"this").callprop(u'flowParseIntersectionType'))
        return (var.get(u'type') if PyJsStrictEq(var.get(u'node').get(u'types').get(u'length'),Js(1.0)) else var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'UnionTypeAnnotation')))
    PyJs_anonymous_3117_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseUnionType', PyJs_anonymous_3117_)
    @Js
    def PyJs_anonymous_3118_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'oldInType', u'type'])
        var.put(u'oldInType', var.get(u"this").get(u'state').get(u'inType'))
        var.get(u"this").get(u'state').put(u'inType', var.get(u'true'))
        var.put(u'type', var.get(u"this").callprop(u'flowParseUnionType'))
        var.get(u"this").get(u'state').put(u'inType', var.get(u'oldInType'))
        return var.get(u'type')
    PyJs_anonymous_3118_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseType', PyJs_anonymous_3118_)
    @Js
    def PyJs_anonymous_3119_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u'node').put(u'typeAnnotation', var.get(u"this").callprop(u'flowParseTypeInitialiser'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'TypeAnnotation'))
    PyJs_anonymous_3119_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseTypeAnnotation', PyJs_anonymous_3119_)
    @Js
    def PyJs_anonymous_3120_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'ident'])
        var.put(u'ident', var.get(u"this").callprop(u'parseIdentifier'))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')):
            var.get(u'ident').put(u'typeAnnotation', var.get(u"this").callprop(u'flowParseTypeAnnotation'))
            var.get(u"this").callprop(u'finishNode', var.get(u'ident'), var.get(u'ident').get(u'type'))
        return var.get(u'ident')
    PyJs_anonymous_3120_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseTypeAnnotatableIdentifier', PyJs_anonymous_3120_)
    @Js
    def PyJs_anonymous_3121_(node, this, arguments, var=var):
        var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.get(u'node').get(u'expression').put(u'typeAnnotation', var.get(u'node').get(u'typeAnnotation'))
        return var.get(u"this").callprop(u'finishNodeAt', var.get(u'node').get(u'expression'), var.get(u'node').get(u'expression').get(u'type'), var.get(u'node').get(u'typeAnnotation').get(u'end'), var.get(u'node').get(u'typeAnnotation').get(u'loc').get(u'end'))
    PyJs_anonymous_3121_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'typeCastToParameter', PyJs_anonymous_3121_)
    @Js
    def PyJs_anonymous_3122_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'variance'])
        var.put(u'variance', var.get(u"null"))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'plusMin')):
            if PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),Js(u'+')):
                var.put(u'variance', Js(u'plus'))
            else:
                if PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),Js(u'-')):
                    var.put(u'variance', Js(u'minus'))
            var.get(u"this").callprop(u'next')
        return var.get(u'variance')
    PyJs_anonymous_3122_._set_name(u'anonymous')
    var.get(u'pp$7').put(u'flowParseVariance', PyJs_anonymous_3122_)
    @Js
    def PyJs_anonymous_3123_(instance, this, arguments, var=var):
        var = Scope({u'this':this, u'instance':instance, u'arguments':arguments}, var)
        var.registers([u'instance'])
        @Js
        def PyJs_anonymous_3124_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3125_(node, allowExpression, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'allowExpression':allowExpression, u'arguments':arguments}, var)
                var.registers([u'node', u'allowExpression'])
                if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')) and var.get(u'allowExpression').neg()):
                    var.get(u'node').put(u'returnType', var.get(u"this").callprop(u'flowParseTypeAnnotation'))
                return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node'), var.get(u'allowExpression'))
            PyJs_anonymous_3125_._set_name(u'anonymous')
            return PyJs_anonymous_3125_
        PyJs_anonymous_3124_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseFunctionBody'), PyJs_anonymous_3124_)
        @Js
        def PyJs_anonymous_3126_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3127_(declaration, topLevel, this, arguments, var=var):
                var = Scope({u'this':this, u'topLevel':topLevel, u'arguments':arguments, u'declaration':declaration}, var)
                var.registers([u'node', u'topLevel', u'declaration'])
                if ((var.get(u"this").get(u'state').get(u'strict') and var.get(u"this").callprop(u'match', var.get(u'types').get(u'name'))) and PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),Js(u'interface'))):
                    var.put(u'node', var.get(u"this").callprop(u'startNode'))
                    var.get(u"this").callprop(u'next')
                    return var.get(u"this").callprop(u'flowParseInterface', var.get(u'node'))
                else:
                    return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'declaration'), var.get(u'topLevel'))
            PyJs_anonymous_3127_._set_name(u'anonymous')
            return PyJs_anonymous_3127_
        PyJs_anonymous_3126_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseStatement'), PyJs_anonymous_3126_)
        @Js
        def PyJs_anonymous_3128_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3129_(node, expr, this, arguments, var=var):
                var = Scope({u'node':node, u'expr':expr, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node', u'expr'])
                if PyJsStrictEq(var.get(u'expr').get(u'type'),Js(u'Identifier')):
                    if PyJsStrictEq(var.get(u'expr').get(u'name'),Js(u'declare')):
                        if (((var.get(u"this").callprop(u'match', var.get(u'types').get(u'_class')) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'name'))) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'_function'))) or var.get(u"this").callprop(u'match', var.get(u'types').get(u'_var'))):
                            return var.get(u"this").callprop(u'flowParseDeclare', var.get(u'node'))
                    else:
                        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'name')):
                            if PyJsStrictEq(var.get(u'expr').get(u'name'),Js(u'interface')):
                                return var.get(u"this").callprop(u'flowParseInterface', var.get(u'node'))
                            else:
                                if PyJsStrictEq(var.get(u'expr').get(u'name'),Js(u'type')):
                                    return var.get(u"this").callprop(u'flowParseTypeAlias', var.get(u'node'))
                return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node'), var.get(u'expr'))
            PyJs_anonymous_3129_._set_name(u'anonymous')
            return PyJs_anonymous_3129_
        PyJs_anonymous_3128_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseExpressionStatement'), PyJs_anonymous_3128_)
        @Js
        def PyJs_anonymous_3130_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3131_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return ((var.get(u"this").callprop(u'isContextual', Js(u'type')) or var.get(u"this").callprop(u'isContextual', Js(u'interface'))) or var.get(u'inner').callprop(u'call', var.get(u"this")))
            PyJs_anonymous_3131_._set_name(u'anonymous')
            return PyJs_anonymous_3131_
        PyJs_anonymous_3130_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'shouldParseExportDeclaration'), PyJs_anonymous_3130_)
        @Js
        def PyJs_anonymous_3132_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3133_(expr, noIn, startPos, startLoc, refNeedsArrowPos, this, arguments, var=var):
                var = Scope({u'this':this, u'refNeedsArrowPos':refNeedsArrowPos, u'startLoc':startLoc, u'noIn':noIn, u'expr':expr, u'startPos':startPos, u'arguments':arguments}, var)
                var.registers([u'expr', u'state', u'refNeedsArrowPos', u'startLoc', u'noIn', u'startPos'])
                if (var.get(u'refNeedsArrowPos') and var.get(u"this").callprop(u'match', var.get(u'types').get(u'question'))):
                    var.put(u'state', var.get(u"this").get(u'state').callprop(u'clone'))
                    try:
                        return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'expr'), var.get(u'noIn'), var.get(u'startPos'), var.get(u'startLoc'))
                    except PyJsException as PyJsTempException:
                        PyJsHolder_657272_30891008 = var.own.get(u'err')
                        var.force_own_put(u'err', PyExceptionToJs(PyJsTempException))
                        try:
                            if var.get(u'err').instanceof(var.get(u'SyntaxError')):
                                var.get(u"this").put(u'state', var.get(u'state'))
                                var.get(u'refNeedsArrowPos').put(u'start', (var.get(u'err').get(u'pos') or var.get(u"this").get(u'state').get(u'start')))
                                return var.get(u'expr')
                            else:
                                PyJsTempException = JsToPyException(var.get(u'err'))
                                raise PyJsTempException
                        finally:
                            if PyJsHolder_657272_30891008 is not None:
                                var.own[u'err'] = PyJsHolder_657272_30891008
                            else:
                                del var.own[u'err']
                            del PyJsHolder_657272_30891008
                return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'expr'), var.get(u'noIn'), var.get(u'startPos'), var.get(u'startLoc'))
            PyJs_anonymous_3133_._set_name(u'anonymous')
            return PyJs_anonymous_3133_
        PyJs_anonymous_3132_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseConditional'), PyJs_anonymous_3132_)
        @Js
        def PyJs_anonymous_3134_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3135_(node, startLoc, startPos, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'startPos':startPos, u'arguments':arguments, u'startLoc':startLoc}, var)
                var.registers([u'node', u'typeCastNode', u'startPos', u'startLoc'])
                var.put(u'node', var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node'), var.get(u'startLoc'), var.get(u'startPos')))
                if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'question')):
                    var.get(u'node').put(u'optional', var.get(u'true'))
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')):
                    var.put(u'typeCastNode', var.get(u"this").callprop(u'startNodeAt', var.get(u'startLoc'), var.get(u'startPos')))
                    var.get(u'typeCastNode').put(u'expression', var.get(u'node'))
                    var.get(u'typeCastNode').put(u'typeAnnotation', var.get(u"this").callprop(u'flowParseTypeAnnotation'))
                    return var.get(u"this").callprop(u'finishNode', var.get(u'typeCastNode'), Js(u'TypeCastExpression'))
                return var.get(u'node')
            PyJs_anonymous_3135_._set_name(u'anonymous')
            return PyJs_anonymous_3135_
        PyJs_anonymous_3134_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseParenItem'), PyJs_anonymous_3134_)
        @Js
        def PyJs_anonymous_3136_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3137_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                var.put(u'node', var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node')))
                if PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'ExportNamedDeclaration')):
                    var.get(u'node').put(u'exportKind', (var.get(u'node').get(u'exportKind') or Js(u'value')))
                return var.get(u'node')
            PyJs_anonymous_3137_._set_name(u'anonymous')
            return PyJs_anonymous_3137_
        PyJs_anonymous_3136_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseExport'), PyJs_anonymous_3136_)
        @Js
        def PyJs_anonymous_3138_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3139_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node', u'_declarationNode', u'declarationNode'])
                if var.get(u"this").callprop(u'isContextual', Js(u'type')):
                    var.get(u'node').put(u'exportKind', Js(u'type'))
                    var.put(u'declarationNode', var.get(u"this").callprop(u'startNode'))
                    var.get(u"this").callprop(u'next')
                    if var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceL')):
                        var.get(u'node').put(u'specifiers', var.get(u"this").callprop(u'parseExportSpecifiers'))
                        var.get(u"this").callprop(u'parseExportFrom', var.get(u'node'))
                        return var.get(u"null")
                    else:
                        return var.get(u"this").callprop(u'flowParseTypeAlias', var.get(u'declarationNode'))
                else:
                    if var.get(u"this").callprop(u'isContextual', Js(u'interface')):
                        var.get(u'node').put(u'exportKind', Js(u'type'))
                        var.put(u'_declarationNode', var.get(u"this").callprop(u'startNode'))
                        var.get(u"this").callprop(u'next')
                        return var.get(u"this").callprop(u'flowParseInterface', var.get(u'_declarationNode'))
                    else:
                        return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node'))
            PyJs_anonymous_3139_._set_name(u'anonymous')
            return PyJs_anonymous_3139_
        PyJs_anonymous_3138_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseExportDeclaration'), PyJs_anonymous_3138_)
        @Js
        def PyJs_anonymous_3140_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3141_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                var.get(u'inner').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))
                if var.get(u"this").callprop(u'isRelational', Js(u'<')):
                    var.get(u'node').put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterDeclaration'))
            PyJs_anonymous_3141_._set_name(u'anonymous')
            return PyJs_anonymous_3141_
        PyJs_anonymous_3140_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseClassId'), PyJs_anonymous_3140_)
        @Js
        def PyJs_anonymous_3142_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3143_(name, this, arguments, var=var):
                var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
                var.registers([u'name'])
                if (var.get(u"this").get(u'state').get(u'inType') and PyJsStrictEq(var.get(u'name'),Js(u'void'))):
                    return Js(False)
                else:
                    return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'name'))
            PyJs_anonymous_3143_._set_name(u'anonymous')
            return PyJs_anonymous_3143_
        PyJs_anonymous_3142_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'isKeyword'), PyJs_anonymous_3142_)
        @Js
        def PyJs_anonymous_3144_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3145_(prop, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'prop':prop}, var)
                var.registers([u'oldInType', u'prop', u'out'])
                var.put(u'oldInType', var.get(u"this").get(u'state').get(u'inType'))
                var.get(u"this").get(u'state').put(u'inType', var.get(u'true'))
                var.put(u'out', var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'prop')))
                var.get(u"this").get(u'state').put(u'inType', var.get(u'oldInType'))
                return var.get(u'out')
            PyJs_anonymous_3145_._set_name(u'anonymous')
            return PyJs_anonymous_3145_
        PyJs_anonymous_3144_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parsePropertyName'), PyJs_anonymous_3144_)
        @Js
        def PyJs_anonymous_3146_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3147_(code, this, arguments, var=var):
                var = Scope({u'this':this, u'code':code, u'arguments':arguments}, var)
                var.registers([u'code'])
                if (var.get(u"this").get(u'state').get(u'inType') and (PyJsStrictEq(var.get(u'code'),Js(62.0)) or PyJsStrictEq(var.get(u'code'),Js(60.0)))):
                    return var.get(u"this").callprop(u'finishOp', var.get(u'types').get(u'relational'), Js(1.0))
                else:
                    return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'code'))
            PyJs_anonymous_3147_._set_name(u'anonymous')
            return PyJs_anonymous_3147_
        PyJs_anonymous_3146_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'readToken'), PyJs_anonymous_3146_)
        @Js
        def PyJs_anonymous_3148_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3149_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                if var.get(u"this").get(u'state').get(u'inType').neg():
                    return var.get(u'inner').callprop(u'call', var.get(u"this"))
            PyJs_anonymous_3149_._set_name(u'anonymous')
            return PyJs_anonymous_3149_
        PyJs_anonymous_3148_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'jsx_readToken'), PyJs_anonymous_3148_)
        @Js
        def PyJs_anonymous_3150_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3151_(node, isBinding, contextDescription, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'isBinding':isBinding, u'arguments':arguments, u'contextDescription':contextDescription}, var)
                var.registers([u'node', u'isBinding', u'contextDescription'])
                if PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'TypeCastExpression')):
                    return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u"this").callprop(u'typeCastToParameter', var.get(u'node')), var.get(u'isBinding'), var.get(u'contextDescription'))
                else:
                    return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node'), var.get(u'isBinding'), var.get(u'contextDescription'))
            PyJs_anonymous_3151_._set_name(u'anonymous')
            return PyJs_anonymous_3151_
        PyJs_anonymous_3150_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'toAssignable'), PyJs_anonymous_3150_)
        @Js
        def PyJs_anonymous_3152_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3153_(exprList, isBinding, contextDescription, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'isBinding':isBinding, u'exprList':exprList, u'contextDescription':contextDescription}, var)
                var.registers([u'i', u'expr', u'isBinding', u'exprList', u'contextDescription'])
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'exprList').get(u'length')):
                    try:
                        var.put(u'expr', var.get(u'exprList').get(var.get(u'i')))
                        if (var.get(u'expr') and PyJsStrictEq(var.get(u'expr').get(u'type'),Js(u'TypeCastExpression'))):
                            var.get(u'exprList').put(var.get(u'i'), var.get(u"this").callprop(u'typeCastToParameter', var.get(u'expr')))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'exprList'), var.get(u'isBinding'), var.get(u'contextDescription'))
            PyJs_anonymous_3153_._set_name(u'anonymous')
            return PyJs_anonymous_3153_
        PyJs_anonymous_3152_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'toAssignableList'), PyJs_anonymous_3152_)
        @Js
        def PyJs_anonymous_3154_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            @Js
            def PyJs_anonymous_3155_(exprList, this, arguments, var=var):
                var = Scope({u'this':this, u'exprList':exprList, u'arguments':arguments}, var)
                var.registers([u'i', u'expr', u'exprList'])
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'exprList').get(u'length')):
                    try:
                        var.put(u'expr', var.get(u'exprList').get(var.get(u'i')))
                        if ((var.get(u'expr') and var.get(u'expr').get(u'_exprListItem')) and PyJsStrictEq(var.get(u'expr').get(u'type'),Js(u'TypeCastExpression'))):
                            var.get(u"this").callprop(u'raise', var.get(u'expr').get(u'start'), Js(u'Unexpected type cast'))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                return var.get(u'exprList')
            PyJs_anonymous_3155_._set_name(u'anonymous')
            return PyJs_anonymous_3155_
        PyJs_anonymous_3154_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'toReferencedList'), PyJs_anonymous_3154_)
        @Js
        def PyJs_anonymous_3156_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3157_(allowEmpty, refShorthandDefaultPos, this, arguments, var=var):
                var = Scope({u'this':this, u'allowEmpty':allowEmpty, u'refShorthandDefaultPos':refShorthandDefaultPos, u'arguments':arguments}, var)
                var.registers([u'node', u'allowEmpty', u'container', u'refShorthandDefaultPos'])
                var.put(u'container', var.get(u"this").callprop(u'startNode'))
                var.put(u'node', var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'allowEmpty'), var.get(u'refShorthandDefaultPos')))
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')):
                    var.get(u'container').put(u'_exprListItem', var.get(u'true'))
                    var.get(u'container').put(u'expression', var.get(u'node'))
                    var.get(u'container').put(u'typeAnnotation', var.get(u"this").callprop(u'flowParseTypeAnnotation'))
                    return var.get(u"this").callprop(u'finishNode', var.get(u'container'), Js(u'TypeCastExpression'))
                else:
                    return var.get(u'node')
            PyJs_anonymous_3157_._set_name(u'anonymous')
            return PyJs_anonymous_3157_
        PyJs_anonymous_3156_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseExprListItem'), PyJs_anonymous_3156_)
        @Js
        def PyJs_anonymous_3158_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3159_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                if PyJsStrictNeq(var.get(u'node').get(u'type'),Js(u'TypeCastExpression')):
                    return var.get(u'inner').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))
            PyJs_anonymous_3159_._set_name(u'anonymous')
            return PyJs_anonymous_3159_
        PyJs_anonymous_3158_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'checkLVal'), PyJs_anonymous_3158_)
        @Js
        def PyJs_anonymous_3160_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3161_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                var.get(u'node').delete(u'variancePos')
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')):
                    var.get(u'node').put(u'typeAnnotation', var.get(u"this").callprop(u'flowParseTypeAnnotation'))
                return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node'))
            PyJs_anonymous_3161_._set_name(u'anonymous')
            return PyJs_anonymous_3161_
        PyJs_anonymous_3160_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseClassProperty'), PyJs_anonymous_3160_)
        @Js
        def PyJs_anonymous_3162_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3163_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return (var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')) or var.get(u'inner').callprop(u'call', var.get(u"this")))
            PyJs_anonymous_3163_._set_name(u'anonymous')
            return PyJs_anonymous_3163_
        PyJs_anonymous_3162_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'isClassProperty'), PyJs_anonymous_3162_)
        @Js
        def PyJs_anonymous_3164_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            @Js
            def PyJs_anonymous_3165_(classBody, method, isGenerator, isAsync, this, arguments, var=var):
                var = Scope({u'isAsync':isAsync, u'classBody':classBody, u'this':this, u'isGenerator':isGenerator, u'method':method, u'arguments':arguments}, var)
                var.registers([u'isAsync', u'isGenerator', u'classBody', u'method'])
                if var.get(u'method').get(u'variance'):
                    var.get(u"this").callprop(u'unexpected', var.get(u'method').get(u'variancePos'))
                var.get(u'method').delete(u'variance')
                var.get(u'method').delete(u'variancePos')
                if var.get(u"this").callprop(u'isRelational', Js(u'<')):
                    var.get(u'method').put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterDeclaration'))
                var.get(u"this").callprop(u'parseMethod', var.get(u'method'), var.get(u'isGenerator'), var.get(u'isAsync'))
                var.get(u'classBody').get(u'body').callprop(u'push', var.get(u"this").callprop(u'finishNode', var.get(u'method'), Js(u'ClassMethod')))
            PyJs_anonymous_3165_._set_name(u'anonymous')
            return PyJs_anonymous_3165_
        PyJs_anonymous_3164_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseClassMethod'), PyJs_anonymous_3164_)
        @Js
        def PyJs_anonymous_3166_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3167_(node, isStatement, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'isStatement':isStatement, u'arguments':arguments}, var)
                var.registers([u'node', u'_node', u'implemented', u'isStatement'])
                var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node'), var.get(u'isStatement'))
                if (var.get(u'node').get(u'superClass') and var.get(u"this").callprop(u'isRelational', Js(u'<'))):
                    var.get(u'node').put(u'superTypeParameters', var.get(u"this").callprop(u'flowParseTypeParameterInstantiation'))
                if var.get(u"this").callprop(u'isContextual', Js(u'implements')):
                    var.get(u"this").callprop(u'next')
                    var.put(u'implemented', var.get(u'node').put(u'implements', Js([])))
                    while 1:
                        var.put(u'_node', var.get(u"this").callprop(u'startNode'))
                        var.get(u'_node').put(u'id', var.get(u"this").callprop(u'parseIdentifier'))
                        if var.get(u"this").callprop(u'isRelational', Js(u'<')):
                            var.get(u'_node').put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterInstantiation'))
                        else:
                            var.get(u'_node').put(u'typeParameters', var.get(u"null"))
                        var.get(u'implemented').callprop(u'push', var.get(u"this").callprop(u'finishNode', var.get(u'_node'), Js(u'ClassImplements')))
                        if not var.get(u"this").callprop(u'eat', var.get(u'types').get(u'comma')):
                            break
            PyJs_anonymous_3167_._set_name(u'anonymous')
            return PyJs_anonymous_3167_
        PyJs_anonymous_3166_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseClassSuper'), PyJs_anonymous_3166_)
        @Js
        def PyJs_anonymous_3168_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3169_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node', u'variance', u'variancePos', u'key'])
                var.put(u'variancePos', var.get(u"this").get(u'state').get(u'start'))
                var.put(u'variance', var.get(u"this").callprop(u'flowParseVariance'))
                var.put(u'key', var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node')))
                var.get(u'node').put(u'variance', var.get(u'variance'))
                var.get(u'node').put(u'variancePos', var.get(u'variancePos'))
                return var.get(u'key')
            PyJs_anonymous_3169_._set_name(u'anonymous')
            return PyJs_anonymous_3169_
        PyJs_anonymous_3168_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parsePropertyName'), PyJs_anonymous_3168_)
        @Js
        def PyJs_anonymous_3170_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3171_(prop, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'prop':prop}, var)
                var.registers([u'typeParameters', u'prop'])
                if var.get(u'prop').get(u'variance'):
                    var.get(u"this").callprop(u'unexpected', var.get(u'prop').get(u'variancePos'))
                var.get(u'prop').delete(u'variance')
                var.get(u'prop').delete(u'variancePos')
                var.put(u'typeParameters', PyJsComma(Js(0.0), Js(None)))
                if var.get(u"this").callprop(u'isRelational', Js(u'<')):
                    var.put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterDeclaration'))
                    if var.get(u"this").callprop(u'match', var.get(u'types').get(u'parenL')).neg():
                        var.get(u"this").callprop(u'unexpected')
                var.get(u'inner').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))
                if var.get(u'typeParameters'):
                    (var.get(u'prop').get(u'value') or var.get(u'prop')).put(u'typeParameters', var.get(u'typeParameters'))
            PyJs_anonymous_3171_._set_name(u'anonymous')
            return PyJs_anonymous_3171_
        PyJs_anonymous_3170_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseObjPropValue'), PyJs_anonymous_3170_)
        @Js
        def PyJs_anonymous_3172_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            @Js
            def PyJs_anonymous_3173_(param, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'param':param}, var)
                var.registers([u'param'])
                if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'question')):
                    var.get(u'param').put(u'optional', var.get(u'true'))
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')):
                    var.get(u'param').put(u'typeAnnotation', var.get(u"this").callprop(u'flowParseTypeAnnotation'))
                var.get(u"this").callprop(u'finishNode', var.get(u'param'), var.get(u'param').get(u'type'))
                return var.get(u'param')
            PyJs_anonymous_3173_._set_name(u'anonymous')
            return PyJs_anonymous_3173_
        PyJs_anonymous_3172_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseAssignableListItemTypes'), PyJs_anonymous_3172_)
        @Js
        def PyJs_anonymous_3174_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3175_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'_len', u'_key', u'args', u'node'])
                #for JS loop
                var.put(u'_len', var.get(u'arguments').get(u'length'))
                var.put(u'args', var.get(u'Array')(var.get(u'_len')))
                var.put(u'_key', Js(0.0))
                while (var.get(u'_key')<var.get(u'_len')):
                    try:
                        var.get(u'args').put(var.get(u'_key'), var.get(u'arguments').get(var.get(u'_key')))
                    finally:
                            (var.put(u'_key',Js(var.get(u'_key').to_number())+Js(1))-Js(1))
                var.put(u'node', var.get(u'inner').callprop(u'apply', var.get(u"this"), var.get(u'args')))
                if ((PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'AssignmentPattern')) and var.get(u'node').get(u'typeAnnotation')) and (var.get(u'node').get(u'right').get(u'start')<var.get(u'node').get(u'typeAnnotation').get(u'start'))):
                    var.get(u"this").callprop(u'raise', var.get(u'node').get(u'typeAnnotation').get(u'start'), Js(u'Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`'))
                return var.get(u'node')
            PyJs_anonymous_3175_._set_name(u'anonymous')
            return PyJs_anonymous_3175_
        PyJs_anonymous_3174_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseMaybeDefault'), PyJs_anonymous_3174_)
        @Js
        def PyJs_anonymous_3176_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3177_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node', u'kind', u'lh'])
                var.get(u'node').put(u'importKind', Js(u'value'))
                var.put(u'kind', var.get(u"null"))
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'_typeof')):
                    var.put(u'kind', Js(u'typeof'))
                else:
                    if var.get(u"this").callprop(u'isContextual', Js(u'type')):
                        var.put(u'kind', Js(u'type'))
                if var.get(u'kind'):
                    var.put(u'lh', var.get(u"this").callprop(u'lookahead'))
                    if (((PyJsStrictEq(var.get(u'lh').get(u'type'),var.get(u'types').get(u'name')) and PyJsStrictNeq(var.get(u'lh').get(u'value'),Js(u'from'))) or PyJsStrictEq(var.get(u'lh').get(u'type'),var.get(u'types').get(u'braceL'))) or PyJsStrictEq(var.get(u'lh').get(u'type'),var.get(u'types').get(u'star'))):
                        var.get(u"this").callprop(u'next')
                        var.get(u'node').put(u'importKind', var.get(u'kind'))
                var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node'))
            PyJs_anonymous_3177_._set_name(u'anonymous')
            return PyJs_anonymous_3177_
        PyJs_anonymous_3176_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseImportSpecifiers'), PyJs_anonymous_3176_)
        @Js
        def PyJs_anonymous_3178_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3179_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                if var.get(u"this").callprop(u'isRelational', Js(u'<')):
                    var.get(u'node').put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterDeclaration'))
                var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node'))
            PyJs_anonymous_3179_._set_name(u'anonymous')
            return PyJs_anonymous_3179_
        PyJs_anonymous_3178_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseFunctionParams'), PyJs_anonymous_3178_)
        @Js
        def PyJs_anonymous_3180_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3181_(decl, this, arguments, var=var):
                var = Scope({u'decl':decl, u'this':this, u'arguments':arguments}, var)
                var.registers([u'decl'])
                var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'decl'))
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')):
                    var.get(u'decl').get(u'id').put(u'typeAnnotation', var.get(u"this").callprop(u'flowParseTypeAnnotation'))
                    var.get(u"this").callprop(u'finishNode', var.get(u'decl').get(u'id'), var.get(u'decl').get(u'id').get(u'type'))
            PyJs_anonymous_3181_._set_name(u'anonymous')
            return PyJs_anonymous_3181_
        PyJs_anonymous_3180_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseVarHead'), PyJs_anonymous_3180_)
        @Js
        def PyJs_anonymous_3182_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3183_(node, call, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'call':call, u'arguments':arguments}, var)
                var.registers([u'node', u'call'])
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')):
                    var.get(u'node').put(u'returnType', var.get(u"this").callprop(u'flowParseTypeAnnotation'))
                return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node'), var.get(u'call'))
            PyJs_anonymous_3183_._set_name(u'anonymous')
            return PyJs_anonymous_3183_
        PyJs_anonymous_3182_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseAsyncArrowFromCallExpression'), PyJs_anonymous_3182_)
        @Js
        def PyJs_anonymous_3184_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3185_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return (var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')) or var.get(u'inner').callprop(u'call', var.get(u"this")))
            PyJs_anonymous_3185_._set_name(u'anonymous')
            return PyJs_anonymous_3185_
        PyJs_anonymous_3184_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'shouldParseAsyncArrow'), PyJs_anonymous_3184_)
        @Js
        def PyJs_anonymous_3186_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3187_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'args', u'arrowExpression', u'jsxError', u'_key2', u'state', u'_len2', u'typeParameters'])
                var.put(u'jsxError', var.get(u"null"))
                #for JS loop
                var.put(u'_len2', var.get(u'arguments').get(u'length'))
                var.put(u'args', var.get(u'Array')(var.get(u'_len2')))
                var.put(u'_key2', Js(0.0))
                while (var.get(u'_key2')<var.get(u'_len2')):
                    try:
                        var.get(u'args').put(var.get(u'_key2'), var.get(u'arguments').get(var.get(u'_key2')))
                    finally:
                            (var.put(u'_key2',Js(var.get(u'_key2').to_number())+Js(1))-Js(1))
                if (var.get(u'types').get(u'jsxTagStart') and var.get(u"this").callprop(u'match', var.get(u'types').get(u'jsxTagStart'))):
                    var.put(u'state', var.get(u"this").get(u'state').callprop(u'clone'))
                    try:
                        return var.get(u'inner').callprop(u'apply', var.get(u"this"), var.get(u'args'))
                    except PyJsException as PyJsTempException:
                        PyJsHolder_657272_79758696 = var.own.get(u'err')
                        var.force_own_put(u'err', PyExceptionToJs(PyJsTempException))
                        try:
                            if var.get(u'err').instanceof(var.get(u'SyntaxError')):
                                var.get(u"this").put(u'state', var.get(u'state'))
                                var.put(u'jsxError', var.get(u'err'))
                            else:
                                PyJsTempException = JsToPyException(var.get(u'err'))
                                raise PyJsTempException
                        finally:
                            if PyJsHolder_657272_79758696 is not None:
                                var.own[u'err'] = PyJsHolder_657272_79758696
                            else:
                                del var.own[u'err']
                            del PyJsHolder_657272_79758696
                var.get(u"this").get(u'state').get(u'context').callprop(u'push', var.get(u'types$1').get(u'parenExpression'))
                if ((var.get(u'jsxError')!=var.get(u"null")) or var.get(u"this").callprop(u'isRelational', Js(u'<'))):
                    var.put(u'arrowExpression', PyJsComma(Js(0.0), Js(None)))
                    var.put(u'typeParameters', PyJsComma(Js(0.0), Js(None)))
                    try:
                        var.put(u'typeParameters', var.get(u"this").callprop(u'flowParseTypeParameterDeclaration'))
                        var.put(u'arrowExpression', var.get(u'inner').callprop(u'apply', var.get(u"this"), var.get(u'args')))
                        var.get(u'arrowExpression').put(u'typeParameters', var.get(u'typeParameters'))
                        var.get(u'arrowExpression').put(u'start', var.get(u'typeParameters').get(u'start'))
                        var.get(u'arrowExpression').get(u'loc').put(u'start', var.get(u'typeParameters').get(u'loc').get(u'start'))
                    except PyJsException as PyJsTempException:
                        PyJsHolder_657272_54478765 = var.own.get(u'err')
                        var.force_own_put(u'err', PyExceptionToJs(PyJsTempException))
                        try:
                            PyJsTempException = JsToPyException((var.get(u'jsxError') or var.get(u'err')))
                            raise PyJsTempException
                        finally:
                            if PyJsHolder_657272_54478765 is not None:
                                var.own[u'err'] = PyJsHolder_657272_54478765
                            else:
                                del var.own[u'err']
                            del PyJsHolder_657272_54478765
                    if PyJsStrictEq(var.get(u'arrowExpression').get(u'type'),Js(u'ArrowFunctionExpression')):
                        return var.get(u'arrowExpression')
                    else:
                        if (var.get(u'jsxError')!=var.get(u"null")):
                            PyJsTempException = JsToPyException(var.get(u'jsxError'))
                            raise PyJsTempException
                        else:
                            var.get(u"this").callprop(u'raise', var.get(u'typeParameters').get(u'start'), Js(u'Expected an arrow function after this type parameter declaration'))
                var.get(u"this").get(u'state').get(u'context').callprop(u'pop')
                return var.get(u'inner').callprop(u'apply', var.get(u"this"), var.get(u'args'))
            PyJs_anonymous_3187_._set_name(u'anonymous')
            return PyJs_anonymous_3187_
        PyJs_anonymous_3186_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseMaybeAssign'), PyJs_anonymous_3186_)
        @Js
        def PyJs_anonymous_3188_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3189_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'returnType', u'node', u'state'])
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')):
                    var.put(u'state', var.get(u"this").get(u'state').callprop(u'clone'))
                    try:
                        var.put(u'returnType', var.get(u"this").callprop(u'flowParseTypeAnnotation'))
                        if var.get(u"this").callprop(u'canInsertSemicolon'):
                            var.get(u"this").callprop(u'unexpected')
                        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'arrow')).neg():
                            var.get(u"this").callprop(u'unexpected')
                        var.get(u'node').put(u'returnType', var.get(u'returnType'))
                    except PyJsException as PyJsTempException:
                        PyJsHolder_657272_34966532 = var.own.get(u'err')
                        var.force_own_put(u'err', PyExceptionToJs(PyJsTempException))
                        try:
                            if var.get(u'err').instanceof(var.get(u'SyntaxError')):
                                var.get(u"this").put(u'state', var.get(u'state'))
                            else:
                                PyJsTempException = JsToPyException(var.get(u'err'))
                                raise PyJsTempException
                        finally:
                            if PyJsHolder_657272_34966532 is not None:
                                var.own[u'err'] = PyJsHolder_657272_34966532
                            else:
                                del var.own[u'err']
                            del PyJsHolder_657272_34966532
                return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'node'))
            PyJs_anonymous_3189_._set_name(u'anonymous')
            return PyJs_anonymous_3189_
        PyJs_anonymous_3188_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseArrow'), PyJs_anonymous_3188_)
        @Js
        def PyJs_anonymous_3190_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3191_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return (var.get(u"this").callprop(u'match', var.get(u'types').get(u'colon')) or var.get(u'inner').callprop(u'call', var.get(u"this")))
            PyJs_anonymous_3191_._set_name(u'anonymous')
            return PyJs_anonymous_3191_
        PyJs_anonymous_3190_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'shouldParseArrow'), PyJs_anonymous_3190_)
        @Js
        def PyJs_anonymous_3192_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3193_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                if var.get(u"this").callprop(u'isRelational', Js(u'<')):
                    return var.get(u'true')
                else:
                    return var.get(u'inner').callprop(u'call', var.get(u"this"))
            PyJs_anonymous_3193_._set_name(u'anonymous')
            return PyJs_anonymous_3193_
        PyJs_anonymous_3192_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'isClassMutatorStarter'), PyJs_anonymous_3192_)
    PyJs_anonymous_3123_._set_name(u'anonymous')
    var.put(u'flowPlugin', PyJs_anonymous_3123_)
    PyJs_Object_3194_ = Js({u'quot':Js(u'"'),u'amp':Js(u'&'),u'apos':Js(u"'"),u'lt':Js(u'<'),u'gt':Js(u'>'),u'nbsp':Js(u'\xa0'),u'iexcl':Js(u'\xa1'),u'cent':Js(u'\xa2'),u'pound':Js(u'\xa3'),u'curren':Js(u'\xa4'),u'yen':Js(u'\xa5'),u'brvbar':Js(u'\xa6'),u'sect':Js(u'\xa7'),u'uml':Js(u'\xa8'),u'copy':Js(u'\xa9'),u'ordf':Js(u'\xaa'),u'laquo':Js(u'\xab'),u'not':Js(u'\xac'),u'shy':Js(u'\xad'),u'reg':Js(u'\xae'),u'macr':Js(u'\xaf'),u'deg':Js(u'\xb0'),u'plusmn':Js(u'\xb1'),u'sup2':Js(u'\xb2'),u'sup3':Js(u'\xb3'),u'acute':Js(u'\xb4'),u'micro':Js(u'\xb5'),u'para':Js(u'\xb6'),u'middot':Js(u'\xb7'),u'cedil':Js(u'\xb8'),u'sup1':Js(u'\xb9'),u'ordm':Js(u'\xba'),u'raquo':Js(u'\xbb'),u'frac14':Js(u'\xbc'),u'frac12':Js(u'\xbd'),u'frac34':Js(u'\xbe'),u'iquest':Js(u'\xbf'),u'Agrave':Js(u'\xc0'),u'Aacute':Js(u'\xc1'),u'Acirc':Js(u'\xc2'),u'Atilde':Js(u'\xc3'),u'Auml':Js(u'\xc4'),u'Aring':Js(u'\xc5'),u'AElig':Js(u'\xc6'),u'Ccedil':Js(u'\xc7'),u'Egrave':Js(u'\xc8'),u'Eacute':Js(u'\xc9'),u'Ecirc':Js(u'\xca'),u'Euml':Js(u'\xcb'),u'Igrave':Js(u'\xcc'),u'Iacute':Js(u'\xcd'),u'Icirc':Js(u'\xce'),u'Iuml':Js(u'\xcf'),u'ETH':Js(u'\xd0'),u'Ntilde':Js(u'\xd1'),u'Ograve':Js(u'\xd2'),u'Oacute':Js(u'\xd3'),u'Ocirc':Js(u'\xd4'),u'Otilde':Js(u'\xd5'),u'Ouml':Js(u'\xd6'),u'times':Js(u'\xd7'),u'Oslash':Js(u'\xd8'),u'Ugrave':Js(u'\xd9'),u'Uacute':Js(u'\xda'),u'Ucirc':Js(u'\xdb'),u'Uuml':Js(u'\xdc'),u'Yacute':Js(u'\xdd'),u'THORN':Js(u'\xde'),u'szlig':Js(u'\xdf'),u'agrave':Js(u'\xe0'),u'aacute':Js(u'\xe1'),u'acirc':Js(u'\xe2'),u'atilde':Js(u'\xe3'),u'auml':Js(u'\xe4'),u'aring':Js(u'\xe5'),u'aelig':Js(u'\xe6'),u'ccedil':Js(u'\xe7'),u'egrave':Js(u'\xe8'),u'eacute':Js(u'\xe9'),u'ecirc':Js(u'\xea'),u'euml':Js(u'\xeb'),u'igrave':Js(u'\xec'),u'iacute':Js(u'\xed'),u'icirc':Js(u'\xee'),u'iuml':Js(u'\xef'),u'eth':Js(u'\xf0'),u'ntilde':Js(u'\xf1'),u'ograve':Js(u'\xf2'),u'oacute':Js(u'\xf3'),u'ocirc':Js(u'\xf4'),u'otilde':Js(u'\xf5'),u'ouml':Js(u'\xf6'),u'divide':Js(u'\xf7'),u'oslash':Js(u'\xf8'),u'ugrave':Js(u'\xf9'),u'uacute':Js(u'\xfa'),u'ucirc':Js(u'\xfb'),u'uuml':Js(u'\xfc'),u'yacute':Js(u'\xfd'),u'thorn':Js(u'\xfe'),u'yuml':Js(u'\xff'),u'OElig':Js(u'\u0152'),u'oelig':Js(u'\u0153'),u'Scaron':Js(u'\u0160'),u'scaron':Js(u'\u0161'),u'Yuml':Js(u'\u0178'),u'fnof':Js(u'\u0192'),u'circ':Js(u'\u02c6'),u'tilde':Js(u'\u02dc'),u'Alpha':Js(u'\u0391'),u'Beta':Js(u'\u0392'),u'Gamma':Js(u'\u0393'),u'Delta':Js(u'\u0394'),u'Epsilon':Js(u'\u0395'),u'Zeta':Js(u'\u0396'),u'Eta':Js(u'\u0397'),u'Theta':Js(u'\u0398'),u'Iota':Js(u'\u0399'),u'Kappa':Js(u'\u039a'),u'Lambda':Js(u'\u039b'),u'Mu':Js(u'\u039c'),u'Nu':Js(u'\u039d'),u'Xi':Js(u'\u039e'),u'Omicron':Js(u'\u039f'),u'Pi':Js(u'\u03a0'),u'Rho':Js(u'\u03a1'),u'Sigma':Js(u'\u03a3'),u'Tau':Js(u'\u03a4'),u'Upsilon':Js(u'\u03a5'),u'Phi':Js(u'\u03a6'),u'Chi':Js(u'\u03a7'),u'Psi':Js(u'\u03a8'),u'Omega':Js(u'\u03a9'),u'alpha':Js(u'\u03b1'),u'beta':Js(u'\u03b2'),u'gamma':Js(u'\u03b3'),u'delta':Js(u'\u03b4'),u'epsilon':Js(u'\u03b5'),u'zeta':Js(u'\u03b6'),u'eta':Js(u'\u03b7'),u'theta':Js(u'\u03b8'),u'iota':Js(u'\u03b9'),u'kappa':Js(u'\u03ba'),u'lambda':Js(u'\u03bb'),u'mu':Js(u'\u03bc'),u'nu':Js(u'\u03bd'),u'xi':Js(u'\u03be'),u'omicron':Js(u'\u03bf'),u'pi':Js(u'\u03c0'),u'rho':Js(u'\u03c1'),u'sigmaf':Js(u'\u03c2'),u'sigma':Js(u'\u03c3'),u'tau':Js(u'\u03c4'),u'upsilon':Js(u'\u03c5'),u'phi':Js(u'\u03c6'),u'chi':Js(u'\u03c7'),u'psi':Js(u'\u03c8'),u'omega':Js(u'\u03c9'),u'thetasym':Js(u'\u03d1'),u'upsih':Js(u'\u03d2'),u'piv':Js(u'\u03d6'),u'ensp':Js(u'\u2002'),u'emsp':Js(u'\u2003'),u'thinsp':Js(u'\u2009'),u'zwnj':Js(u'\u200c'),u'zwj':Js(u'\u200d'),u'lrm':Js(u'\u200e'),u'rlm':Js(u'\u200f'),u'ndash':Js(u'\u2013'),u'mdash':Js(u'\u2014'),u'lsquo':Js(u'\u2018'),u'rsquo':Js(u'\u2019'),u'sbquo':Js(u'\u201a'),u'ldquo':Js(u'\u201c'),u'rdquo':Js(u'\u201d'),u'bdquo':Js(u'\u201e'),u'dagger':Js(u'\u2020'),u'Dagger':Js(u'\u2021'),u'bull':Js(u'\u2022'),u'hellip':Js(u'\u2026'),u'permil':Js(u'\u2030'),u'prime':Js(u'\u2032'),u'Prime':Js(u'\u2033'),u'lsaquo':Js(u'\u2039'),u'rsaquo':Js(u'\u203a'),u'oline':Js(u'\u203e'),u'frasl':Js(u'\u2044'),u'euro':Js(u'\u20ac'),u'image':Js(u'\u2111'),u'weierp':Js(u'\u2118'),u'real':Js(u'\u211c'),u'trade':Js(u'\u2122'),u'alefsym':Js(u'\u2135'),u'larr':Js(u'\u2190'),u'uarr':Js(u'\u2191'),u'rarr':Js(u'\u2192'),u'darr':Js(u'\u2193'),u'harr':Js(u'\u2194'),u'crarr':Js(u'\u21b5'),u'lArr':Js(u'\u21d0'),u'uArr':Js(u'\u21d1'),u'rArr':Js(u'\u21d2'),u'dArr':Js(u'\u21d3'),u'hArr':Js(u'\u21d4'),u'forall':Js(u'\u2200'),u'part':Js(u'\u2202'),u'exist':Js(u'\u2203'),u'empty':Js(u'\u2205'),u'nabla':Js(u'\u2207'),u'isin':Js(u'\u2208'),u'notin':Js(u'\u2209'),u'ni':Js(u'\u220b'),u'prod':Js(u'\u220f'),u'sum':Js(u'\u2211'),u'minus':Js(u'\u2212'),u'lowast':Js(u'\u2217'),u'radic':Js(u'\u221a'),u'prop':Js(u'\u221d'),u'infin':Js(u'\u221e'),u'ang':Js(u'\u2220'),u'and':Js(u'\u2227'),u'or':Js(u'\u2228'),u'cap':Js(u'\u2229'),u'cup':Js(u'\u222a'),u'int':Js(u'\u222b'),u'there4':Js(u'\u2234'),u'sim':Js(u'\u223c'),u'cong':Js(u'\u2245'),u'asymp':Js(u'\u2248'),u'ne':Js(u'\u2260'),u'equiv':Js(u'\u2261'),u'le':Js(u'\u2264'),u'ge':Js(u'\u2265'),u'sub':Js(u'\u2282'),u'sup':Js(u'\u2283'),u'nsub':Js(u'\u2284'),u'sube':Js(u'\u2286'),u'supe':Js(u'\u2287'),u'oplus':Js(u'\u2295'),u'otimes':Js(u'\u2297'),u'perp':Js(u'\u22a5'),u'sdot':Js(u'\u22c5'),u'lceil':Js(u'\u2308'),u'rceil':Js(u'\u2309'),u'lfloor':Js(u'\u230a'),u'rfloor':Js(u'\u230b'),u'lang':Js(u'\u2329'),u'rang':Js(u'\u232a'),u'loz':Js(u'\u25ca'),u'spades':Js(u'\u2660'),u'clubs':Js(u'\u2663'),u'hearts':Js(u'\u2665'),u'diams':Js(u'\u2666')})
    var.put(u'XHTMLEntities', PyJs_Object_3194_)
    var.put(u'HEX_NUMBER', JsRegExp(u'/^[\\da-fA-F]+$/'))
    var.put(u'DECIMAL_NUMBER', JsRegExp(u'/^\\d+$/'))
    var.get(u'types$1').put(u'j_oTag', var.get(u'TokContext').create(Js(u'<tag'), Js(False)))
    var.get(u'types$1').put(u'j_cTag', var.get(u'TokContext').create(Js(u'</tag'), Js(False)))
    var.get(u'types$1').put(u'j_expr', var.get(u'TokContext').create(Js(u'<tag>...</tag>'), var.get(u'true'), var.get(u'true')))
    var.get(u'types').put(u'jsxName', var.get(u'TokenType').create(Js(u'jsxName')))
    PyJs_Object_3195_ = Js({u'beforeExpr':var.get(u'true')})
    var.get(u'types').put(u'jsxText', var.get(u'TokenType').create(Js(u'jsxText'), PyJs_Object_3195_))
    PyJs_Object_3196_ = Js({u'startsExpr':var.get(u'true')})
    var.get(u'types').put(u'jsxTagStart', var.get(u'TokenType').create(Js(u'jsxTagStart'), PyJs_Object_3196_))
    var.get(u'types').put(u'jsxTagEnd', var.get(u'TokenType').create(Js(u'jsxTagEnd')))
    @Js
    def PyJs_anonymous_3197_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").get(u'state').get(u'context').callprop(u'push', var.get(u'types$1').get(u'j_expr'))
        var.get(u"this").get(u'state').get(u'context').callprop(u'push', var.get(u'types$1').get(u'j_oTag'))
        var.get(u"this").get(u'state').put(u'exprAllowed', Js(False))
    PyJs_anonymous_3197_._set_name(u'anonymous')
    var.get(u'types').get(u'jsxTagStart').put(u'updateContext', PyJs_anonymous_3197_)
    @Js
    def PyJs_anonymous_3198_(prevType, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'prevType':prevType}, var)
        var.registers([u'prevType', u'out'])
        var.put(u'out', var.get(u"this").get(u'state').get(u'context').callprop(u'pop'))
        if ((PyJsStrictEq(var.get(u'out'),var.get(u'types$1').get(u'j_oTag')) and PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'slash'))) or PyJsStrictEq(var.get(u'out'),var.get(u'types$1').get(u'j_cTag'))):
            var.get(u"this").get(u'state').get(u'context').callprop(u'pop')
            var.get(u"this").get(u'state').put(u'exprAllowed', PyJsStrictEq(var.get(u"this").callprop(u'curContext'),var.get(u'types$1').get(u'j_expr')))
        else:
            var.get(u"this").get(u'state').put(u'exprAllowed', var.get(u'true'))
    PyJs_anonymous_3198_._set_name(u'anonymous')
    var.get(u'types').get(u'jsxTagEnd').put(u'updateContext', PyJs_anonymous_3198_)
    var.put(u'pp$8', var.get(u'Parser').get(u'prototype'))
    @Js
    def PyJs_anonymous_3199_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'ch', u'chunkStart', u'out'])
        var.put(u'out', Js(u''))
        var.put(u'chunkStart', var.get(u"this").get(u'state').get(u'pos'))
        #for JS loop
        
        while 1:
            if (var.get(u"this").get(u'state').get(u'pos')>=var.get(u"this").get(u'input').get(u'length')):
                var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u'Unterminated JSX contents'))
            var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'ch'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(60.0)):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(123.0)):
                    SWITCHED = True
                    if PyJsStrictEq(var.get(u"this").get(u'state').get(u'pos'),var.get(u"this").get(u'state').get(u'start')):
                        if (PyJsStrictEq(var.get(u'ch'),Js(60.0)) and var.get(u"this").get(u'state').get(u'exprAllowed')):
                            var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                            return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'jsxTagStart'))
                        return var.get(u"this").callprop(u'getTokenFromCode', var.get(u'ch'))
                    var.put(u'out', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), var.get(u"this").get(u'state').get(u'pos')), u'+')
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'jsxText'), var.get(u'out'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(38.0)):
                    SWITCHED = True
                    var.put(u'out', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), var.get(u"this").get(u'state').get(u'pos')), u'+')
                    var.put(u'out', var.get(u"this").callprop(u'jsxReadEntity'), u'+')
                    var.put(u'chunkStart', var.get(u"this").get(u'state').get(u'pos'))
                    break
                if True:
                    SWITCHED = True
                    if var.get(u'isNewLine')(var.get(u'ch')):
                        var.put(u'out', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), var.get(u"this").get(u'state').get(u'pos')), u'+')
                        var.put(u'out', var.get(u"this").callprop(u'jsxReadNewLine', var.get(u'true')), u'+')
                        var.put(u'chunkStart', var.get(u"this").get(u'state').get(u'pos'))
                    else:
                        var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                SWITCHED = True
                break
        
    PyJs_anonymous_3199_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxReadToken', PyJs_anonymous_3199_)
    @Js
    def PyJs_anonymous_3200_(normalizeCRLF, this, arguments, var=var):
        var = Scope({u'this':this, u'normalizeCRLF':normalizeCRLF, u'arguments':arguments}, var)
        var.registers([u'ch', u'normalizeCRLF', u'out'])
        var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
        var.put(u'out', PyJsComma(Js(0.0), Js(None)))
        var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
        if (PyJsStrictEq(var.get(u'ch'),Js(13.0)) and PyJsStrictEq(var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')),Js(10.0))):
            var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
            var.put(u'out', (Js(u'\n') if var.get(u'normalizeCRLF') else Js(u'\r\n')))
        else:
            var.put(u'out', var.get(u'String').callprop(u'fromCharCode', var.get(u'ch')))
        var.get(u"this").get(u'state').put(u'curLine',Js(var.get(u"this").get(u'state').get(u'curLine').to_number())+Js(1))
        var.get(u"this").get(u'state').put(u'lineStart', var.get(u"this").get(u'state').get(u'pos'))
        return var.get(u'out')
    PyJs_anonymous_3200_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxReadNewLine', PyJs_anonymous_3200_)
    @Js
    def PyJs_anonymous_3201_(quote, this, arguments, var=var):
        var = Scope({u'this':this, u'quote':quote, u'arguments':arguments}, var)
        var.registers([u'ch', u'quote', u'chunkStart', u'out'])
        var.put(u'out', Js(u''))
        var.put(u'chunkStart', var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1)))
        #for JS loop
        
        while 1:
            if (var.get(u"this").get(u'state').get(u'pos')>=var.get(u"this").get(u'input').get(u'length')):
                var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u'Unterminated string constant'))
            var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').get(u'pos')))
            if PyJsStrictEq(var.get(u'ch'),var.get(u'quote')):
                break
            if PyJsStrictEq(var.get(u'ch'),Js(38.0)):
                var.put(u'out', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), var.get(u"this").get(u'state').get(u'pos')), u'+')
                var.put(u'out', var.get(u"this").callprop(u'jsxReadEntity'), u'+')
                var.put(u'chunkStart', var.get(u"this").get(u'state').get(u'pos'))
            else:
                if var.get(u'isNewLine')(var.get(u'ch')):
                    var.put(u'out', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), var.get(u"this").get(u'state').get(u'pos')), u'+')
                    var.put(u'out', var.get(u"this").callprop(u'jsxReadNewLine', Js(False)), u'+')
                    var.put(u'chunkStart', var.get(u"this").get(u'state').get(u'pos'))
                else:
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
        
        var.put(u'out', var.get(u"this").get(u'input').callprop(u'slice', var.get(u'chunkStart'), (var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))-Js(1))), u'+')
        return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'string'), var.get(u'out'))
    PyJs_anonymous_3201_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxReadString', PyJs_anonymous_3201_)
    @Js
    def PyJs_anonymous_3202_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'count', u'startPos', u'ch', u'str', u'entity'])
        var.put(u'str', Js(u''))
        var.put(u'count', Js(0.0))
        var.put(u'entity', PyJsComma(Js(0.0), Js(None)))
        var.put(u'ch', var.get(u"this").get(u'input').get(var.get(u"this").get(u'state').get(u'pos')))
        var.put(u'startPos', var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1)))
        while ((var.get(u"this").get(u'state').get(u'pos')<var.get(u"this").get(u'input').get(u'length')) and ((var.put(u'count',Js(var.get(u'count').to_number())+Js(1))-Js(1))<Js(10.0))):
            var.put(u'ch', var.get(u"this").get(u'input').get((var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))-Js(1))))
            if PyJsStrictEq(var.get(u'ch'),Js(u';')):
                if PyJsStrictEq(var.get(u'str').get(u'0'),Js(u'#')):
                    if PyJsStrictEq(var.get(u'str').get(u'1'),Js(u'x')):
                        var.put(u'str', var.get(u'str').callprop(u'substr', Js(2.0)))
                        if var.get(u'HEX_NUMBER').callprop(u'test', var.get(u'str')):
                            var.put(u'entity', var.get(u'String').callprop(u'fromCharCode', var.get(u'parseInt')(var.get(u'str'), Js(16.0))))
                    else:
                        var.put(u'str', var.get(u'str').callprop(u'substr', Js(1.0)))
                        if var.get(u'DECIMAL_NUMBER').callprop(u'test', var.get(u'str')):
                            var.put(u'entity', var.get(u'String').callprop(u'fromCharCode', var.get(u'parseInt')(var.get(u'str'), Js(10.0))))
                else:
                    var.put(u'entity', var.get(u'XHTMLEntities').get(var.get(u'str')))
                break
            var.put(u'str', var.get(u'ch'), u'+')
        if var.get(u'entity').neg():
            var.get(u"this").get(u'state').put(u'pos', var.get(u'startPos'))
            return Js(u'&')
        return var.get(u'entity')
    PyJs_anonymous_3202_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxReadEntity', PyJs_anonymous_3202_)
    @Js
    def PyJs_anonymous_3203_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'start', u'ch'])
        var.put(u'ch', PyJsComma(Js(0.0), Js(None)))
        var.put(u'start', var.get(u"this").get(u'state').get(u'pos'))
        while 1:
            var.put(u'ch', var.get(u"this").get(u'input').callprop(u'charCodeAt', var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))))
            if not (var.get(u'isIdentifierChar')(var.get(u'ch')) or PyJsStrictEq(var.get(u'ch'),Js(45.0))):
                break
        return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'jsxName'), var.get(u"this").get(u'input').callprop(u'slice', var.get(u'start'), var.get(u"this").get(u'state').get(u'pos')))
    PyJs_anonymous_3203_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxReadWord', PyJs_anonymous_3203_)
    pass
    @Js
    def PyJs_anonymous_3204_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'jsxName')):
            var.get(u'node').put(u'name', var.get(u"this").get(u'state').get(u'value'))
        else:
            if var.get(u"this").get(u'state').get(u'type').get(u'keyword'):
                var.get(u'node').put(u'name', var.get(u"this").get(u'state').get(u'type').get(u'keyword'))
            else:
                var.get(u"this").callprop(u'unexpected')
        var.get(u"this").callprop(u'next')
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'JSXIdentifier'))
    PyJs_anonymous_3204_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseIdentifier', PyJs_anonymous_3204_)
    @Js
    def PyJs_anonymous_3205_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'startPos', u'name', u'startLoc'])
        var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        var.put(u'name', var.get(u"this").callprop(u'jsxParseIdentifier'))
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'colon')).neg():
            return var.get(u'name')
        var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
        var.get(u'node').put(u'namespace', var.get(u'name'))
        var.get(u'node').put(u'name', var.get(u"this").callprop(u'jsxParseIdentifier'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'JSXNamespacedName'))
    PyJs_anonymous_3205_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseNamespacedName', PyJs_anonymous_3205_)
    @Js
    def PyJs_anonymous_3206_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node', u'newNode', u'startPos', u'startLoc'])
        var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        var.put(u'node', var.get(u"this").callprop(u'jsxParseNamespacedName'))
        while var.get(u"this").callprop(u'eat', var.get(u'types').get(u'dot')):
            var.put(u'newNode', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
            var.get(u'newNode').put(u'object', var.get(u'node'))
            var.get(u'newNode').put(u'property', var.get(u"this").callprop(u'jsxParseIdentifier'))
            var.put(u'node', var.get(u"this").callprop(u'finishNode', var.get(u'newNode'), Js(u'JSXMemberExpression')))
        return var.get(u'node')
    PyJs_anonymous_3206_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseElementName', PyJs_anonymous_3206_)
    @Js
    def PyJs_anonymous_3207_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', PyJsComma(Js(0.0), Js(None)))
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u"this").get(u'state').get(u'type'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'braceL')):
                SWITCHED = True
                var.put(u'node', var.get(u"this").callprop(u'jsxParseExpressionContainer'))
                if PyJsStrictEq(var.get(u'node').get(u'expression').get(u'type'),Js(u'JSXEmptyExpression')):
                    var.get(u"this").callprop(u'raise', var.get(u'node').get(u'start'), Js(u'JSX attributes must only be assigned a non-empty expression'))
                else:
                    return var.get(u'node')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'jsxTagStart')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'string')):
                SWITCHED = True
                var.put(u'node', var.get(u"this").callprop(u'parseExprAtom'))
                var.get(u'node').put(u'extra', var.get(u"null"))
                return var.get(u'node')
            if True:
                SWITCHED = True
                var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u'JSX value should be either an expression or a quoted JSX text'))
            SWITCHED = True
            break
    PyJs_anonymous_3207_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseAttributeValue', PyJs_anonymous_3207_)
    @Js
    def PyJs_anonymous_3208_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u"this").get(u'lastTokEnd'), var.get(u"this").get(u'lastTokEndLoc')))
        return var.get(u"this").callprop(u'finishNodeAt', var.get(u'node'), Js(u'JSXEmptyExpression'), var.get(u"this").get(u'start'), var.get(u"this").get(u'startLoc'))
    PyJs_anonymous_3208_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseEmptyExpression', PyJs_anonymous_3208_)
    @Js
    def PyJs_anonymous_3209_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceL'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'ellipsis'))
        var.get(u'node').put(u'expression', var.get(u"this").callprop(u'parseExpression'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceR'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'JSXSpreadChild'))
    PyJs_anonymous_3209_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseSpreadChild', PyJs_anonymous_3209_)
    @Js
    def PyJs_anonymous_3210_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        var.get(u"this").callprop(u'next')
        if var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceR')):
            var.get(u'node').put(u'expression', var.get(u"this").callprop(u'jsxParseEmptyExpression'))
        else:
            var.get(u'node').put(u'expression', var.get(u"this").callprop(u'parseExpression'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceR'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'JSXExpressionContainer'))
    PyJs_anonymous_3210_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseExpressionContainer', PyJs_anonymous_3210_)
    @Js
    def PyJs_anonymous_3211_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'node'])
        var.put(u'node', var.get(u"this").callprop(u'startNode'))
        if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'braceL')):
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'ellipsis'))
            var.get(u'node').put(u'argument', var.get(u"this").callprop(u'parseMaybeAssign'))
            var.get(u"this").callprop(u'expect', var.get(u'types').get(u'braceR'))
            return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'JSXSpreadAttribute'))
        var.get(u'node').put(u'name', var.get(u"this").callprop(u'jsxParseNamespacedName'))
        var.get(u'node').put(u'value', (var.get(u"this").callprop(u'jsxParseAttributeValue') if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'eq')) else var.get(u"null")))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'JSXAttribute'))
    PyJs_anonymous_3211_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseAttribute', PyJs_anonymous_3211_)
    @Js
    def PyJs_anonymous_3212_(startPos, startLoc, this, arguments, var=var):
        var = Scope({u'this':this, u'startPos':startPos, u'arguments':arguments, u'startLoc':startLoc}, var)
        var.registers([u'node', u'startPos', u'startLoc'])
        var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
        var.get(u'node').put(u'attributes', Js([]))
        var.get(u'node').put(u'name', var.get(u"this").callprop(u'jsxParseElementName'))
        while (var.get(u"this").callprop(u'match', var.get(u'types').get(u'slash')).neg() and var.get(u"this").callprop(u'match', var.get(u'types').get(u'jsxTagEnd')).neg()):
            var.get(u'node').get(u'attributes').callprop(u'push', var.get(u"this").callprop(u'jsxParseAttribute'))
        var.get(u'node').put(u'selfClosing', var.get(u"this").callprop(u'eat', var.get(u'types').get(u'slash')))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'jsxTagEnd'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'JSXOpeningElement'))
    PyJs_anonymous_3212_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseOpeningElementAt', PyJs_anonymous_3212_)
    @Js
    def PyJs_anonymous_3213_(startPos, startLoc, this, arguments, var=var):
        var = Scope({u'this':this, u'startPos':startPos, u'arguments':arguments, u'startLoc':startLoc}, var)
        var.registers([u'node', u'startPos', u'startLoc'])
        var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
        var.get(u'node').put(u'name', var.get(u"this").callprop(u'jsxParseElementName'))
        var.get(u"this").callprop(u'expect', var.get(u'types').get(u'jsxTagEnd'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'JSXClosingElement'))
    PyJs_anonymous_3213_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseClosingElementAt', PyJs_anonymous_3213_)
    @Js
    def PyJs_anonymous_3214_(startPos, startLoc, this, arguments, var=var):
        var = Scope({u'this':this, u'startPos':startPos, u'arguments':arguments, u'startLoc':startLoc}, var)
        var.registers([u'node', u'openingElement', u'closingElement', u'startLoc', u'startPos', u'children'])
        var.put(u'node', var.get(u"this").callprop(u'startNodeAt', var.get(u'startPos'), var.get(u'startLoc')))
        var.put(u'children', Js([]))
        var.put(u'openingElement', var.get(u"this").callprop(u'jsxParseOpeningElementAt', var.get(u'startPos'), var.get(u'startLoc')))
        var.put(u'closingElement', var.get(u"null"))
        if var.get(u'openingElement').get(u'selfClosing').neg():
            class JS_CONTINUE_LABEL_636f6e74656e7473(Exception): pass
            class JS_BREAK_LABEL_636f6e74656e7473(Exception): pass
            try:
                #for JS loop
                
                while 1:
                    try:
                        while 1:
                            SWITCHED = False
                            CONDITION = (var.get(u"this").get(u'state').get(u'type'))
                            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'jsxTagStart')):
                                SWITCHED = True
                                var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
                                var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
                                var.get(u"this").callprop(u'next')
                                if var.get(u"this").callprop(u'eat', var.get(u'types').get(u'slash')):
                                    var.put(u'closingElement', var.get(u"this").callprop(u'jsxParseClosingElementAt', var.get(u'startPos'), var.get(u'startLoc')))
                                    raise JS_BREAK_LABEL_636f6e74656e7473("Breaked")
                                var.get(u'children').callprop(u'push', var.get(u"this").callprop(u'jsxParseElementAt', var.get(u'startPos'), var.get(u'startLoc')))
                                break
                            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'jsxText')):
                                SWITCHED = True
                                var.get(u'children').callprop(u'push', var.get(u"this").callprop(u'parseExprAtom'))
                                break
                            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'types').get(u'braceL')):
                                SWITCHED = True
                                if PyJsStrictEq(var.get(u"this").callprop(u'lookahead').get(u'type'),var.get(u'types').get(u'ellipsis')):
                                    var.get(u'children').callprop(u'push', var.get(u"this").callprop(u'jsxParseSpreadChild'))
                                else:
                                    var.get(u'children').callprop(u'push', var.get(u"this").callprop(u'jsxParseExpressionContainer'))
                                break
                            if True:
                                SWITCHED = True
                                var.get(u"this").callprop(u'unexpected')
                            SWITCHED = True
                            break
                    
                    except JS_CONTINUE_LABEL_636f6e74656e7473:
                        pass
            except JS_BREAK_LABEL_636f6e74656e7473:
                pass
            if PyJsStrictNeq(var.get(u'getQualifiedJSXName')(var.get(u'closingElement').get(u'name')),var.get(u'getQualifiedJSXName')(var.get(u'openingElement').get(u'name'))):
                var.get(u"this").callprop(u'raise', var.get(u'closingElement').get(u'start'), ((Js(u'Expected corresponding JSX closing tag for <')+var.get(u'getQualifiedJSXName')(var.get(u'openingElement').get(u'name')))+Js(u'>')))
        var.get(u'node').put(u'openingElement', var.get(u'openingElement'))
        var.get(u'node').put(u'closingElement', var.get(u'closingElement'))
        var.get(u'node').put(u'children', var.get(u'children'))
        if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'relational')) and PyJsStrictEq(var.get(u"this").get(u'state').get(u'value'),Js(u'<'))):
            var.get(u"this").callprop(u'raise', var.get(u"this").get(u'state').get(u'start'), Js(u'Adjacent JSX elements must be wrapped in an enclosing tag'))
        return var.get(u"this").callprop(u'finishNode', var.get(u'node'), Js(u'JSXElement'))
    PyJs_anonymous_3214_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseElementAt', PyJs_anonymous_3214_)
    @Js
    def PyJs_anonymous_3215_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'startPos', u'startLoc'])
        var.put(u'startPos', var.get(u"this").get(u'state').get(u'start'))
        var.put(u'startLoc', var.get(u"this").get(u'state').get(u'startLoc'))
        var.get(u"this").callprop(u'next')
        return var.get(u"this").callprop(u'jsxParseElementAt', var.get(u'startPos'), var.get(u'startLoc'))
    PyJs_anonymous_3215_._set_name(u'anonymous')
    var.get(u'pp$8').put(u'jsxParseElement', PyJs_anonymous_3215_)
    @Js
    def PyJs_anonymous_3216_(instance, this, arguments, var=var):
        var = Scope({u'this':this, u'instance':instance, u'arguments':arguments}, var)
        var.registers([u'instance'])
        @Js
        def PyJs_anonymous_3217_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3218_(refShortHandDefaultPos, this, arguments, var=var):
                var = Scope({u'this':this, u'refShortHandDefaultPos':refShortHandDefaultPos, u'arguments':arguments}, var)
                var.registers([u'node', u'refShortHandDefaultPos'])
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'jsxText')):
                    var.put(u'node', var.get(u"this").callprop(u'parseLiteral', var.get(u"this").get(u'state').get(u'value'), Js(u'JSXText')))
                    var.get(u'node').put(u'extra', var.get(u"null"))
                    return var.get(u'node')
                else:
                    if var.get(u"this").callprop(u'match', var.get(u'types').get(u'jsxTagStart')):
                        return var.get(u"this").callprop(u'jsxParseElement')
                    else:
                        return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'refShortHandDefaultPos'))
            PyJs_anonymous_3218_._set_name(u'anonymous')
            return PyJs_anonymous_3218_
        PyJs_anonymous_3217_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'parseExprAtom'), PyJs_anonymous_3217_)
        @Js
        def PyJs_anonymous_3219_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3220_(code, this, arguments, var=var):
                var = Scope({u'this':this, u'code':code, u'arguments':arguments}, var)
                var.registers([u'code', u'context'])
                var.put(u'context', var.get(u"this").callprop(u'curContext'))
                if PyJsStrictEq(var.get(u'context'),var.get(u'types$1').get(u'j_expr')):
                    return var.get(u"this").callprop(u'jsxReadToken')
                if (PyJsStrictEq(var.get(u'context'),var.get(u'types$1').get(u'j_oTag')) or PyJsStrictEq(var.get(u'context'),var.get(u'types$1').get(u'j_cTag'))):
                    if var.get(u'isIdentifierStart')(var.get(u'code')):
                        return var.get(u"this").callprop(u'jsxReadWord')
                    if PyJsStrictEq(var.get(u'code'),Js(62.0)):
                        var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                        return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'jsxTagEnd'))
                    if ((PyJsStrictEq(var.get(u'code'),Js(34.0)) or PyJsStrictEq(var.get(u'code'),Js(39.0))) and PyJsStrictEq(var.get(u'context'),var.get(u'types$1').get(u'j_oTag'))):
                        return var.get(u"this").callprop(u'jsxReadString', var.get(u'code'))
                if (PyJsStrictEq(var.get(u'code'),Js(60.0)) and var.get(u"this").get(u'state').get(u'exprAllowed')):
                    var.get(u"this").get(u'state').put(u'pos',Js(var.get(u"this").get(u'state').get(u'pos').to_number())+Js(1))
                    return var.get(u"this").callprop(u'finishToken', var.get(u'types').get(u'jsxTagStart'))
                return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'code'))
            PyJs_anonymous_3220_._set_name(u'anonymous')
            return PyJs_anonymous_3220_
        PyJs_anonymous_3219_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'readToken'), PyJs_anonymous_3219_)
        @Js
        def PyJs_anonymous_3221_(inner, this, arguments, var=var):
            var = Scope({u'this':this, u'inner':inner, u'arguments':arguments}, var)
            var.registers([u'inner'])
            @Js
            def PyJs_anonymous_3222_(prevType, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'prevType':prevType}, var)
                var.registers([u'curContext', u'prevType'])
                if var.get(u"this").callprop(u'match', var.get(u'types').get(u'braceL')):
                    var.put(u'curContext', var.get(u"this").callprop(u'curContext'))
                    if PyJsStrictEq(var.get(u'curContext'),var.get(u'types$1').get(u'j_oTag')):
                        var.get(u"this").get(u'state').get(u'context').callprop(u'push', var.get(u'types$1').get(u'braceExpression'))
                    else:
                        if PyJsStrictEq(var.get(u'curContext'),var.get(u'types$1').get(u'j_expr')):
                            var.get(u"this").get(u'state').get(u'context').callprop(u'push', var.get(u'types$1').get(u'templateQuasi'))
                        else:
                            var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'prevType'))
                    var.get(u"this").get(u'state').put(u'exprAllowed', var.get(u'true'))
                else:
                    if (var.get(u"this").callprop(u'match', var.get(u'types').get(u'slash')) and PyJsStrictEq(var.get(u'prevType'),var.get(u'types').get(u'jsxTagStart'))):
                        var.get(u"this").get(u'state').get(u'context').put(u'length', Js(2.0), u'-')
                        var.get(u"this").get(u'state').get(u'context').callprop(u'push', var.get(u'types$1').get(u'j_cTag'))
                        var.get(u"this").get(u'state').put(u'exprAllowed', Js(False))
                    else:
                        return var.get(u'inner').callprop(u'call', var.get(u"this"), var.get(u'prevType'))
            PyJs_anonymous_3222_._set_name(u'anonymous')
            return PyJs_anonymous_3222_
        PyJs_anonymous_3221_._set_name(u'anonymous')
        var.get(u'instance').callprop(u'extend', Js(u'updateContext'), PyJs_anonymous_3221_)
    PyJs_anonymous_3216_._set_name(u'anonymous')
    var.put(u'jsxPlugin', PyJs_anonymous_3216_)
    var.get(u'plugins').put(u'flow', var.get(u'flowPlugin'))
    var.get(u'plugins').put(u'jsx', var.get(u'jsxPlugin'))
    pass
    var.get(u'exports').put(u'parse', var.get(u'parse$1'))
    var.get(u'exports').put(u'tokTypes', var.get(u'types'))
PyJs_anonymous_2842_._set_name(u'anonymous')
PyJs_Object_3223_ = Js({})
@Js
def PyJs_anonymous_3224_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'maybeMatch', u'require', u'module', u'range', u'balanced'])
    @Js
    def PyJsHoisted_balanced_(a, b, str, this, arguments, var=var):
        var = Scope({u'a':a, u'this':this, u'b':b, u'arguments':arguments, u'str':str}, var)
        var.registers([u'a', u'r', u'b', u'str'])
        if var.get(u'a').instanceof(var.get(u'RegExp')):
            var.put(u'a', var.get(u'maybeMatch')(var.get(u'a'), var.get(u'str')))
        if var.get(u'b').instanceof(var.get(u'RegExp')):
            var.put(u'b', var.get(u'maybeMatch')(var.get(u'b'), var.get(u'str')))
        var.put(u'r', var.get(u'range')(var.get(u'a'), var.get(u'b'), var.get(u'str')))
        PyJs_Object_3225_ = Js({u'start':var.get(u'r').get(u'0'),u'end':var.get(u'r').get(u'1'),u'pre':var.get(u'str').callprop(u'slice', Js(0.0), var.get(u'r').get(u'0')),u'body':var.get(u'str').callprop(u'slice', (var.get(u'r').get(u'0')+var.get(u'a').get(u'length')), var.get(u'r').get(u'1')),u'post':var.get(u'str').callprop(u'slice', (var.get(u'r').get(u'1')+var.get(u'b').get(u'length')))})
        return (var.get(u'r') and PyJs_Object_3225_)
    PyJsHoisted_balanced_.func_name = u'balanced'
    var.put(u'balanced', PyJsHoisted_balanced_)
    @Js
    def PyJsHoisted_range_(a, b, str, this, arguments, var=var):
        var = Scope({u'a':a, u'this':this, u'b':b, u'arguments':arguments, u'str':str}, var)
        var.registers([u'a', u'right', u'ai', u'beg', u'bi', u'i', u'b', u'result', u'str', u'begs', u'left'])
        pass
        var.put(u'ai', var.get(u'str').callprop(u'indexOf', var.get(u'a')))
        var.put(u'bi', var.get(u'str').callprop(u'indexOf', var.get(u'b'), (var.get(u'ai')+Js(1.0))))
        var.put(u'i', var.get(u'ai'))
        if ((var.get(u'ai')>=Js(0.0)) and (var.get(u'bi')>Js(0.0))):
            var.put(u'begs', Js([]))
            var.put(u'left', var.get(u'str').get(u'length'))
            while ((var.get(u'i')>=Js(0.0)) and var.get(u'result').neg()):
                if (var.get(u'i')==var.get(u'ai')):
                    var.get(u'begs').callprop(u'push', var.get(u'i'))
                    var.put(u'ai', var.get(u'str').callprop(u'indexOf', var.get(u'a'), (var.get(u'i')+Js(1.0))))
                else:
                    if (var.get(u'begs').get(u'length')==Js(1.0)):
                        var.put(u'result', Js([var.get(u'begs').callprop(u'pop'), var.get(u'bi')]))
                    else:
                        var.put(u'beg', var.get(u'begs').callprop(u'pop'))
                        if (var.get(u'beg')<var.get(u'left')):
                            var.put(u'left', var.get(u'beg'))
                            var.put(u'right', var.get(u'bi'))
                        var.put(u'bi', var.get(u'str').callprop(u'indexOf', var.get(u'b'), (var.get(u'i')+Js(1.0))))
                var.put(u'i', (var.get(u'ai') if ((var.get(u'ai')<var.get(u'bi')) and (var.get(u'ai')>=Js(0.0))) else var.get(u'bi')))
            if var.get(u'begs').get(u'length'):
                var.put(u'result', Js([var.get(u'left'), var.get(u'right')]))
        return var.get(u'result')
    PyJsHoisted_range_.func_name = u'range'
    var.put(u'range', PyJsHoisted_range_)
    @Js
    def PyJsHoisted_maybeMatch_(reg, str, this, arguments, var=var):
        var = Scope({u'this':this, u'reg':reg, u'str':str, u'arguments':arguments}, var)
        var.registers([u'm', u'reg', u'str'])
        var.put(u'm', var.get(u'str').callprop(u'match', var.get(u'reg')))
        return (var.get(u'm').get(u'0') if var.get(u'm') else var.get(u"null"))
    PyJsHoisted_maybeMatch_.func_name = u'maybeMatch'
    var.put(u'maybeMatch', PyJsHoisted_maybeMatch_)
    var.get(u'module').put(u'exports', var.get(u'balanced'))
    pass
    pass
    var.get(u'balanced').put(u'range', var.get(u'range'))
    pass
PyJs_anonymous_3224_._set_name(u'anonymous')
PyJs_Object_3226_ = Js({})
@Js
def PyJs_anonymous_3227_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'escComma', u'escapeBraces', u'exports', u'escOpen', u'escPeriod', u'module', u'expandTop', u'escClose', u'isPadded', u'numeric', u'lte', u'unescapeBraces', u'concatMap', u'embrace', u'expand', u'escSlash', u'balanced', u'parseCommaParts', u'require', u'identity', u'gte'])
    @Js
    def PyJsHoisted_escapeBraces_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'str'])
        return var.get(u'str').callprop(u'split', Js(u'\\\\')).callprop(u'join', var.get(u'escSlash')).callprop(u'split', Js(u'\\{')).callprop(u'join', var.get(u'escOpen')).callprop(u'split', Js(u'\\}')).callprop(u'join', var.get(u'escClose')).callprop(u'split', Js(u'\\,')).callprop(u'join', var.get(u'escComma')).callprop(u'split', Js(u'\\.')).callprop(u'join', var.get(u'escPeriod'))
    PyJsHoisted_escapeBraces_.func_name = u'escapeBraces'
    var.put(u'escapeBraces', PyJsHoisted_escapeBraces_)
    @Js
    def PyJsHoisted_lte_(i, y, this, arguments, var=var):
        var = Scope({u'i':i, u'y':y, u'this':this, u'arguments':arguments}, var)
        var.registers([u'i', u'y'])
        return (var.get(u'i')<=var.get(u'y'))
    PyJsHoisted_lte_.func_name = u'lte'
    var.put(u'lte', PyJsHoisted_lte_)
    @Js
    def PyJsHoisted_expandTop_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'str'])
        if var.get(u'str').neg():
            return Js([])
        return var.get(u'expand')(var.get(u'escapeBraces')(var.get(u'str')), var.get(u'true')).callprop(u'map', var.get(u'unescapeBraces'))
    PyJsHoisted_expandTop_.func_name = u'expandTop'
    var.put(u'expandTop', PyJsHoisted_expandTop_)
    @Js
    def PyJsHoisted_numeric_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'str'])
        return (var.get(u'parseInt')(var.get(u'str'), Js(10.0)) if (var.get(u'parseInt')(var.get(u'str'), Js(10.0))==var.get(u'str')) else var.get(u'str').callprop(u'charCodeAt', Js(0.0)))
    PyJsHoisted_numeric_.func_name = u'numeric'
    var.put(u'numeric', PyJsHoisted_numeric_)
    @Js
    def PyJsHoisted_unescapeBraces_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'str'])
        return var.get(u'str').callprop(u'split', var.get(u'escSlash')).callprop(u'join', Js(u'\\')).callprop(u'split', var.get(u'escOpen')).callprop(u'join', Js(u'{')).callprop(u'split', var.get(u'escClose')).callprop(u'join', Js(u'}')).callprop(u'split', var.get(u'escComma')).callprop(u'join', Js(u',')).callprop(u'split', var.get(u'escPeriod')).callprop(u'join', Js(u'.'))
    PyJsHoisted_unescapeBraces_.func_name = u'unescapeBraces'
    var.put(u'unescapeBraces', PyJsHoisted_unescapeBraces_)
    @Js
    def PyJsHoisted_embrace_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'str'])
        return ((Js(u'{')+var.get(u'str'))+Js(u'}'))
    PyJsHoisted_embrace_.func_name = u'embrace'
    var.put(u'embrace', PyJsHoisted_embrace_)
    @Js
    def PyJsHoisted_expand_(str, isTop, this, arguments, var=var):
        var = Scope({u'this':this, u'isTop':isTop, u'arguments':arguments, u'str':str}, var)
        var.registers([u'pre', u'm', u'isTop', u'need', u'incr', u'width', u'pad', u'test', u'isAlphaSequence', u'isSequence', u'expansion', u'N', u'post', u'c', u'isOptions', u'reverse', u'i', u'k', u'j', u'expansions', u'n', u'str', u'isNumericSequence', u'y', u'x', u'z'])
        var.put(u'expansions', Js([]))
        var.put(u'm', var.get(u'balanced')(Js(u'{'), Js(u'}'), var.get(u'str')))
        if (var.get(u'm').neg() or JsRegExp(u'/\\$$/').callprop(u'test', var.get(u'm').get(u'pre'))):
            return Js([var.get(u'str')])
        var.put(u'isNumericSequence', JsRegExp(u'/^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/').callprop(u'test', var.get(u'm').get(u'body')))
        var.put(u'isAlphaSequence', JsRegExp(u'/^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/').callprop(u'test', var.get(u'm').get(u'body')))
        var.put(u'isSequence', (var.get(u'isNumericSequence') or var.get(u'isAlphaSequence')))
        var.put(u'isOptions', JsRegExp(u'/^(.*,)+(.+)?$/').callprop(u'test', var.get(u'm').get(u'body')))
        if (var.get(u'isSequence').neg() and var.get(u'isOptions').neg()):
            if var.get(u'm').get(u'post').callprop(u'match', JsRegExp(u'/,.*\\}/')):
                var.put(u'str', ((((var.get(u'm').get(u'pre')+Js(u'{'))+var.get(u'm').get(u'body'))+var.get(u'escClose'))+var.get(u'm').get(u'post')))
                return var.get(u'expand')(var.get(u'str'))
            return Js([var.get(u'str')])
        pass
        if var.get(u'isSequence'):
            var.put(u'n', var.get(u'm').get(u'body').callprop(u'split', JsRegExp(u'/\\.\\./')))
        else:
            var.put(u'n', var.get(u'parseCommaParts')(var.get(u'm').get(u'body')))
            if PyJsStrictEq(var.get(u'n').get(u'length'),Js(1.0)):
                var.put(u'n', var.get(u'expand')(var.get(u'n').get(u'0'), Js(False)).callprop(u'map', var.get(u'embrace')))
                if PyJsStrictEq(var.get(u'n').get(u'length'),Js(1.0)):
                    var.put(u'post', (var.get(u'expand')(var.get(u'm').get(u'post'), Js(False)) if var.get(u'm').get(u'post').get(u'length') else Js([Js(u'')])))
                    @Js
                    def PyJs_anonymous_3228_(p, this, arguments, var=var):
                        var = Scope({u'this':this, u'p':p, u'arguments':arguments}, var)
                        var.registers([u'p'])
                        return ((var.get(u'm').get(u'pre')+var.get(u'n').get(u'0'))+var.get(u'p'))
                    PyJs_anonymous_3228_._set_name(u'anonymous')
                    return var.get(u'post').callprop(u'map', PyJs_anonymous_3228_)
        var.put(u'pre', var.get(u'm').get(u'pre'))
        var.put(u'post', (var.get(u'expand')(var.get(u'm').get(u'post'), Js(False)) if var.get(u'm').get(u'post').get(u'length') else Js([Js(u'')])))
        pass
        if var.get(u'isSequence'):
            var.put(u'x', var.get(u'numeric')(var.get(u'n').get(u'0')))
            var.put(u'y', var.get(u'numeric')(var.get(u'n').get(u'1')))
            var.put(u'width', var.get(u'Math').callprop(u'max', var.get(u'n').get(u'0').get(u'length'), var.get(u'n').get(u'1').get(u'length')))
            var.put(u'incr', (var.get(u'Math').callprop(u'abs', var.get(u'numeric')(var.get(u'n').get(u'2'))) if (var.get(u'n').get(u'length')==Js(3.0)) else Js(1.0)))
            var.put(u'test', var.get(u'lte'))
            var.put(u'reverse', (var.get(u'y')<var.get(u'x')))
            if var.get(u'reverse'):
                var.put(u'incr', (-Js(1.0)), u'*')
                var.put(u'test', var.get(u'gte'))
            var.put(u'pad', var.get(u'n').callprop(u'some', var.get(u'isPadded')))
            var.put(u'N', Js([]))
            #for JS loop
            var.put(u'i', var.get(u'x'))
            while var.get(u'test')(var.get(u'i'), var.get(u'y')):
                try:
                    pass
                    if var.get(u'isAlphaSequence'):
                        var.put(u'c', var.get(u'String').callprop(u'fromCharCode', var.get(u'i')))
                        if PyJsStrictEq(var.get(u'c'),Js(u'\\')):
                            var.put(u'c', Js(u''))
                    else:
                        var.put(u'c', var.get(u'String')(var.get(u'i')))
                        if var.get(u'pad'):
                            var.put(u'need', (var.get(u'width')-var.get(u'c').get(u'length')))
                            if (var.get(u'need')>Js(0.0)):
                                var.put(u'z', var.get(u'Array').create((var.get(u'need')+Js(1.0))).callprop(u'join', Js(u'0')))
                                if (var.get(u'i')<Js(0.0)):
                                    var.put(u'c', ((Js(u'-')+var.get(u'z'))+var.get(u'c').callprop(u'slice', Js(1.0))))
                                else:
                                    var.put(u'c', (var.get(u'z')+var.get(u'c')))
                    var.get(u'N').callprop(u'push', var.get(u'c'))
                finally:
                        var.put(u'i', var.get(u'incr'), u'+')
        else:
            @Js
            def PyJs_anonymous_3229_(el, this, arguments, var=var):
                var = Scope({u'this':this, u'el':el, u'arguments':arguments}, var)
                var.registers([u'el'])
                return var.get(u'expand')(var.get(u'el'), Js(False))
            PyJs_anonymous_3229_._set_name(u'anonymous')
            var.put(u'N', var.get(u'concatMap')(var.get(u'n'), PyJs_anonymous_3229_))
        #for JS loop
        var.put(u'j', Js(0.0))
        while (var.get(u'j')<var.get(u'N').get(u'length')):
            try:
                #for JS loop
                var.put(u'k', Js(0.0))
                while (var.get(u'k')<var.get(u'post').get(u'length')):
                    try:
                        var.put(u'expansion', ((var.get(u'pre')+var.get(u'N').get(var.get(u'j')))+var.get(u'post').get(var.get(u'k'))))
                        if ((var.get(u'isTop').neg() or var.get(u'isSequence')) or var.get(u'expansion')):
                            var.get(u'expansions').callprop(u'push', var.get(u'expansion'))
                    finally:
                            (var.put(u'k',Js(var.get(u'k').to_number())+Js(1))-Js(1))
            finally:
                    (var.put(u'j',Js(var.get(u'j').to_number())+Js(1))-Js(1))
        return var.get(u'expansions')
    PyJsHoisted_expand_.func_name = u'expand'
    var.put(u'expand', PyJsHoisted_expand_)
    @Js
    def PyJsHoisted_isPadded_(el, this, arguments, var=var):
        var = Scope({u'this':this, u'el':el, u'arguments':arguments}, var)
        var.registers([u'el'])
        return JsRegExp(u'/^-?0\\d/').callprop(u'test', var.get(u'el'))
    PyJsHoisted_isPadded_.func_name = u'isPadded'
    var.put(u'isPadded', PyJsHoisted_isPadded_)
    @Js
    def PyJsHoisted_parseCommaParts_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'pre', u'body', u'postParts', u'm', u'p', u'parts', u'str', u'post'])
        if var.get(u'str').neg():
            return Js([Js(u'')])
        var.put(u'parts', Js([]))
        var.put(u'm', var.get(u'balanced')(Js(u'{'), Js(u'}'), var.get(u'str')))
        if var.get(u'm').neg():
            return var.get(u'str').callprop(u'split', Js(u','))
        var.put(u'pre', var.get(u'm').get(u'pre'))
        var.put(u'body', var.get(u'm').get(u'body'))
        var.put(u'post', var.get(u'm').get(u'post'))
        var.put(u'p', var.get(u'pre').callprop(u'split', Js(u',')))
        var.get(u'p').put((var.get(u'p').get(u'length')-Js(1.0)), ((Js(u'{')+var.get(u'body'))+Js(u'}')), u'+')
        var.put(u'postParts', var.get(u'parseCommaParts')(var.get(u'post')))
        if var.get(u'post').get(u'length'):
            var.get(u'p').put((var.get(u'p').get(u'length')-Js(1.0)), var.get(u'postParts').callprop(u'shift'), u'+')
            var.get(u'p').get(u'push').callprop(u'apply', var.get(u'p'), var.get(u'postParts'))
        var.get(u'parts').get(u'push').callprop(u'apply', var.get(u'parts'), var.get(u'p'))
        return var.get(u'parts')
    PyJsHoisted_parseCommaParts_.func_name = u'parseCommaParts'
    var.put(u'parseCommaParts', PyJsHoisted_parseCommaParts_)
    @Js
    def PyJsHoisted_identity_(e, this, arguments, var=var):
        var = Scope({u'this':this, u'e':e, u'arguments':arguments}, var)
        var.registers([u'e'])
        return var.get(u'e')
    PyJsHoisted_identity_.func_name = u'identity'
    var.put(u'identity', PyJsHoisted_identity_)
    @Js
    def PyJsHoisted_gte_(i, y, this, arguments, var=var):
        var = Scope({u'i':i, u'y':y, u'this':this, u'arguments':arguments}, var)
        var.registers([u'i', u'y'])
        return (var.get(u'i')>=var.get(u'y'))
    PyJsHoisted_gte_.func_name = u'gte'
    var.put(u'gte', PyJsHoisted_gte_)
    var.put(u'concatMap', var.get(u'require')(Js(u'concat-map')))
    var.put(u'balanced', var.get(u'require')(Js(u'balanced-match')))
    var.get(u'module').put(u'exports', var.get(u'expandTop'))
    var.put(u'escSlash', ((Js(u'\x00SLASH')+var.get(u'Math').callprop(u'random'))+Js(u'\x00')))
    var.put(u'escOpen', ((Js(u'\x00OPEN')+var.get(u'Math').callprop(u'random'))+Js(u'\x00')))
    var.put(u'escClose', ((Js(u'\x00CLOSE')+var.get(u'Math').callprop(u'random'))+Js(u'\x00')))
    var.put(u'escComma', ((Js(u'\x00COMMA')+var.get(u'Math').callprop(u'random'))+Js(u'\x00')))
    var.put(u'escPeriod', ((Js(u'\x00PERIOD')+var.get(u'Math').callprop(u'random'))+Js(u'\x00')))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_3227_._set_name(u'anonymous')
PyJs_Object_3230_ = Js({u'balanced-match':Js(263.0),u'concat-map':Js(266.0)})
@Js
def PyJs_anonymous_3231_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_3232_(process, this, arguments, var=var):
        var = Scope({u'process':process, u'this':this, u'arguments':arguments}, var)
        var.registers([u'styles', u'escapeStringRegexp', u'proto', u'process', u'applyStyle', u'hasAnsi', u'isSimpleWindowsTerm', u'Chalk', u'init', u'build', u'stripAnsi', u'ansiStyles', u'supportsColor', u'defineProps'])
        @Js
        def PyJsHoisted_Chalk_(options, this, arguments, var=var):
            var = Scope({u'this':this, u'options':options, u'arguments':arguments}, var)
            var.registers([u'options'])
            var.get(u"this").put(u'enabled', (var.get(u'supportsColor') if (var.get(u'options').neg() or PyJsStrictEq(var.get(u'options').get(u'enabled'),var.get(u'undefined'))) else var.get(u'options').get(u'enabled')))
        PyJsHoisted_Chalk_.func_name = u'Chalk'
        var.put(u'Chalk', PyJsHoisted_Chalk_)
        @Js
        def PyJsHoisted_applyStyle_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'a', u'nestedStyles', u'i', u'args', u'originalDim', u'code', u'str', u'argsLen'])
            var.put(u'args', var.get(u'arguments'))
            var.put(u'argsLen', var.get(u'args').get(u'length'))
            var.put(u'str', (PyJsStrictNeq(var.get(u'argsLen'),Js(0.0)) and var.get(u'String')(var.get(u'arguments').get(u'0'))))
            if (var.get(u'argsLen')>Js(1.0)):
                #for JS loop
                var.put(u'a', Js(1.0))
                while (var.get(u'a')<var.get(u'argsLen')):
                    try:
                        var.put(u'str', (Js(u' ')+var.get(u'args').get(var.get(u'a'))), u'+')
                    finally:
                            (var.put(u'a',Js(var.get(u'a').to_number())+Js(1))-Js(1))
            if (var.get(u"this").get(u'enabled').neg() or var.get(u'str').neg()):
                return var.get(u'str')
            var.put(u'nestedStyles', var.get(u"this").get(u'_styles'))
            var.put(u'i', var.get(u'nestedStyles').get(u'length'))
            var.put(u'originalDim', var.get(u'ansiStyles').get(u'dim').get(u'open'))
            if (var.get(u'isSimpleWindowsTerm') and (PyJsStrictNeq(var.get(u'nestedStyles').callprop(u'indexOf', Js(u'gray')),(-Js(1.0))) or PyJsStrictNeq(var.get(u'nestedStyles').callprop(u'indexOf', Js(u'grey')),(-Js(1.0))))):
                var.get(u'ansiStyles').get(u'dim').put(u'open', Js(u''))
            while (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1)):
                var.put(u'code', var.get(u'ansiStyles').get(var.get(u'nestedStyles').get(var.get(u'i'))))
                var.put(u'str', ((var.get(u'code').get(u'open')+var.get(u'str').callprop(u'replace', var.get(u'code').get(u'closeRe'), var.get(u'code').get(u'open')))+var.get(u'code').get(u'close')))
            var.get(u'ansiStyles').get(u'dim').put(u'open', var.get(u'originalDim'))
            return var.get(u'str')
        PyJsHoisted_applyStyle_.func_name = u'applyStyle'
        var.put(u'applyStyle', PyJsHoisted_applyStyle_)
        @Js
        def PyJsHoisted_init_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'ret'])
            PyJs_Object_3240_ = Js({})
            var.put(u'ret', PyJs_Object_3240_)
            @Js
            def PyJs_anonymous_3241_(name, this, arguments, var=var):
                var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
                var.registers([u'name'])
                @Js
                def PyJs_anonymous_3243_(this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments}, var)
                    var.registers([])
                    return var.get(u'build').callprop(u'call', var.get(u"this"), Js([var.get(u'name')]))
                PyJs_anonymous_3243_._set_name(u'anonymous')
                PyJs_Object_3242_ = Js({u'get':PyJs_anonymous_3243_})
                var.get(u'ret').put(var.get(u'name'), PyJs_Object_3242_)
            PyJs_anonymous_3241_._set_name(u'anonymous')
            var.get(u'Object').callprop(u'keys', var.get(u'styles')).callprop(u'forEach', PyJs_anonymous_3241_)
            return var.get(u'ret')
        PyJsHoisted_init_.func_name = u'init'
        var.put(u'init', PyJsHoisted_init_)
        @Js
        def PyJsHoisted_build_(_styles, this, arguments, var=var):
            var = Scope({u'this':this, u'_styles':_styles, u'arguments':arguments}, var)
            var.registers([u'builder', u'_styles'])
            @Js
            def PyJs_anonymous_3239_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return var.get(u'applyStyle').callprop(u'apply', var.get(u'builder'), var.get(u'arguments'))
            PyJs_anonymous_3239_._set_name(u'anonymous')
            var.put(u'builder', PyJs_anonymous_3239_)
            var.get(u'builder').put(u'_styles', var.get(u'_styles'))
            var.get(u'builder').put(u'enabled', var.get(u"this").get(u'enabled'))
            var.get(u'builder').put(u'__proto__', var.get(u'proto'))
            return var.get(u'builder')
        PyJsHoisted_build_.func_name = u'build'
        var.put(u'build', PyJsHoisted_build_)
        Js(u'use strict')
        var.put(u'escapeStringRegexp', var.get(u'require')(Js(u'escape-string-regexp')))
        var.put(u'ansiStyles', var.get(u'require')(Js(u'ansi-styles')))
        var.put(u'stripAnsi', var.get(u'require')(Js(u'strip-ansi')))
        var.put(u'hasAnsi', var.get(u'require')(Js(u'has-ansi')))
        var.put(u'supportsColor', var.get(u'require')(Js(u'supports-color')))
        var.put(u'defineProps', var.get(u'Object').get(u'defineProperties'))
        var.put(u'isSimpleWindowsTerm', (PyJsStrictEq(var.get(u'process').get(u'platform'),Js(u'win32')) and JsRegExp(u'/^xterm/i').callprop(u'test', var.get(u'process').get(u'env').get(u'TERM')).neg()))
        pass
        if var.get(u'isSimpleWindowsTerm'):
            var.get(u'ansiStyles').get(u'blue').put(u'open', Js(u'\x1b[94m'))
        @Js
        def PyJs_anonymous_3233_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'ret'])
            PyJs_Object_3234_ = Js({})
            var.put(u'ret', PyJs_Object_3234_)
            @Js
            def PyJs_anonymous_3235_(key, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
                var.registers([u'key'])
                var.get(u'ansiStyles').get(var.get(u'key')).put(u'closeRe', var.get(u'RegExp').create(var.get(u'escapeStringRegexp')(var.get(u'ansiStyles').get(var.get(u'key')).get(u'close')), Js(u'g')))
                @Js
                def PyJs_anonymous_3237_(this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments}, var)
                    var.registers([])
                    return var.get(u'build').callprop(u'call', var.get(u"this"), var.get(u"this").get(u'_styles').callprop(u'concat', var.get(u'key')))
                PyJs_anonymous_3237_._set_name(u'anonymous')
                PyJs_Object_3236_ = Js({u'get':PyJs_anonymous_3237_})
                var.get(u'ret').put(var.get(u'key'), PyJs_Object_3236_)
            PyJs_anonymous_3235_._set_name(u'anonymous')
            var.get(u'Object').callprop(u'keys', var.get(u'ansiStyles')).callprop(u'forEach', PyJs_anonymous_3235_)
            return var.get(u'ret')
        PyJs_anonymous_3233_._set_name(u'anonymous')
        var.put(u'styles', PyJs_anonymous_3233_())
        @Js
        def PyJs_chalk_3238_(this, arguments, var=var):
            var = Scope({u'this':this, u'chalk':PyJs_chalk_3238_, u'arguments':arguments}, var)
            var.registers([])
            pass
        PyJs_chalk_3238_._set_name(u'chalk')
        var.put(u'proto', var.get(u'defineProps')(PyJs_chalk_3238_, var.get(u'styles')))
        pass
        pass
        pass
        var.get(u'defineProps')(var.get(u'Chalk').get(u'prototype'), var.get(u'init')())
        var.get(u'module').put(u'exports', var.get(u'Chalk').create())
        var.get(u'module').get(u'exports').put(u'styles', var.get(u'ansiStyles'))
        var.get(u'module').get(u'exports').put(u'hasColor', var.get(u'hasAnsi'))
        var.get(u'module').get(u'exports').put(u'stripColor', var.get(u'stripAnsi'))
        var.get(u'module').get(u'exports').put(u'supportsColor', var.get(u'supportsColor'))
    PyJs_anonymous_3232_._set_name(u'anonymous')
    PyJs_anonymous_3232_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')))
PyJs_anonymous_3231_._set_name(u'anonymous')
PyJs_Object_3244_ = Js({u'_process':Js(531.0),u'ansi-styles':Js(3.0),u'escape-string-regexp':Js(272.0),u'has-ansi':Js(279.0),u'strip-ansi':Js(520.0),u'supports-color':Js(521.0)})
@Js
def PyJs_anonymous_3245_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_3246_(xs, fn, this, arguments, var=var):
        var = Scope({u'this':this, u'xs':xs, u'arguments':arguments, u'fn':fn}, var)
        var.registers([u'i', u'res', u'xs', u'fn', u'x'])
        var.put(u'res', Js([]))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'xs').get(u'length')):
            try:
                var.put(u'x', var.get(u'fn')(var.get(u'xs').get(var.get(u'i')), var.get(u'i')))
                if var.get(u'isArray')(var.get(u'x')):
                    var.get(u'res').get(u'push').callprop(u'apply', var.get(u'res'), var.get(u'x'))
                else:
                    var.get(u'res').callprop(u'push', var.get(u'x'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'res')
    PyJs_anonymous_3246_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_3246_)
    @Js
    def PyJs_anonymous_3247_(xs, this, arguments, var=var):
        var = Scope({u'this':this, u'xs':xs, u'arguments':arguments}, var)
        var.registers([u'xs'])
        return PyJsStrictEq(var.get(u'Object').get(u'prototype').get(u'toString').callprop(u'call', var.get(u'xs')),Js(u'[object Array]'))
    PyJs_anonymous_3247_._set_name(u'anonymous')
    var.put(u'isArray', (var.get(u'Array').get(u'isArray') or PyJs_anonymous_3247_))
PyJs_anonymous_3245_._set_name(u'anonymous')
PyJs_Object_3248_ = Js({})
@Js
def PyJs_anonymous_3249_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_3250_(Buffer, this, arguments, var=var):
        var = Scope({u'Buffer':Buffer, u'this':this, u'arguments':arguments}, var)
        var.registers([u'fs', u'commentRx', u'Converter', u'Buffer', u'decodeBase64', u'stripComment', u'convertFromLargeSource', u'path', u'readFromFileMap', u'mapFileCommentRx'])
        @Js
        def PyJsHoisted_decodeBase64_(base64, this, arguments, var=var):
            var = Scope({u'this':this, u'base64':base64, u'arguments':arguments}, var)
            var.registers([u'base64'])
            return var.get(u'Buffer').create(var.get(u'base64'), Js(u'base64')).callprop(u'toString')
        PyJsHoisted_decodeBase64_.func_name = u'decodeBase64'
        var.put(u'decodeBase64', PyJsHoisted_decodeBase64_)
        @Js
        def PyJsHoisted_readFromFileMap_(sm, dir, this, arguments, var=var):
            var = Scope({u'this':this, u'dir':dir, u'sm':sm, u'arguments':arguments}, var)
            var.registers([u'r', u'dir', u'filepath', u'sm', u'filename'])
            var.put(u'r', var.get(u'mapFileCommentRx').callprop(u'exec', var.get(u'sm')))
            var.get(u'mapFileCommentRx').put(u'lastIndex', Js(0.0))
            var.put(u'filename', (var.get(u'r').get(u'1') or var.get(u'r').get(u'2')))
            var.put(u'filepath', var.get(u'path').callprop(u'resolve', var.get(u'dir'), var.get(u'filename')))
            try:
                return var.get(u'fs').callprop(u'readFileSync', var.get(u'filepath'), Js(u'utf8'))
            except PyJsException as PyJsTempException:
                PyJsHolder_65_62339762 = var.own.get(u'e')
                var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
                try:
                    PyJsTempException = JsToPyException(var.get(u'Error').create((((Js(u'An error occurred while trying to read the map file at ')+var.get(u'filepath'))+Js(u'\n'))+var.get(u'e'))))
                    raise PyJsTempException
                finally:
                    if PyJsHolder_65_62339762 is not None:
                        var.own[u'e'] = PyJsHolder_65_62339762
                    else:
                        del var.own[u'e']
                    del PyJsHolder_65_62339762
        PyJsHoisted_readFromFileMap_.func_name = u'readFromFileMap'
        var.put(u'readFromFileMap', PyJsHoisted_readFromFileMap_)
        @Js
        def PyJsHoisted_stripComment_(sm, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'sm':sm}, var)
            var.registers([u'sm'])
            return var.get(u'sm').callprop(u'split', Js(u',')).callprop(u'pop')
        PyJsHoisted_stripComment_.func_name = u'stripComment'
        var.put(u'stripComment', PyJsHoisted_stripComment_)
        @Js
        def PyJsHoisted_convertFromLargeSource_(content, this, arguments, var=var):
            var = Scope({u'content':content, u'this':this, u'arguments':arguments}, var)
            var.registers([u'i', u'content', u'line', u'lines'])
            var.put(u'lines', var.get(u'content').callprop(u'split', Js(u'\n')))
            pass
            #for JS loop
            var.put(u'i', (var.get(u'lines').get(u'length')-Js(1.0)))
            while (var.get(u'i')>Js(0.0)):
                try:
                    var.put(u'line', var.get(u'lines').get(var.get(u'i')))
                    if (~var.get(u'line').callprop(u'indexOf', Js(u'sourceMappingURL=data:'))):
                        return var.get(u'exports').callprop(u'fromComment', var.get(u'line'))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
        PyJsHoisted_convertFromLargeSource_.func_name = u'convertFromLargeSource'
        var.put(u'convertFromLargeSource', PyJsHoisted_convertFromLargeSource_)
        @Js
        def PyJsHoisted_Converter_(sm, opts, this, arguments, var=var):
            var = Scope({u'this':this, u'opts':opts, u'sm':sm, u'arguments':arguments}, var)
            var.registers([u'opts', u'sm'])
            PyJs_Object_3251_ = Js({})
            var.put(u'opts', (var.get(u'opts') or PyJs_Object_3251_))
            if var.get(u'opts').get(u'isFileComment'):
                var.put(u'sm', var.get(u'readFromFileMap')(var.get(u'sm'), var.get(u'opts').get(u'commentFileDir')))
            if var.get(u'opts').get(u'hasComment'):
                var.put(u'sm', var.get(u'stripComment')(var.get(u'sm')))
            if var.get(u'opts').get(u'isEncoded'):
                var.put(u'sm', var.get(u'decodeBase64')(var.get(u'sm')))
            if (var.get(u'opts').get(u'isJSON') or var.get(u'opts').get(u'isEncoded')):
                var.put(u'sm', var.get(u'JSON').callprop(u'parse', var.get(u'sm')))
            var.get(u"this").put(u'sourcemap', var.get(u'sm'))
        PyJsHoisted_Converter_.func_name = u'Converter'
        var.put(u'Converter', PyJsHoisted_Converter_)
        Js(u'use strict')
        var.put(u'fs', var.get(u'require')(Js(u'fs')))
        var.put(u'path', var.get(u'require')(Js(u'path')))
        var.put(u'commentRx', JsRegExp(u'/^\\s*\\/(?:\\/|\\*)[@#]\\s+sourceMappingURL=data:(?:application|text)\\/json;(?:charset[:=]\\S+;)?base64,(.*)$/mg'))
        var.put(u'mapFileCommentRx', JsRegExp(u'/(?:\\/\\/[@#][ \\t]+sourceMappingURL=([^\\s\'"]+?)[ \\t]*$)|(?:\\/\\*[@#][ \\t]+sourceMappingURL=([^\\*]+?)[ \\t]*(?:\\*\\/){1}[ \\t]*$)/mg'))
        pass
        pass
        pass
        pass
        pass
        @Js
        def PyJs_anonymous_3252_(space, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'space':space}, var)
            var.registers([u'space'])
            return var.get(u'JSON').callprop(u'stringify', var.get(u"this").get(u'sourcemap'), var.get(u"null"), var.get(u'space'))
        PyJs_anonymous_3252_._set_name(u'anonymous')
        var.get(u'Converter').get(u'prototype').put(u'toJSON', PyJs_anonymous_3252_)
        @Js
        def PyJs_anonymous_3253_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'json'])
            var.put(u'json', var.get(u"this").callprop(u'toJSON'))
            return var.get(u'Buffer').create(var.get(u'json')).callprop(u'toString', Js(u'base64'))
        PyJs_anonymous_3253_._set_name(u'anonymous')
        var.get(u'Converter').get(u'prototype').put(u'toBase64', PyJs_anonymous_3253_)
        @Js
        def PyJs_anonymous_3254_(options, this, arguments, var=var):
            var = Scope({u'this':this, u'options':options, u'arguments':arguments}, var)
            var.registers([u'base64', u'data', u'options'])
            var.put(u'base64', var.get(u"this").callprop(u'toBase64'))
            var.put(u'data', (Js(u'sourceMappingURL=data:application/json;base64,')+var.get(u'base64')))
            return (((Js(u'/*# ')+var.get(u'data'))+Js(u' */')) if (var.get(u'options') and var.get(u'options').get(u'multiline')) else (Js(u'//# ')+var.get(u'data')))
        PyJs_anonymous_3254_._set_name(u'anonymous')
        var.get(u'Converter').get(u'prototype').put(u'toComment', PyJs_anonymous_3254_)
        @Js
        def PyJs_anonymous_3255_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return var.get(u'JSON').callprop(u'parse', var.get(u"this").callprop(u'toJSON'))
        PyJs_anonymous_3255_._set_name(u'anonymous')
        var.get(u'Converter').get(u'prototype').put(u'toObject', PyJs_anonymous_3255_)
        @Js
        def PyJs_anonymous_3256_(key, value, this, arguments, var=var):
            var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
            var.registers([u'value', u'key'])
            if var.get(u"this").get(u'sourcemap').callprop(u'hasOwnProperty', var.get(u'key')):
                PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'property %s already exists on the sourcemap, use set property instead')))
                raise PyJsTempException
            return var.get(u"this").callprop(u'setProperty', var.get(u'key'), var.get(u'value'))
        PyJs_anonymous_3256_._set_name(u'anonymous')
        var.get(u'Converter').get(u'prototype').put(u'addProperty', PyJs_anonymous_3256_)
        @Js
        def PyJs_anonymous_3257_(key, value, this, arguments, var=var):
            var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
            var.registers([u'value', u'key'])
            var.get(u"this").get(u'sourcemap').put(var.get(u'key'), var.get(u'value'))
            return var.get(u"this")
        PyJs_anonymous_3257_._set_name(u'anonymous')
        var.get(u'Converter').get(u'prototype').put(u'setProperty', PyJs_anonymous_3257_)
        @Js
        def PyJs_anonymous_3258_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
            var.registers([u'key'])
            return var.get(u"this").get(u'sourcemap').get(var.get(u'key'))
        PyJs_anonymous_3258_._set_name(u'anonymous')
        var.get(u'Converter').get(u'prototype').put(u'getProperty', PyJs_anonymous_3258_)
        @Js
        def PyJs_anonymous_3259_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj'])
            return var.get(u'Converter').create(var.get(u'obj'))
        PyJs_anonymous_3259_._set_name(u'anonymous')
        var.get(u'exports').put(u'fromObject', PyJs_anonymous_3259_)
        @Js
        def PyJs_anonymous_3260_(json, this, arguments, var=var):
            var = Scope({u'this':this, u'json':json, u'arguments':arguments}, var)
            var.registers([u'json'])
            PyJs_Object_3261_ = Js({u'isJSON':var.get(u'true')})
            return var.get(u'Converter').create(var.get(u'json'), PyJs_Object_3261_)
        PyJs_anonymous_3260_._set_name(u'anonymous')
        var.get(u'exports').put(u'fromJSON', PyJs_anonymous_3260_)
        @Js
        def PyJs_anonymous_3262_(base64, this, arguments, var=var):
            var = Scope({u'this':this, u'base64':base64, u'arguments':arguments}, var)
            var.registers([u'base64'])
            PyJs_Object_3263_ = Js({u'isEncoded':var.get(u'true')})
            return var.get(u'Converter').create(var.get(u'base64'), PyJs_Object_3263_)
        PyJs_anonymous_3262_._set_name(u'anonymous')
        var.get(u'exports').put(u'fromBase64', PyJs_anonymous_3262_)
        @Js
        def PyJs_anonymous_3264_(comment, this, arguments, var=var):
            var = Scope({u'comment':comment, u'this':this, u'arguments':arguments}, var)
            var.registers([u'comment'])
            var.put(u'comment', var.get(u'comment').callprop(u'replace', JsRegExp(u'/^\\/\\*/g'), Js(u'//')).callprop(u'replace', JsRegExp(u'/\\*\\/$/g'), Js(u'')))
            PyJs_Object_3265_ = Js({u'isEncoded':var.get(u'true'),u'hasComment':var.get(u'true')})
            return var.get(u'Converter').create(var.get(u'comment'), PyJs_Object_3265_)
        PyJs_anonymous_3264_._set_name(u'anonymous')
        var.get(u'exports').put(u'fromComment', PyJs_anonymous_3264_)
        @Js
        def PyJs_anonymous_3266_(comment, dir, this, arguments, var=var):
            var = Scope({u'comment':comment, u'this':this, u'arguments':arguments, u'dir':dir}, var)
            var.registers([u'comment', u'dir'])
            PyJs_Object_3267_ = Js({u'commentFileDir':var.get(u'dir'),u'isFileComment':var.get(u'true'),u'isJSON':var.get(u'true')})
            return var.get(u'Converter').create(var.get(u'comment'), PyJs_Object_3267_)
        PyJs_anonymous_3266_._set_name(u'anonymous')
        var.get(u'exports').put(u'fromMapFileComment', PyJs_anonymous_3266_)
        @Js
        def PyJs_anonymous_3268_(content, largeSource, this, arguments, var=var):
            var = Scope({u'content':content, u'this':this, u'largeSource':largeSource, u'arguments':arguments}, var)
            var.registers([u'content', u'res', u'm', u'largeSource'])
            if var.get(u'largeSource'):
                var.put(u'res', var.get(u'convertFromLargeSource')(var.get(u'content')))
                return (var.get(u'res') if var.get(u'res') else var.get(u"null"))
            var.put(u'm', var.get(u'content').callprop(u'match', var.get(u'commentRx')))
            var.get(u'commentRx').put(u'lastIndex', Js(0.0))
            return (var.get(u'exports').callprop(u'fromComment', var.get(u'm').callprop(u'pop')) if var.get(u'm') else var.get(u"null"))
        PyJs_anonymous_3268_._set_name(u'anonymous')
        var.get(u'exports').put(u'fromSource', PyJs_anonymous_3268_)
        @Js
        def PyJs_anonymous_3269_(content, dir, this, arguments, var=var):
            var = Scope({u'content':content, u'this':this, u'arguments':arguments, u'dir':dir}, var)
            var.registers([u'content', u'm', u'dir'])
            var.put(u'm', var.get(u'content').callprop(u'match', var.get(u'mapFileCommentRx')))
            var.get(u'mapFileCommentRx').put(u'lastIndex', Js(0.0))
            return (var.get(u'exports').callprop(u'fromMapFileComment', var.get(u'm').callprop(u'pop'), var.get(u'dir')) if var.get(u'm') else var.get(u"null"))
        PyJs_anonymous_3269_._set_name(u'anonymous')
        var.get(u'exports').put(u'fromMapFileSource', PyJs_anonymous_3269_)
        @Js
        def PyJs_anonymous_3270_(src, this, arguments, var=var):
            var = Scope({u'this':this, u'src':src, u'arguments':arguments}, var)
            var.registers([u'src'])
            var.get(u'commentRx').put(u'lastIndex', Js(0.0))
            return var.get(u'src').callprop(u'replace', var.get(u'commentRx'), Js(u''))
        PyJs_anonymous_3270_._set_name(u'anonymous')
        var.get(u'exports').put(u'removeComments', PyJs_anonymous_3270_)
        @Js
        def PyJs_anonymous_3271_(src, this, arguments, var=var):
            var = Scope({u'this':this, u'src':src, u'arguments':arguments}, var)
            var.registers([u'src'])
            var.get(u'mapFileCommentRx').put(u'lastIndex', Js(0.0))
            return var.get(u'src').callprop(u'replace', var.get(u'mapFileCommentRx'), Js(u''))
        PyJs_anonymous_3271_._set_name(u'anonymous')
        var.get(u'exports').put(u'removeMapFileComments', PyJs_anonymous_3271_)
        @Js
        def PyJs_anonymous_3272_(file, options, this, arguments, var=var):
            var = Scope({u'this':this, u'options':options, u'file':file, u'arguments':arguments}, var)
            var.registers([u'data', u'options', u'file'])
            var.put(u'data', (Js(u'sourceMappingURL=')+var.get(u'file')))
            return (((Js(u'/*# ')+var.get(u'data'))+Js(u' */')) if (var.get(u'options') and var.get(u'options').get(u'multiline')) else (Js(u'//# ')+var.get(u'data')))
        PyJs_anonymous_3272_._set_name(u'anonymous')
        var.get(u'exports').put(u'generateMapFileComment', PyJs_anonymous_3272_)
        @Js
        def PyJs_getCommentRegex_3274_(this, arguments, var=var):
            var = Scope({u'this':this, u'getCommentRegex':PyJs_getCommentRegex_3274_, u'arguments':arguments}, var)
            var.registers([])
            var.get(u'commentRx').put(u'lastIndex', Js(0.0))
            return var.get(u'commentRx')
        PyJs_getCommentRegex_3274_._set_name(u'getCommentRegex')
        PyJs_Object_3273_ = Js({u'get':PyJs_getCommentRegex_3274_})
        var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'commentRegex'), PyJs_Object_3273_)
        @Js
        def PyJs_getMapFileCommentRegex_3276_(this, arguments, var=var):
            var = Scope({u'this':this, u'getMapFileCommentRegex':PyJs_getMapFileCommentRegex_3276_, u'arguments':arguments}, var)
            var.registers([])
            var.get(u'mapFileCommentRx').put(u'lastIndex', Js(0.0))
            return var.get(u'mapFileCommentRx')
        PyJs_getMapFileCommentRegex_3276_._set_name(u'getMapFileCommentRegex')
        PyJs_Object_3275_ = Js({u'get':PyJs_getMapFileCommentRegex_3276_})
        var.get(u'Object').callprop(u'defineProperty', var.get(u'exports'), Js(u'mapFileCommentRegex'), PyJs_Object_3275_)
    PyJs_anonymous_3250_._set_name(u'anonymous')
    PyJs_anonymous_3250_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'buffer')).get(u'Buffer'))
PyJs_anonymous_3249_._set_name(u'anonymous')
PyJs_Object_3277_ = Js({u'buffer':Js(525.0),u'fs':Js(523.0),u'path':Js(530.0)})
@Js
def PyJs_anonymous_3278_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'load', u'exports', u'log', u'formatArgs', u'require', u'module', u'localstorage', u'useColors', u'save'])
    @Js
    def PyJsHoisted_load_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'r'])
        pass
        try:
            var.put(u'r', var.get(u'exports').get(u'storage').get(u'debug'))
        except PyJsException as PyJsTempException:
            PyJsHolder_65_27913289 = var.own.get(u'e')
            var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
            try:
                pass
            finally:
                if PyJsHolder_65_27913289 is not None:
                    var.own[u'e'] = PyJsHolder_65_27913289
                else:
                    del var.own[u'e']
                del PyJsHolder_65_27913289
        return var.get(u'r')
    PyJsHoisted_load_.func_name = u'load'
    var.put(u'load', PyJsHoisted_load_)
    @Js
    def PyJsHoisted_log_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return ((PyJsStrictEq(Js(u'object'),var.get(u'console',throw=False).typeof()) and var.get(u'console').get(u'log')) and var.get(u'Function').get(u'prototype').get(u'apply').callprop(u'call', var.get(u'console').get(u'log'), var.get(u'console'), var.get(u'arguments')))
    PyJsHoisted_log_.func_name = u'log'
    var.put(u'log', PyJsHoisted_log_)
    @Js
    def PyJsHoisted_formatArgs_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'useColors', u'index', u'c', u'args', u'lastC'])
        var.put(u'args', var.get(u'arguments'))
        var.put(u'useColors', var.get(u"this").get(u'useColors'))
        var.get(u'args').put(u'0', (((((((Js(u'%c') if var.get(u'useColors') else Js(u''))+var.get(u"this").get(u'namespace'))+(Js(u' %c') if var.get(u'useColors') else Js(u' ')))+var.get(u'args').get(u'0'))+(Js(u'%c ') if var.get(u'useColors') else Js(u' ')))+Js(u'+'))+var.get(u'exports').callprop(u'humanize', var.get(u"this").get(u'diff'))))
        if var.get(u'useColors').neg():
            return var.get(u'args')
        var.put(u'c', (Js(u'color: ')+var.get(u"this").get(u'color')))
        var.put(u'args', Js([var.get(u'args').get(u'0'), var.get(u'c'), Js(u'color: inherit')]).callprop(u'concat', var.get(u'Array').get(u'prototype').get(u'slice').callprop(u'call', var.get(u'args'), Js(1.0))))
        var.put(u'index', Js(0.0))
        var.put(u'lastC', Js(0.0))
        @Js
        def PyJs_anonymous_3281_(match, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'match':match}, var)
            var.registers([u'match'])
            if PyJsStrictEq(Js(u'%%'),var.get(u'match')):
                return var.get('undefined')
            (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1))
            if PyJsStrictEq(Js(u'%c'),var.get(u'match')):
                var.put(u'lastC', var.get(u'index'))
        PyJs_anonymous_3281_._set_name(u'anonymous')
        var.get(u'args').get(u'0').callprop(u'replace', JsRegExp(u'/%[a-z%]/g'), PyJs_anonymous_3281_)
        var.get(u'args').callprop(u'splice', var.get(u'lastC'), Js(0.0), var.get(u'c'))
        return var.get(u'args')
    PyJsHoisted_formatArgs_.func_name = u'formatArgs'
    var.put(u'formatArgs', PyJsHoisted_formatArgs_)
    @Js
    def PyJsHoisted_localstorage_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        try:
            return var.get(u'window').get(u'localStorage')
        except PyJsException as PyJsTempException:
            PyJsHolder_65_8009014 = var.own.get(u'e')
            var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
            try:
                pass
            finally:
                if PyJsHolder_65_8009014 is not None:
                    var.own[u'e'] = PyJsHolder_65_8009014
                else:
                    del var.own[u'e']
                del PyJsHolder_65_8009014
    PyJsHoisted_localstorage_.func_name = u'localstorage'
    var.put(u'localstorage', PyJsHoisted_localstorage_)
    @Js
    def PyJsHoisted_useColors_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        def PyJs_LONG_3279_(var=var):
            return ((var.get(u'document').get(u'documentElement').get(u'style').contains(Js(u'WebkitAppearance')) or (var.get(u'window').get(u'console') and (var.get(u'console').get(u'firebug') or (var.get(u'console').get(u'exception') and var.get(u'console').get(u'table'))))) or (var.get(u'navigator').get(u'userAgent').callprop(u'toLowerCase').callprop(u'match', JsRegExp(u'/firefox\\/(\\d+)/')) and (var.get(u'parseInt')(var.get(u'RegExp').get(u'$1'), Js(10.0))>=Js(31.0))))
        return PyJs_LONG_3279_()
    PyJsHoisted_useColors_.func_name = u'useColors'
    var.put(u'useColors', PyJsHoisted_useColors_)
    @Js
    def PyJsHoisted_save_(namespaces, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'namespaces':namespaces}, var)
        var.registers([u'namespaces'])
        try:
            if (var.get(u"null")==var.get(u'namespaces')):
                var.get(u'exports').get(u'storage').callprop(u'removeItem', Js(u'debug'))
            else:
                var.get(u'exports').get(u'storage').put(u'debug', var.get(u'namespaces'))
        except PyJsException as PyJsTempException:
            PyJsHolder_65_85910939 = var.own.get(u'e')
            var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
            try:
                pass
            finally:
                if PyJsHolder_65_85910939 is not None:
                    var.own[u'e'] = PyJsHolder_65_85910939
                else:
                    del var.own[u'e']
                del PyJsHolder_65_85910939
    PyJsHoisted_save_.func_name = u'save'
    var.put(u'save', PyJsHoisted_save_)
    var.put(u'exports', var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./debug'))))
    var.get(u'exports').put(u'log', var.get(u'log'))
    var.get(u'exports').put(u'formatArgs', var.get(u'formatArgs'))
    var.get(u'exports').put(u'save', var.get(u'save'))
    var.get(u'exports').put(u'load', var.get(u'load'))
    var.get(u'exports').put(u'useColors', var.get(u'useColors'))
    var.get(u'exports').put(u'storage', (var.get(u'chrome').get(u'storage').get(u'local') if ((Js(u'undefined')!=var.get(u'chrome',throw=False).typeof()) and (Js(u'undefined')!=var.get(u'chrome').get(u'storage').typeof())) else var.get(u'localstorage')()))
    var.get(u'exports').put(u'colors', Js([Js(u'lightseagreen'), Js(u'forestgreen'), Js(u'goldenrod'), Js(u'dodgerblue'), Js(u'darkorchid'), Js(u'crimson')]))
    pass
    @Js
    def PyJs_anonymous_3280_(v, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'v':v}, var)
        var.registers([u'v'])
        return var.get(u'JSON').callprop(u'stringify', var.get(u'v'))
    PyJs_anonymous_3280_._set_name(u'anonymous')
    var.get(u'exports').get(u'formatters').put(u'j', PyJs_anonymous_3280_)
    pass
    pass
    pass
    pass
    var.get(u'exports').callprop(u'enable', var.get(u'load')())
    pass
PyJs_anonymous_3278_._set_name(u'anonymous')
PyJs_Object_3282_ = Js({u'./debug':Js(269.0)})
@Js
def PyJs_anonymous_3283_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'enable', u'require', u'enabled', u'selectColor', u'coerce', u'disable', u'module', u'debug', u'prevColor', u'prevTime'])
    @Js
    def PyJsHoisted_enable_(namespaces, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'namespaces':namespaces}, var)
        var.registers([u'i', u'namespaces', u'split', u'len'])
        var.get(u'exports').callprop(u'save', var.get(u'namespaces'))
        var.put(u'split', (var.get(u'namespaces') or Js(u'')).callprop(u'split', JsRegExp(u'/[\\s,]+/')))
        var.put(u'len', var.get(u'split').get(u'length'))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u'len')):
            try:
                if var.get(u'split').get(var.get(u'i')).neg():
                    continue
                var.put(u'namespaces', var.get(u'split').get(var.get(u'i')).callprop(u'replace', JsRegExp(u'/\\*/g'), Js(u'.*?')))
                if PyJsStrictEq(var.get(u'namespaces').get(u'0'),Js(u'-')):
                    var.get(u'exports').get(u'skips').callprop(u'push', var.get(u'RegExp').create(((Js(u'^')+var.get(u'namespaces').callprop(u'substr', Js(1.0)))+Js(u'$'))))
                else:
                    var.get(u'exports').get(u'names').callprop(u'push', var.get(u'RegExp').create(((Js(u'^')+var.get(u'namespaces'))+Js(u'$'))))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
    PyJsHoisted_enable_.func_name = u'enable'
    var.put(u'enable', PyJsHoisted_enable_)
    @Js
    def PyJsHoisted_enabled_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'i', u'name', u'len'])
        pass
        #for JS loop
        PyJsComma(var.put(u'i', Js(0.0)),var.put(u'len', var.get(u'exports').get(u'skips').get(u'length')))
        while (var.get(u'i')<var.get(u'len')):
            try:
                if var.get(u'exports').get(u'skips').get(var.get(u'i')).callprop(u'test', var.get(u'name')):
                    return Js(False)
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        #for JS loop
        PyJsComma(var.put(u'i', Js(0.0)),var.put(u'len', var.get(u'exports').get(u'names').get(u'length')))
        while (var.get(u'i')<var.get(u'len')):
            try:
                if var.get(u'exports').get(u'names').get(var.get(u'i')).callprop(u'test', var.get(u'name')):
                    return var.get(u'true')
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return Js(False)
    PyJsHoisted_enabled_.func_name = u'enabled'
    var.put(u'enabled', PyJsHoisted_enabled_)
    @Js
    def PyJsHoisted_selectColor_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u'exports').get(u'colors').get(((var.put(u'prevColor',Js(var.get(u'prevColor').to_number())+Js(1))-Js(1))%var.get(u'exports').get(u'colors').get(u'length')))
    PyJsHoisted_selectColor_.func_name = u'selectColor'
    var.put(u'selectColor', PyJsHoisted_selectColor_)
    @Js
    def PyJsHoisted_coerce_(val, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
        var.registers([u'val'])
        if var.get(u'val').instanceof(var.get(u'Error')):
            return (var.get(u'val').get(u'stack') or var.get(u'val').get(u'message'))
        return var.get(u'val')
    PyJsHoisted_coerce_.func_name = u'coerce'
    var.put(u'coerce', PyJsHoisted_coerce_)
    @Js
    def PyJsHoisted_disable_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u'exports').callprop(u'enable', Js(u''))
    PyJsHoisted_disable_.func_name = u'disable'
    var.put(u'disable', PyJsHoisted_disable_)
    @Js
    def PyJsHoisted_debug_(namespace, this, arguments, var=var):
        var = Scope({u'this':this, u'namespace':namespace, u'arguments':arguments}, var)
        var.registers([u'disabled', u'namespace', u'enabled', u'fn'])
        @Js
        def PyJsHoisted_disabled_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            pass
        PyJsHoisted_disabled_.func_name = u'disabled'
        var.put(u'disabled', PyJsHoisted_disabled_)
        @Js
        def PyJsHoisted_enabled_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'index', u'curr', u'self', u'args', u'ms', u'logFn'])
            var.put(u'self', var.get(u'enabled'))
            var.put(u'curr', (+var.get(u'Date').create()))
            var.put(u'ms', (var.get(u'curr')-(var.get(u'prevTime') or var.get(u'curr'))))
            var.get(u'self').put(u'diff', var.get(u'ms'))
            var.get(u'self').put(u'prev', var.get(u'prevTime'))
            var.get(u'self').put(u'curr', var.get(u'curr'))
            var.put(u'prevTime', var.get(u'curr'))
            if (var.get(u"null")==var.get(u'self').get(u'useColors')):
                var.get(u'self').put(u'useColors', var.get(u'exports').callprop(u'useColors'))
            if ((var.get(u"null")==var.get(u'self').get(u'color')) and var.get(u'self').get(u'useColors')):
                var.get(u'self').put(u'color', var.get(u'selectColor')())
            var.put(u'args', var.get(u'Array').get(u'prototype').get(u'slice').callprop(u'call', var.get(u'arguments')))
            var.get(u'args').put(u'0', var.get(u'exports').callprop(u'coerce', var.get(u'args').get(u'0')))
            if PyJsStrictNeq(Js(u'string'),var.get(u'args').get(u'0').typeof()):
                var.put(u'args', Js([Js(u'%o')]).callprop(u'concat', var.get(u'args')))
            var.put(u'index', Js(0.0))
            @Js
            def PyJs_anonymous_3285_(match, format, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'match':match, u'format':format}, var)
                var.registers([u'formatter', u'match', u'val', u'format'])
                if PyJsStrictEq(var.get(u'match'),Js(u'%%')):
                    return var.get(u'match')
                (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1))
                var.put(u'formatter', var.get(u'exports').get(u'formatters').get(var.get(u'format')))
                if PyJsStrictEq(Js(u'function'),var.get(u'formatter',throw=False).typeof()):
                    var.put(u'val', var.get(u'args').get(var.get(u'index')))
                    var.put(u'match', var.get(u'formatter').callprop(u'call', var.get(u'self'), var.get(u'val')))
                    var.get(u'args').callprop(u'splice', var.get(u'index'), Js(1.0))
                    (var.put(u'index',Js(var.get(u'index').to_number())-Js(1))+Js(1))
                return var.get(u'match')
            PyJs_anonymous_3285_._set_name(u'anonymous')
            var.get(u'args').put(u'0', var.get(u'args').get(u'0').callprop(u'replace', JsRegExp(u'/%([a-z%])/g'), PyJs_anonymous_3285_))
            if PyJsStrictEq(Js(u'function'),var.get(u'exports').get(u'formatArgs').typeof()):
                var.put(u'args', var.get(u'exports').get(u'formatArgs').callprop(u'apply', var.get(u'self'), var.get(u'args')))
            var.put(u'logFn', ((var.get(u'enabled').get(u'log') or var.get(u'exports').get(u'log')) or var.get(u'console').get(u'log').callprop(u'bind', var.get(u'console'))))
            var.get(u'logFn').callprop(u'apply', var.get(u'self'), var.get(u'args'))
        PyJsHoisted_enabled_.func_name = u'enabled'
        var.put(u'enabled', PyJsHoisted_enabled_)
        pass
        var.get(u'disabled').put(u'enabled', Js(False))
        pass
        var.get(u'enabled').put(u'enabled', var.get(u'true'))
        var.put(u'fn', (var.get(u'enabled') if var.get(u'exports').callprop(u'enabled', var.get(u'namespace')) else var.get(u'disabled')))
        var.get(u'fn').put(u'namespace', var.get(u'namespace'))
        return var.get(u'fn')
    PyJsHoisted_debug_.func_name = u'debug'
    var.put(u'debug', PyJsHoisted_debug_)
    var.put(u'exports', var.get(u'module').put(u'exports', var.get(u'debug')))
    var.get(u'exports').put(u'coerce', var.get(u'coerce'))
    var.get(u'exports').put(u'disable', var.get(u'disable'))
    var.get(u'exports').put(u'enable', var.get(u'enable'))
    var.get(u'exports').put(u'enabled', var.get(u'enabled'))
    var.get(u'exports').put(u'humanize', var.get(u'require')(Js(u'ms')))
    var.get(u'exports').put(u'names', Js([]))
    var.get(u'exports').put(u'skips', Js([]))
    PyJs_Object_3284_ = Js({})
    var.get(u'exports').put(u'formatters', PyJs_Object_3284_)
    var.put(u'prevColor', Js(0.0))
    pass
    pass
    pass
    pass
    pass
    pass
    pass
PyJs_anonymous_3283_._set_name(u'anonymous')
PyJs_Object_3286_ = Js({u'ms':Js(497.0)})
@Js
def PyJs_anonymous_3287_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_3288_(process, this, arguments, var=var):
        var = Scope({u'process':process, u'this':this, u'arguments':arguments}, var)
        var.registers([u'load', u'tty', u'log', u'stream', u'formatArgs', u'inspect', u'util', u'process', u'createWritableStdioStream', u'fd', u'useColors', u'save'])
        @Js
        def PyJsHoisted_load_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return var.get(u'process').get(u'env').get(u'DEBUG')
        PyJsHoisted_load_.func_name = u'load'
        var.put(u'load', PyJsHoisted_load_)
        @Js
        def PyJsHoisted_log_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return var.get(u'stream').callprop(u'write', (var.get(u'util').get(u'format').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))+Js(u'\n')))
        PyJsHoisted_log_.func_name = u'log'
        var.put(u'log', PyJsHoisted_log_)
        @Js
        def PyJsHoisted_formatArgs_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'useColors', u'c', u'args', u'name'])
            var.put(u'args', var.get(u'arguments'))
            var.put(u'useColors', var.get(u"this").get(u'useColors'))
            var.put(u'name', var.get(u"this").get(u'namespace'))
            if var.get(u'useColors'):
                var.put(u'c', var.get(u"this").get(u'color'))
                var.get(u'args').put(u'0', ((((((((((((Js(u'  \x1b[3')+var.get(u'c'))+Js(u';1m'))+var.get(u'name'))+Js(u' '))+Js(u'\x1b[0m'))+var.get(u'args').get(u'0'))+Js(u'\x1b[3'))+var.get(u'c'))+Js(u'm'))+Js(u' +'))+var.get(u'exports').callprop(u'humanize', var.get(u"this").get(u'diff')))+Js(u'\x1b[0m')))
            else:
                var.get(u'args').put(u'0', ((((var.get(u'Date').create().callprop(u'toUTCString')+Js(u' '))+var.get(u'name'))+Js(u' '))+var.get(u'args').get(u'0')))
            return var.get(u'args')
        PyJsHoisted_formatArgs_.func_name = u'formatArgs'
        var.put(u'formatArgs', PyJsHoisted_formatArgs_)
        @Js
        def PyJsHoisted_createWritableStdioStream_(fd, this, arguments, var=var):
            var = Scope({u'this':this, u'fd':fd, u'arguments':arguments}, var)
            var.registers([u'tty_wrap', u'net', u'fs', u'fd', u'stream'])
            pass
            var.put(u'tty_wrap', var.get(u'process').callprop(u'binding', Js(u'tty_wrap')))
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'tty_wrap').callprop(u'guessHandleType', var.get(u'fd')))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'TTY')):
                    SWITCHED = True
                    var.put(u'stream', var.get(u'tty').get(u'WriteStream').create(var.get(u'fd')))
                    var.get(u'stream').put(u'_type', Js(u'tty'))
                    if (var.get(u'stream').get(u'_handle') and var.get(u'stream').get(u'_handle').get(u'unref')):
                        var.get(u'stream').get(u'_handle').callprop(u'unref')
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'FILE')):
                    SWITCHED = True
                    var.put(u'fs', var.get(u'require')(Js(u'fs')))
                    PyJs_Object_3293_ = Js({u'autoClose':Js(False)})
                    var.put(u'stream', var.get(u'fs').get(u'SyncWriteStream').create(var.get(u'fd'), PyJs_Object_3293_))
                    var.get(u'stream').put(u'_type', Js(u'fs'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'PIPE')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'TCP')):
                    SWITCHED = True
                    var.put(u'net', var.get(u'require')(Js(u'net')))
                    PyJs_Object_3294_ = Js({u'fd':var.get(u'fd'),u'readable':Js(False),u'writable':var.get(u'true')})
                    var.put(u'stream', var.get(u'net').get(u'Socket').create(PyJs_Object_3294_))
                    var.get(u'stream').put(u'readable', Js(False))
                    var.get(u'stream').put(u'read', var.get(u"null"))
                    var.get(u'stream').put(u'_type', Js(u'pipe'))
                    if (var.get(u'stream').get(u'_handle') and var.get(u'stream').get(u'_handle').get(u'unref')):
                        var.get(u'stream').get(u'_handle').callprop(u'unref')
                    break
                if True:
                    SWITCHED = True
                    PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Implement me. Unknown stream file type!')))
                    raise PyJsTempException
                SWITCHED = True
                break
            var.get(u'stream').put(u'fd', var.get(u'fd'))
            var.get(u'stream').put(u'_isStdio', var.get(u'true'))
            return var.get(u'stream')
        PyJsHoisted_createWritableStdioStream_.func_name = u'createWritableStdioStream'
        var.put(u'createWritableStdioStream', PyJsHoisted_createWritableStdioStream_)
        @Js
        def PyJsHoisted_useColors_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'debugColors'])
            var.put(u'debugColors', (var.get(u'process').get(u'env').get(u'DEBUG_COLORS') or Js(u'')).callprop(u'trim').callprop(u'toLowerCase'))
            if PyJsStrictEq(Js(0.0),var.get(u'debugColors').get(u'length')):
                return var.get(u'tty').callprop(u'isatty', var.get(u'fd'))
            else:
                return (((PyJsStrictNeq(Js(u'0'),var.get(u'debugColors')) and PyJsStrictNeq(Js(u'no'),var.get(u'debugColors'))) and PyJsStrictNeq(Js(u'false'),var.get(u'debugColors'))) and PyJsStrictNeq(Js(u'disabled'),var.get(u'debugColors')))
        PyJsHoisted_useColors_.func_name = u'useColors'
        var.put(u'useColors', PyJsHoisted_useColors_)
        @Js
        def PyJsHoisted_save_(namespaces, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'namespaces':namespaces}, var)
            var.registers([u'namespaces'])
            if (var.get(u"null")==var.get(u'namespaces')):
                var.get(u'process').get(u'env').delete(u'DEBUG')
            else:
                var.get(u'process').get(u'env').put(u'DEBUG', var.get(u'namespaces'))
        PyJsHoisted_save_.func_name = u'save'
        var.put(u'save', PyJsHoisted_save_)
        var.put(u'tty', var.get(u'require')(Js(u'tty')))
        var.put(u'util', var.get(u'require')(Js(u'util')))
        var.put(u'exports', var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./debug'))))
        var.get(u'exports').put(u'log', var.get(u'log'))
        var.get(u'exports').put(u'formatArgs', var.get(u'formatArgs'))
        var.get(u'exports').put(u'save', var.get(u'save'))
        var.get(u'exports').put(u'load', var.get(u'load'))
        var.get(u'exports').put(u'useColors', var.get(u'useColors'))
        var.get(u'exports').put(u'colors', Js([Js(6.0), Js(2.0), Js(3.0), Js(4.0), Js(5.0), Js(1.0)]))
        var.put(u'fd', (var.get(u'parseInt')(var.get(u'process').get(u'env').get(u'DEBUG_FD'), Js(10.0)) or Js(2.0)))
        var.put(u'stream', (var.get(u'process').get(u'stdout') if PyJsStrictEq(Js(1.0),var.get(u'fd')) else (var.get(u'process').get(u'stderr') if PyJsStrictEq(Js(2.0),var.get(u'fd')) else var.get(u'createWritableStdioStream')(var.get(u'fd')))))
        pass
        @Js
        def PyJs_anonymous_3289_(v, colors, this, arguments, var=var):
            var = Scope({u'this':this, u'colors':colors, u'arguments':arguments, u'v':v}, var)
            var.registers([u'colors', u'v'])
            return var.get(u'util').callprop(u'inspect', var.get(u'v'), PyJsComma(Js(0.0), Js(None)), PyJsComma(Js(0.0), Js(None)), var.get(u'colors'))
        PyJs_anonymous_3289_._set_name(u'anonymous')
        @Js
        def PyJs_anonymous_3290_(v, colors, this, arguments, var=var):
            var = Scope({u'this':this, u'colors':colors, u'arguments':arguments, u'v':v}, var)
            var.registers([u'colors', u'v'])
            PyJs_Object_3291_ = Js({u'colors':var.get(u'colors')})
            return var.get(u'util').callprop(u'inspect', var.get(u'v'), PyJs_Object_3291_)
        PyJs_anonymous_3290_._set_name(u'anonymous')
        var.put(u'inspect', (PyJs_anonymous_3289_ if PyJsStrictEq(Js(4.0),var.get(u'util').get(u'inspect').get(u'length')) else PyJs_anonymous_3290_))
        @Js
        def PyJs_anonymous_3292_(v, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'v':v}, var)
            var.registers([u'v'])
            return var.get(u'inspect')(var.get(u'v'), var.get(u"this").get(u'useColors')).callprop(u'replace', JsRegExp(u'/\\s*\\n\\s*/g'), Js(u' '))
        PyJs_anonymous_3292_._set_name(u'anonymous')
        var.get(u'exports').get(u'formatters').put(u'o', PyJs_anonymous_3292_)
        pass
        pass
        pass
        pass
        pass
        var.get(u'exports').callprop(u'enable', var.get(u'load')())
    PyJs_anonymous_3288_._set_name(u'anonymous')
    PyJs_anonymous_3288_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')))
PyJs_anonymous_3287_._set_name(u'anonymous')
PyJs_Object_3295_ = Js({u'./debug':Js(269.0),u'_process':Js(531.0),u'fs':Js(523.0),u'net':Js(523.0),u'tty':Js(532.0),u'util':Js(534.0)})
@Js
def PyJs_anonymous_3296_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'INDENT_RE', u'require', u'module', u'repeating', u'getMostUsed'])
    @Js
    def PyJsHoisted_getMostUsed_(indents, this, arguments, var=var):
        var = Scope({u'this':this, u'indents':indents, u'arguments':arguments}, var)
        var.registers([u'indent', u'maxWeight', u'n', u'indents', u'u', u'result', u'w', u'maxUsed'])
        var.put(u'result', Js(0.0))
        var.put(u'maxUsed', Js(0.0))
        var.put(u'maxWeight', Js(0.0))
        for PyJsTemp in var.get(u'indents'):
            var.put(u'n', PyJsTemp)
            var.put(u'indent', var.get(u'indents').get(var.get(u'n')))
            var.put(u'u', var.get(u'indent').get(u'0'))
            var.put(u'w', var.get(u'indent').get(u'1'))
            if ((var.get(u'u')>var.get(u'maxUsed')) or (PyJsStrictEq(var.get(u'u'),var.get(u'maxUsed')) and (var.get(u'w')>var.get(u'maxWeight')))):
                var.put(u'maxUsed', var.get(u'u'))
                var.put(u'maxWeight', var.get(u'w'))
                var.put(u'result', var.get(u'Number')(var.get(u'n')))
        return var.get(u'result')
    PyJsHoisted_getMostUsed_.func_name = u'getMostUsed'
    var.put(u'getMostUsed', PyJsHoisted_getMostUsed_)
    Js(u'use strict')
    var.put(u'repeating', var.get(u'require')(Js(u'repeating')))
    var.put(u'INDENT_RE', JsRegExp(u'/^(?:( )+|\\t+)/'))
    pass
    @Js
    def PyJs_anonymous_3297_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'actual', u'tabs', u'amount', u'isIndent', u'current', u'indents', u'spaces', u'str', u'prev', u'type'])
        if PyJsStrictNeq(var.get(u'str',throw=False).typeof(),Js(u'string')):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Expected a string')))
            raise PyJsTempException
        var.put(u'tabs', Js(0.0))
        var.put(u'spaces', Js(0.0))
        var.put(u'prev', Js(0.0))
        PyJs_Object_3298_ = Js({})
        var.put(u'indents', PyJs_Object_3298_)
        pass
        pass
        @Js
        def PyJs_anonymous_3299_(line, this, arguments, var=var):
            var = Scope({u'this':this, u'line':line, u'arguments':arguments}, var)
            var.registers([u'matches', u'diff', u'line', u'indent'])
            if var.get(u'line').neg():
                return var.get('undefined')
            pass
            var.put(u'matches', var.get(u'line').callprop(u'match', var.get(u'INDENT_RE')))
            if var.get(u'matches').neg():
                var.put(u'indent', Js(0.0))
            else:
                var.put(u'indent', var.get(u'matches').get(u'0').get(u'length'))
                if var.get(u'matches').get(u'1'):
                    (var.put(u'spaces',Js(var.get(u'spaces').to_number())+Js(1))-Js(1))
                else:
                    (var.put(u'tabs',Js(var.get(u'tabs').to_number())+Js(1))-Js(1))
            var.put(u'diff', (var.get(u'indent')-var.get(u'prev')))
            var.put(u'prev', var.get(u'indent'))
            if var.get(u'diff'):
                var.put(u'isIndent', (var.get(u'diff')>Js(0.0)))
                var.put(u'current', var.get(u'indents').get((var.get(u'diff') if var.get(u'isIndent') else (-var.get(u'diff')))))
                if var.get(u'current'):
                    (var.get(u'current').put(u'0',Js(var.get(u'current').get(u'0').to_number())+Js(1))-Js(1))
                else:
                    var.put(u'current', var.get(u'indents').put(var.get(u'diff'), Js([Js(1.0), Js(0.0)])))
            else:
                if var.get(u'current'):
                    var.get(u'current').put(u'1', var.get(u'Number')(var.get(u'isIndent')), u'+')
        PyJs_anonymous_3299_._set_name(u'anonymous')
        var.get(u'str').callprop(u'split', JsRegExp(u'/\\n/g')).callprop(u'forEach', PyJs_anonymous_3299_)
        var.put(u'amount', var.get(u'getMostUsed')(var.get(u'indents')))
        pass
        pass
        if var.get(u'amount').neg():
            var.put(u'type', var.get(u"null"))
            var.put(u'actual', Js(u''))
        else:
            if (var.get(u'spaces')>=var.get(u'tabs')):
                var.put(u'type', Js(u'space'))
                var.put(u'actual', var.get(u'repeating')(Js(u' '), var.get(u'amount')))
            else:
                var.put(u'type', Js(u'tab'))
                var.put(u'actual', var.get(u'repeating')(Js(u'\t'), var.get(u'amount')))
        PyJs_Object_3300_ = Js({u'amount':var.get(u'amount'),u'type':var.get(u'type'),u'indent':var.get(u'actual')})
        return PyJs_Object_3300_
    PyJs_anonymous_3297_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_3297_)
PyJs_anonymous_3296_._set_name(u'anonymous')
PyJs_Object_3301_ = Js({u'repeating':Js(507.0)})
@Js
def PyJs_anonymous_3302_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'matchOperatorsRe', u'require', u'exports', u'module'])
    Js(u'use strict')
    var.put(u'matchOperatorsRe', JsRegExp(u'/[|\\\\{}()[\\]^$+*?.]/g'))
    @Js
    def PyJs_anonymous_3303_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'str'])
        if PyJsStrictNeq(var.get(u'str',throw=False).typeof(),Js(u'string')):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Expected a string')))
            raise PyJsTempException
        return var.get(u'str').callprop(u'replace', var.get(u'matchOperatorsRe'), Js(u'\\$&'))
    PyJs_anonymous_3303_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_3303_)
PyJs_anonymous_3302_._set_name(u'anonymous')
PyJs_Object_3304_ = Js({})
@Js
def PyJs_anonymous_3305_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_3306_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'isIterationStatement', u'isProblematicIfStatement', u'trailingStatement', u'isExpression', u'isSourceElement', u'isStatement'])
        @Js
        def PyJsHoisted_isIterationStatement_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node'])
            if (var.get(u'node')==var.get(u"null")):
                return Js(False)
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'node').get(u'type'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'DoWhileStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ForInStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ForStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'WhileStatement')):
                    SWITCHED = True
                    return var.get(u'true')
                SWITCHED = True
                break
            return Js(False)
        PyJsHoisted_isIterationStatement_.func_name = u'isIterationStatement'
        var.put(u'isIterationStatement', PyJsHoisted_isIterationStatement_)
        @Js
        def PyJsHoisted_isProblematicIfStatement_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'current', u'node'])
            pass
            if PyJsStrictNeq(var.get(u'node').get(u'type'),Js(u'IfStatement')):
                return Js(False)
            if (var.get(u'node').get(u'alternate')==var.get(u"null")):
                return Js(False)
            var.put(u'current', var.get(u'node').get(u'consequent'))
            while 1:
                if PyJsStrictEq(var.get(u'current').get(u'type'),Js(u'IfStatement')):
                    if (var.get(u'current').get(u'alternate')==var.get(u"null")):
                        return var.get(u'true')
                var.put(u'current', var.get(u'trailingStatement')(var.get(u'current')))
                if not var.get(u'current'):
                    break
            return Js(False)
        PyJsHoisted_isProblematicIfStatement_.func_name = u'isProblematicIfStatement'
        var.put(u'isProblematicIfStatement', PyJsHoisted_isProblematicIfStatement_)
        @Js
        def PyJsHoisted_trailingStatement_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node'])
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'node').get(u'type'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'IfStatement')):
                    SWITCHED = True
                    if (var.get(u'node').get(u'alternate')!=var.get(u"null")):
                        return var.get(u'node').get(u'alternate')
                    return var.get(u'node').get(u'consequent')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'LabeledStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ForStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ForInStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'WhileStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'WithStatement')):
                    SWITCHED = True
                    return var.get(u'node').get(u'body')
                SWITCHED = True
                break
            return var.get(u"null")
        PyJsHoisted_trailingStatement_.func_name = u'trailingStatement'
        var.put(u'trailingStatement', PyJsHoisted_trailingStatement_)
        @Js
        def PyJsHoisted_isExpression_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node'])
            if (var.get(u'node')==var.get(u"null")):
                return Js(False)
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'node').get(u'type'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ArrayExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'AssignmentExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'BinaryExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'CallExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ConditionalExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'FunctionExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'Identifier')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'Literal')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'LogicalExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'MemberExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'NewExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ObjectExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'SequenceExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ThisExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'UnaryExpression')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'UpdateExpression')):
                    SWITCHED = True
                    return var.get(u'true')
                SWITCHED = True
                break
            return Js(False)
        PyJsHoisted_isExpression_.func_name = u'isExpression'
        var.put(u'isExpression', PyJsHoisted_isExpression_)
        @Js
        def PyJsHoisted_isSourceElement_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node'])
            return (var.get(u'isStatement')(var.get(u'node')) or ((var.get(u'node')!=var.get(u"null")) and PyJsStrictEq(var.get(u'node').get(u'type'),Js(u'FunctionDeclaration'))))
        PyJsHoisted_isSourceElement_.func_name = u'isSourceElement'
        var.put(u'isSourceElement', PyJsHoisted_isSourceElement_)
        @Js
        def PyJsHoisted_isStatement_(node, this, arguments, var=var):
            var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
            var.registers([u'node'])
            if (var.get(u'node')==var.get(u"null")):
                return Js(False)
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'node').get(u'type'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'BlockStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'BreakStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ContinueStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'DebuggerStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'DoWhileStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'EmptyStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ExpressionStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ForInStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ForStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'IfStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'LabeledStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ReturnStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'SwitchStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ThrowStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'TryStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'VariableDeclaration')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'WhileStatement')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'WithStatement')):
                    SWITCHED = True
                    return var.get(u'true')
                SWITCHED = True
                break
            return Js(False)
        PyJsHoisted_isStatement_.func_name = u'isStatement'
        var.put(u'isStatement', PyJsHoisted_isStatement_)
        Js(u'use strict')
        pass
        pass
        pass
        pass
        pass
        pass
        PyJs_Object_3307_ = Js({u'isExpression':var.get(u'isExpression'),u'isStatement':var.get(u'isStatement'),u'isIterationStatement':var.get(u'isIterationStatement'),u'isSourceElement':var.get(u'isSourceElement'),u'isProblematicIfStatement':var.get(u'isProblematicIfStatement'),u'trailingStatement':var.get(u'trailingStatement')})
        var.get(u'module').put(u'exports', PyJs_Object_3307_)
    PyJs_anonymous_3306_._set_name(u'anonymous')
    PyJs_anonymous_3306_()
PyJs_anonymous_3305_._set_name(u'anonymous')
PyJs_Object_3308_ = Js({})
@Js
def PyJs_anonymous_3309_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_3310_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'isIdentifierPartES6', u'NON_ASCII_WHITESPACES', u'isIdentifierStartES5', u'fromCodePoint', u'IDENTIFIER_START', u'ES6Regex', u'ES5Regex', u'isHexDigit', u'ch', u'IDENTIFIER_PART', u'isLineTerminator', u'isDecimalDigit', u'isIdentifierStartES6', u'isIdentifierPartES5', u'isOctalDigit', u'isWhiteSpace'])
        @Js
        def PyJsHoisted_isIdentifierPartES6_(ch, this, arguments, var=var):
            var = Scope({u'this':this, u'ch':ch, u'arguments':arguments}, var)
            var.registers([u'ch'])
            return (var.get(u'IDENTIFIER_PART').get(var.get(u'ch')) if (var.get(u'ch')<Js(128)) else var.get(u'ES6Regex').get(u'NonAsciiIdentifierPart').callprop(u'test', var.get(u'fromCodePoint')(var.get(u'ch'))))
        PyJsHoisted_isIdentifierPartES6_.func_name = u'isIdentifierPartES6'
        var.put(u'isIdentifierPartES6', PyJsHoisted_isIdentifierPartES6_)
        @Js
        def PyJsHoisted_fromCodePoint_(cp, this, arguments, var=var):
            var = Scope({u'this':this, u'cp':cp, u'arguments':arguments}, var)
            var.registers([u'cp', u'cu2', u'cu1'])
            if (var.get(u'cp')<=Js(65535)):
                return var.get(u'String').callprop(u'fromCharCode', var.get(u'cp'))
            var.put(u'cu1', var.get(u'String').callprop(u'fromCharCode', (var.get(u'Math').callprop(u'floor', ((var.get(u'cp')-Js(65536))/Js(1024)))+Js(55296))))
            var.put(u'cu2', var.get(u'String').callprop(u'fromCharCode', (((var.get(u'cp')-Js(65536))%Js(1024))+Js(56320))))
            return (var.get(u'cu1')+var.get(u'cu2'))
        PyJsHoisted_fromCodePoint_.func_name = u'fromCodePoint'
        var.put(u'fromCodePoint', PyJsHoisted_fromCodePoint_)
        @Js
        def PyJsHoisted_isHexDigit_(ch, this, arguments, var=var):
            var = Scope({u'this':this, u'ch':ch, u'arguments':arguments}, var)
            var.registers([u'ch'])
            return ((((Js(48)<=var.get(u'ch')) and (var.get(u'ch')<=Js(57))) or ((Js(97)<=var.get(u'ch')) and (var.get(u'ch')<=Js(102)))) or ((Js(65)<=var.get(u'ch')) and (var.get(u'ch')<=Js(70))))
        PyJsHoisted_isHexDigit_.func_name = u'isHexDigit'
        var.put(u'isHexDigit', PyJsHoisted_isHexDigit_)
        @Js
        def PyJsHoisted_isOctalDigit_(ch, this, arguments, var=var):
            var = Scope({u'this':this, u'ch':ch, u'arguments':arguments}, var)
            var.registers([u'ch'])
            return ((var.get(u'ch')>=Js(48)) and (var.get(u'ch')<=Js(55)))
        PyJsHoisted_isOctalDigit_.func_name = u'isOctalDigit'
        var.put(u'isOctalDigit', PyJsHoisted_isOctalDigit_)
        @Js
        def PyJsHoisted_isLineTerminator_(ch, this, arguments, var=var):
            var = Scope({u'this':this, u'ch':ch, u'arguments':arguments}, var)
            var.registers([u'ch'])
            return (((PyJsStrictEq(var.get(u'ch'),Js(10)) or PyJsStrictEq(var.get(u'ch'),Js(13))) or PyJsStrictEq(var.get(u'ch'),Js(8232))) or PyJsStrictEq(var.get(u'ch'),Js(8233)))
        PyJsHoisted_isLineTerminator_.func_name = u'isLineTerminator'
        var.put(u'isLineTerminator', PyJsHoisted_isLineTerminator_)
        @Js
        def PyJsHoisted_isDecimalDigit_(ch, this, arguments, var=var):
            var = Scope({u'this':this, u'ch':ch, u'arguments':arguments}, var)
            var.registers([u'ch'])
            return ((Js(48)<=var.get(u'ch')) and (var.get(u'ch')<=Js(57)))
        PyJsHoisted_isDecimalDigit_.func_name = u'isDecimalDigit'
        var.put(u'isDecimalDigit', PyJsHoisted_isDecimalDigit_)
        @Js
        def PyJsHoisted_isIdentifierStartES6_(ch, this, arguments, var=var):
            var = Scope({u'this':this, u'ch':ch, u'arguments':arguments}, var)
            var.registers([u'ch'])
            return (var.get(u'IDENTIFIER_START').get(var.get(u'ch')) if (var.get(u'ch')<Js(128)) else var.get(u'ES6Regex').get(u'NonAsciiIdentifierStart').callprop(u'test', var.get(u'fromCodePoint')(var.get(u'ch'))))
        PyJsHoisted_isIdentifierStartES6_.func_name = u'isIdentifierStartES6'
        var.put(u'isIdentifierStartES6', PyJsHoisted_isIdentifierStartES6_)
        @Js
        def PyJsHoisted_isIdentifierPartES5_(ch, this, arguments, var=var):
            var = Scope({u'this':this, u'ch':ch, u'arguments':arguments}, var)
            var.registers([u'ch'])
            return (var.get(u'IDENTIFIER_PART').get(var.get(u'ch')) if (var.get(u'ch')<Js(128)) else var.get(u'ES5Regex').get(u'NonAsciiIdentifierPart').callprop(u'test', var.get(u'fromCodePoint')(var.get(u'ch'))))
        PyJsHoisted_isIdentifierPartES5_.func_name = u'isIdentifierPartES5'
        var.put(u'isIdentifierPartES5', PyJsHoisted_isIdentifierPartES5_)
        @Js
        def PyJsHoisted_isIdentifierStartES5_(ch, this, arguments, var=var):
            var = Scope({u'this':this, u'ch':ch, u'arguments':arguments}, var)
            var.registers([u'ch'])
            return (var.get(u'IDENTIFIER_START').get(var.get(u'ch')) if (var.get(u'ch')<Js(128)) else var.get(u'ES5Regex').get(u'NonAsciiIdentifierStart').callprop(u'test', var.get(u'fromCodePoint')(var.get(u'ch'))))
        PyJsHoisted_isIdentifierStartES5_.func_name = u'isIdentifierStartES5'
        var.put(u'isIdentifierStartES5', PyJsHoisted_isIdentifierStartES5_)
        @Js
        def PyJsHoisted_isWhiteSpace_(ch, this, arguments, var=var):
            var = Scope({u'this':this, u'ch':ch, u'arguments':arguments}, var)
            var.registers([u'ch'])
            return (((((PyJsStrictEq(var.get(u'ch'),Js(32)) or PyJsStrictEq(var.get(u'ch'),Js(9))) or PyJsStrictEq(var.get(u'ch'),Js(11))) or PyJsStrictEq(var.get(u'ch'),Js(12))) or PyJsStrictEq(var.get(u'ch'),Js(160))) or ((var.get(u'ch')>=Js(5760)) and (var.get(u'NON_ASCII_WHITESPACES').callprop(u'indexOf', var.get(u'ch'))>=Js(0.0))))
        PyJsHoisted_isWhiteSpace_.func_name = u'isWhiteSpace'
        var.put(u'isWhiteSpace', PyJsHoisted_isWhiteSpace_)
        Js(u'use strict')
        pass
        PyJs_Object_3311_ = Js({u'NonAsciiIdentifierStart':JsRegExp(u'/[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/'),u'NonAsciiIdentifierPart':JsRegExp(u'/[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/')})
        var.put(u'ES5Regex', PyJs_Object_3311_)
        PyJs_Object_3312_ = Js({u'NonAsciiIdentifierStart':JsRegExp(u'/[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF98]|\\uD809[\\uDC00-\\uDC6E]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D]|\\uD87E[\\uDC00-\\uDE1D]/'),u'NonAsciiIdentifierPart':JsRegExp(u'/[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDD0-\\uDDDA\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF01-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF98]|\\uD809[\\uDC00-\\uDC6E]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/')})
        var.put(u'ES6Regex', PyJs_Object_3312_)
        pass
        pass
        pass
        var.put(u'NON_ASCII_WHITESPACES', Js([Js(5760), Js(6158), Js(8192), Js(8193), Js(8194), Js(8195), Js(8196), Js(8197), Js(8198), Js(8199), Js(8200), Js(8201), Js(8202), Js(8239), Js(8287), Js(12288), Js(65279)]))
        pass
        pass
        pass
        var.put(u'IDENTIFIER_START', var.get(u'Array').create(Js(128)))
        #for JS loop
        var.put(u'ch', Js(0.0))
        while (var.get(u'ch')<Js(128)):
            try:
                var.get(u'IDENTIFIER_START').put(var.get(u'ch'), (((((var.get(u'ch')>=Js(97)) and (var.get(u'ch')<=Js(122))) or ((var.get(u'ch')>=Js(65)) and (var.get(u'ch')<=Js(90)))) or PyJsStrictEq(var.get(u'ch'),Js(36))) or PyJsStrictEq(var.get(u'ch'),Js(95))))
            finally:
                    var.put(u'ch',Js(var.get(u'ch').to_number())+Js(1))
        var.put(u'IDENTIFIER_PART', var.get(u'Array').create(Js(128)))
        #for JS loop
        var.put(u'ch', Js(0.0))
        while (var.get(u'ch')<Js(128)):
            try:
                var.get(u'IDENTIFIER_PART').put(var.get(u'ch'), ((((((var.get(u'ch')>=Js(97)) and (var.get(u'ch')<=Js(122))) or ((var.get(u'ch')>=Js(65)) and (var.get(u'ch')<=Js(90)))) or ((var.get(u'ch')>=Js(48)) and (var.get(u'ch')<=Js(57)))) or PyJsStrictEq(var.get(u'ch'),Js(36))) or PyJsStrictEq(var.get(u'ch'),Js(95))))
            finally:
                    var.put(u'ch',Js(var.get(u'ch').to_number())+Js(1))
        pass
        pass
        pass
        pass
        PyJs_Object_3313_ = Js({u'isDecimalDigit':var.get(u'isDecimalDigit'),u'isHexDigit':var.get(u'isHexDigit'),u'isOctalDigit':var.get(u'isOctalDigit'),u'isWhiteSpace':var.get(u'isWhiteSpace'),u'isLineTerminator':var.get(u'isLineTerminator'),u'isIdentifierStartES5':var.get(u'isIdentifierStartES5'),u'isIdentifierPartES5':var.get(u'isIdentifierPartES5'),u'isIdentifierStartES6':var.get(u'isIdentifierStartES6'),u'isIdentifierPartES6':var.get(u'isIdentifierPartES6')})
        var.get(u'module').put(u'exports', PyJs_Object_3313_)
    PyJs_anonymous_3310_._set_name(u'anonymous')
    PyJs_anonymous_3310_()
PyJs_anonymous_3309_._set_name(u'anonymous')
PyJs_Object_3314_ = Js({})
@Js
def PyJs_anonymous_3315_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_3316_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'isKeywordES6', u'isKeywordES5', u'code', u'isIdentifierNameES6', u'decodeUtf16', u'isIdentifierNameES5', u'isIdentifierES5', u'isIdentifierES6', u'isReservedWordES5', u'isReservedWordES6', u'isRestrictedWord', u'isStrictModeReservedWordES6'])
        @Js
        def PyJsHoisted_isKeywordES6_(id, strict, this, arguments, var=var):
            var = Scope({u'this':this, u'strict':strict, u'id':id, u'arguments':arguments}, var)
            var.registers([u'strict', u'id'])
            if (var.get(u'strict') and var.get(u'isStrictModeReservedWordES6')(var.get(u'id'))):
                return var.get(u'true')
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'id').get(u'length'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(2.0)):
                    SWITCHED = True
                    return ((PyJsStrictEq(var.get(u'id'),Js(u'if')) or PyJsStrictEq(var.get(u'id'),Js(u'in'))) or PyJsStrictEq(var.get(u'id'),Js(u'do')))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(3.0)):
                    SWITCHED = True
                    return (((PyJsStrictEq(var.get(u'id'),Js(u'var')) or PyJsStrictEq(var.get(u'id'),Js(u'for'))) or PyJsStrictEq(var.get(u'id'),Js(u'new'))) or PyJsStrictEq(var.get(u'id'),Js(u'try')))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(4.0)):
                    SWITCHED = True
                    return (((((PyJsStrictEq(var.get(u'id'),Js(u'this')) or PyJsStrictEq(var.get(u'id'),Js(u'else'))) or PyJsStrictEq(var.get(u'id'),Js(u'case'))) or PyJsStrictEq(var.get(u'id'),Js(u'void'))) or PyJsStrictEq(var.get(u'id'),Js(u'with'))) or PyJsStrictEq(var.get(u'id'),Js(u'enum')))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(5.0)):
                    SWITCHED = True
                    return (((((((PyJsStrictEq(var.get(u'id'),Js(u'while')) or PyJsStrictEq(var.get(u'id'),Js(u'break'))) or PyJsStrictEq(var.get(u'id'),Js(u'catch'))) or PyJsStrictEq(var.get(u'id'),Js(u'throw'))) or PyJsStrictEq(var.get(u'id'),Js(u'const'))) or PyJsStrictEq(var.get(u'id'),Js(u'yield'))) or PyJsStrictEq(var.get(u'id'),Js(u'class'))) or PyJsStrictEq(var.get(u'id'),Js(u'super')))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(6.0)):
                    SWITCHED = True
                    return (((((PyJsStrictEq(var.get(u'id'),Js(u'return')) or PyJsStrictEq(var.get(u'id'),Js(u'typeof'))) or PyJsStrictEq(var.get(u'id'),Js(u'delete'))) or PyJsStrictEq(var.get(u'id'),Js(u'switch'))) or PyJsStrictEq(var.get(u'id'),Js(u'export'))) or PyJsStrictEq(var.get(u'id'),Js(u'import')))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(7.0)):
                    SWITCHED = True
                    return ((PyJsStrictEq(var.get(u'id'),Js(u'default')) or PyJsStrictEq(var.get(u'id'),Js(u'finally'))) or PyJsStrictEq(var.get(u'id'),Js(u'extends')))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(8.0)):
                    SWITCHED = True
                    return ((PyJsStrictEq(var.get(u'id'),Js(u'function')) or PyJsStrictEq(var.get(u'id'),Js(u'continue'))) or PyJsStrictEq(var.get(u'id'),Js(u'debugger')))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(10.0)):
                    SWITCHED = True
                    return PyJsStrictEq(var.get(u'id'),Js(u'instanceof'))
                if True:
                    SWITCHED = True
                    return Js(False)
                SWITCHED = True
                break
        PyJsHoisted_isKeywordES6_.func_name = u'isKeywordES6'
        var.put(u'isKeywordES6', PyJsHoisted_isKeywordES6_)
        @Js
        def PyJsHoisted_isKeywordES5_(id, strict, this, arguments, var=var):
            var = Scope({u'this':this, u'strict':strict, u'id':id, u'arguments':arguments}, var)
            var.registers([u'strict', u'id'])
            if (var.get(u'strict').neg() and PyJsStrictEq(var.get(u'id'),Js(u'yield'))):
                return Js(False)
            return var.get(u'isKeywordES6')(var.get(u'id'), var.get(u'strict'))
        PyJsHoisted_isKeywordES5_.func_name = u'isKeywordES5'
        var.put(u'isKeywordES5', PyJsHoisted_isKeywordES5_)
        @Js
        def PyJsHoisted_isIdentifierNameES6_(id, this, arguments, var=var):
            var = Scope({u'this':this, u'id':id, u'arguments':arguments}, var)
            var.registers([u'ch', u'i', u'lowCh', u'id', u'iz', u'check'])
            pass
            if PyJsStrictEq(var.get(u'id').get(u'length'),Js(0.0)):
                return Js(False)
            var.put(u'check', var.get(u'code').get(u'isIdentifierStartES6'))
            #for JS loop
            PyJsComma(var.put(u'i', Js(0.0)),var.put(u'iz', var.get(u'id').get(u'length')))
            while (var.get(u'i')<var.get(u'iz')):
                try:
                    var.put(u'ch', var.get(u'id').callprop(u'charCodeAt', var.get(u'i')))
                    if ((Js(55296)<=var.get(u'ch')) and (var.get(u'ch')<=Js(56319))):
                        var.put(u'i',Js(var.get(u'i').to_number())+Js(1))
                        if (var.get(u'i')>=var.get(u'iz')):
                            return Js(False)
                        var.put(u'lowCh', var.get(u'id').callprop(u'charCodeAt', var.get(u'i')))
                        if ((Js(56320)<=var.get(u'lowCh')) and (var.get(u'lowCh')<=Js(57343))).neg():
                            return Js(False)
                        var.put(u'ch', var.get(u'decodeUtf16')(var.get(u'ch'), var.get(u'lowCh')))
                    if var.get(u'check')(var.get(u'ch')).neg():
                        return Js(False)
                    var.put(u'check', var.get(u'code').get(u'isIdentifierPartES6'))
                finally:
                        var.put(u'i',Js(var.get(u'i').to_number())+Js(1))
            return var.get(u'true')
        PyJsHoisted_isIdentifierNameES6_.func_name = u'isIdentifierNameES6'
        var.put(u'isIdentifierNameES6', PyJsHoisted_isIdentifierNameES6_)
        @Js
        def PyJsHoisted_decodeUtf16_(lead, trail, this, arguments, var=var):
            var = Scope({u'this':this, u'trail':trail, u'arguments':arguments, u'lead':lead}, var)
            var.registers([u'trail', u'lead'])
            return ((((var.get(u'lead')-Js(55296))*Js(1024))+(var.get(u'trail')-Js(56320)))+Js(65536))
        PyJsHoisted_decodeUtf16_.func_name = u'decodeUtf16'
        var.put(u'decodeUtf16', PyJsHoisted_decodeUtf16_)
        @Js
        def PyJsHoisted_isIdentifierNameES5_(id, this, arguments, var=var):
            var = Scope({u'this':this, u'id':id, u'arguments':arguments}, var)
            var.registers([u'i', u'ch', u'iz', u'id'])
            pass
            if PyJsStrictEq(var.get(u'id').get(u'length'),Js(0.0)):
                return Js(False)
            var.put(u'ch', var.get(u'id').callprop(u'charCodeAt', Js(0.0)))
            if var.get(u'code').callprop(u'isIdentifierStartES5', var.get(u'ch')).neg():
                return Js(False)
            #for JS loop
            PyJsComma(var.put(u'i', Js(1.0)),var.put(u'iz', var.get(u'id').get(u'length')))
            while (var.get(u'i')<var.get(u'iz')):
                try:
                    var.put(u'ch', var.get(u'id').callprop(u'charCodeAt', var.get(u'i')))
                    if var.get(u'code').callprop(u'isIdentifierPartES5', var.get(u'ch')).neg():
                        return Js(False)
                finally:
                        var.put(u'i',Js(var.get(u'i').to_number())+Js(1))
            return var.get(u'true')
        PyJsHoisted_isIdentifierNameES5_.func_name = u'isIdentifierNameES5'
        var.put(u'isIdentifierNameES5', PyJsHoisted_isIdentifierNameES5_)
        @Js
        def PyJsHoisted_isIdentifierES5_(id, strict, this, arguments, var=var):
            var = Scope({u'this':this, u'strict':strict, u'id':id, u'arguments':arguments}, var)
            var.registers([u'strict', u'id'])
            return (var.get(u'isIdentifierNameES5')(var.get(u'id')) and var.get(u'isReservedWordES5')(var.get(u'id'), var.get(u'strict')).neg())
        PyJsHoisted_isIdentifierES5_.func_name = u'isIdentifierES5'
        var.put(u'isIdentifierES5', PyJsHoisted_isIdentifierES5_)
        @Js
        def PyJsHoisted_isIdentifierES6_(id, strict, this, arguments, var=var):
            var = Scope({u'this':this, u'strict':strict, u'id':id, u'arguments':arguments}, var)
            var.registers([u'strict', u'id'])
            return (var.get(u'isIdentifierNameES6')(var.get(u'id')) and var.get(u'isReservedWordES6')(var.get(u'id'), var.get(u'strict')).neg())
        PyJsHoisted_isIdentifierES6_.func_name = u'isIdentifierES6'
        var.put(u'isIdentifierES6', PyJsHoisted_isIdentifierES6_)
        @Js
        def PyJsHoisted_isReservedWordES5_(id, strict, this, arguments, var=var):
            var = Scope({u'this':this, u'strict':strict, u'id':id, u'arguments':arguments}, var)
            var.registers([u'strict', u'id'])
            return (((PyJsStrictEq(var.get(u'id'),Js(u'null')) or PyJsStrictEq(var.get(u'id'),Js(u'true'))) or PyJsStrictEq(var.get(u'id'),Js(u'false'))) or var.get(u'isKeywordES5')(var.get(u'id'), var.get(u'strict')))
        PyJsHoisted_isReservedWordES5_.func_name = u'isReservedWordES5'
        var.put(u'isReservedWordES5', PyJsHoisted_isReservedWordES5_)
        @Js
        def PyJsHoisted_isReservedWordES6_(id, strict, this, arguments, var=var):
            var = Scope({u'this':this, u'strict':strict, u'id':id, u'arguments':arguments}, var)
            var.registers([u'strict', u'id'])
            return (((PyJsStrictEq(var.get(u'id'),Js(u'null')) or PyJsStrictEq(var.get(u'id'),Js(u'true'))) or PyJsStrictEq(var.get(u'id'),Js(u'false'))) or var.get(u'isKeywordES6')(var.get(u'id'), var.get(u'strict')))
        PyJsHoisted_isReservedWordES6_.func_name = u'isReservedWordES6'
        var.put(u'isReservedWordES6', PyJsHoisted_isReservedWordES6_)
        @Js
        def PyJsHoisted_isRestrictedWord_(id, this, arguments, var=var):
            var = Scope({u'this':this, u'id':id, u'arguments':arguments}, var)
            var.registers([u'id'])
            return (PyJsStrictEq(var.get(u'id'),Js(u'eval')) or PyJsStrictEq(var.get(u'id'),Js(u'arguments')))
        PyJsHoisted_isRestrictedWord_.func_name = u'isRestrictedWord'
        var.put(u'isRestrictedWord', PyJsHoisted_isRestrictedWord_)
        @Js
        def PyJsHoisted_isStrictModeReservedWordES6_(id, this, arguments, var=var):
            var = Scope({u'this':this, u'id':id, u'arguments':arguments}, var)
            var.registers([u'id'])
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'id'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'implements')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'interface')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'package')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'private')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'protected')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'public')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'static')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'let')):
                    SWITCHED = True
                    return var.get(u'true')
                if True:
                    SWITCHED = True
                    return Js(False)
                SWITCHED = True
                break
        PyJsHoisted_isStrictModeReservedWordES6_.func_name = u'isStrictModeReservedWordES6'
        var.put(u'isStrictModeReservedWordES6', PyJsHoisted_isStrictModeReservedWordES6_)
        Js(u'use strict')
        var.put(u'code', var.get(u'require')(Js(u'./code')))
        pass
        pass
        pass
        pass
        pass
        pass
        pass
        pass
        pass
        pass
        pass
        PyJs_Object_3317_ = Js({u'isKeywordES5':var.get(u'isKeywordES5'),u'isKeywordES6':var.get(u'isKeywordES6'),u'isReservedWordES5':var.get(u'isReservedWordES5'),u'isReservedWordES6':var.get(u'isReservedWordES6'),u'isRestrictedWord':var.get(u'isRestrictedWord'),u'isIdentifierNameES5':var.get(u'isIdentifierNameES5'),u'isIdentifierNameES6':var.get(u'isIdentifierNameES6'),u'isIdentifierES5':var.get(u'isIdentifierES5'),u'isIdentifierES6':var.get(u'isIdentifierES6')})
        var.get(u'module').put(u'exports', PyJs_Object_3317_)
    PyJs_anonymous_3316_._set_name(u'anonymous')
    PyJs_anonymous_3316_()
PyJs_anonymous_3315_._set_name(u'anonymous')
PyJs_Object_3318_ = Js({u'./code':Js(274.0)})
@Js
def PyJs_anonymous_3319_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_3320_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        Js(u'use strict')
        var.get(u'exports').put(u'ast', var.get(u'require')(Js(u'./ast')))
        var.get(u'exports').put(u'code', var.get(u'require')(Js(u'./code')))
        var.get(u'exports').put(u'keyword', var.get(u'require')(Js(u'./keyword')))
    PyJs_anonymous_3320_._set_name(u'anonymous')
    PyJs_anonymous_3320_()
PyJs_anonymous_3319_._set_name(u'anonymous')
PyJs_Object_3321_ = Js({u'./ast':Js(273.0),u'./code':Js(274.0),u'./keyword':Js(275.0)})
@Js
def PyJs_anonymous_3322_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_3324_ = Js({u'Array':Js(False),u'ArrayBuffer':Js(False),u'Boolean':Js(False),u'constructor':Js(False),u'DataView':Js(False),u'Date':Js(False),u'decodeURI':Js(False),u'decodeURIComponent':Js(False),u'encodeURI':Js(False),u'encodeURIComponent':Js(False),u'Error':Js(False),u'escape':Js(False),u'eval':Js(False),u'EvalError':Js(False),u'Float32Array':Js(False),u'Float64Array':Js(False),u'Function':Js(False),u'hasOwnProperty':Js(False),u'Infinity':Js(False),u'Int16Array':Js(False),u'Int32Array':Js(False),u'Int8Array':Js(False),u'isFinite':Js(False),u'isNaN':Js(False),u'isPrototypeOf':Js(False),u'JSON':Js(False),u'Map':Js(False),u'Math':Js(False),u'NaN':Js(False),u'Number':Js(False),u'Object':Js(False),u'parseFloat':Js(False),u'parseInt':Js(False),u'Promise':Js(False),u'propertyIsEnumerable':Js(False),u'Proxy':Js(False),u'RangeError':Js(False),u'ReferenceError':Js(False),u'Reflect':Js(False),u'RegExp':Js(False),u'Set':Js(False),u'String':Js(False),u'Symbol':Js(False),u'SyntaxError':Js(False),u'System':Js(False),u'toLocaleString':Js(False),u'toString':Js(False),u'TypeError':Js(False),u'Uint16Array':Js(False),u'Uint32Array':Js(False),u'Uint8Array':Js(False),u'Uint8ClampedArray':Js(False),u'undefined':Js(False),u'unescape':Js(False),u'URIError':Js(False),u'valueOf':Js(False),u'WeakMap':Js(False),u'WeakSet':Js(False)})
    PyJs_Object_3325_ = Js({u'Array':Js(False),u'Boolean':Js(False),u'constructor':Js(False),u'Date':Js(False),u'decodeURI':Js(False),u'decodeURIComponent':Js(False),u'encodeURI':Js(False),u'encodeURIComponent':Js(False),u'Error':Js(False),u'escape':Js(False),u'eval':Js(False),u'EvalError':Js(False),u'Function':Js(False),u'hasOwnProperty':Js(False),u'Infinity':Js(False),u'isFinite':Js(False),u'isNaN':Js(False),u'isPrototypeOf':Js(False),u'JSON':Js(False),u'Math':Js(False),u'NaN':Js(False),u'Number':Js(False),u'Object':Js(False),u'parseFloat':Js(False),u'parseInt':Js(False),u'propertyIsEnumerable':Js(False),u'RangeError':Js(False),u'ReferenceError':Js(False),u'RegExp':Js(False),u'String':Js(False),u'SyntaxError':Js(False),u'toLocaleString':Js(False),u'toString':Js(False),u'TypeError':Js(False),u'undefined':Js(False),u'unescape':Js(False),u'URIError':Js(False),u'valueOf':Js(False)})
    PyJs_Object_3326_ = Js({u'Array':Js(False),u'ArrayBuffer':Js(False),u'Boolean':Js(False),u'constructor':Js(False),u'DataView':Js(False),u'Date':Js(False),u'decodeURI':Js(False),u'decodeURIComponent':Js(False),u'encodeURI':Js(False),u'encodeURIComponent':Js(False),u'Error':Js(False),u'escape':Js(False),u'eval':Js(False),u'EvalError':Js(False),u'Float32Array':Js(False),u'Float64Array':Js(False),u'Function':Js(False),u'hasOwnProperty':Js(False),u'Infinity':Js(False),u'Int16Array':Js(False),u'Int32Array':Js(False),u'Int8Array':Js(False),u'isFinite':Js(False),u'isNaN':Js(False),u'isPrototypeOf':Js(False),u'JSON':Js(False),u'Map':Js(False),u'Math':Js(False),u'NaN':Js(False),u'Number':Js(False),u'Object':Js(False),u'parseFloat':Js(False),u'parseInt':Js(False),u'Promise':Js(False),u'propertyIsEnumerable':Js(False),u'Proxy':Js(False),u'RangeError':Js(False),u'ReferenceError':Js(False),u'Reflect':Js(False),u'RegExp':Js(False),u'Set':Js(False),u'String':Js(False),u'Symbol':Js(False),u'SyntaxError':Js(False),u'System':Js(False),u'toLocaleString':Js(False),u'toString':Js(False),u'TypeError':Js(False),u'Uint16Array':Js(False),u'Uint32Array':Js(False),u'Uint8Array':Js(False),u'Uint8ClampedArray':Js(False),u'undefined':Js(False),u'unescape':Js(False),u'URIError':Js(False),u'valueOf':Js(False),u'WeakMap':Js(False),u'WeakSet':Js(False)})
    PyJs_Object_3327_ = Js({u'addEventListener':Js(False),u'alert':Js(False),u'AnalyserNode':Js(False),u'Animation':Js(False),u'AnimationEffectReadOnly':Js(False),u'AnimationEffectTiming':Js(False),u'AnimationEffectTimingReadOnly':Js(False),u'AnimationEvent':Js(False),u'AnimationPlaybackEvent':Js(False),u'AnimationTimeline':Js(False),u'applicationCache':Js(False),u'ApplicationCache':Js(False),u'ApplicationCacheErrorEvent':Js(False),u'atob':Js(False),u'Attr':Js(False),u'Audio':Js(False),u'AudioBuffer':Js(False),u'AudioBufferSourceNode':Js(False),u'AudioContext':Js(False),u'AudioDestinationNode':Js(False),u'AudioListener':Js(False),u'AudioNode':Js(False),u'AudioParam':Js(False),u'AudioProcessingEvent':Js(False),u'AutocompleteErrorEvent':Js(False),u'BarProp':Js(False),u'BatteryManager':Js(False),u'BeforeUnloadEvent':Js(False),u'BiquadFilterNode':Js(False),u'Blob':Js(False),u'blur':Js(False),u'btoa':Js(False),u'Cache':Js(False),u'caches':Js(False),u'CacheStorage':Js(False),u'cancelAnimationFrame':Js(False),u'CanvasGradient':Js(False),u'CanvasPattern':Js(False),u'CanvasRenderingContext2D':Js(False),u'CDATASection':Js(False),u'ChannelMergerNode':Js(False),u'ChannelSplitterNode':Js(False),u'CharacterData':Js(False),u'clearInterval':Js(False),u'clearTimeout':Js(False),u'clientInformation':Js(False),u'ClientRect':Js(False),u'ClientRectList':Js(False),u'ClipboardEvent':Js(False),u'close':Js(False),u'closed':Js(False),u'CloseEvent':Js(False),u'Comment':Js(False),u'CompositionEvent':Js(False),u'confirm':Js(False),u'console':Js(False),u'ConvolverNode':Js(False),u'Credential':Js(False),u'CredentialsContainer':Js(False),u'crypto':Js(False),u'Crypto':Js(False),u'CryptoKey':Js(False),u'CSS':Js(False),u'CSSAnimation':Js(False),u'CSSFontFaceRule':Js(False),u'CSSImportRule':Js(False),u'CSSKeyframeRule':Js(False),u'CSSKeyframesRule':Js(False),u'CSSMediaRule':Js(False),u'CSSPageRule':Js(False),u'CSSRule':Js(False),u'CSSRuleList':Js(False),u'CSSStyleDeclaration':Js(False),u'CSSStyleRule':Js(False),u'CSSStyleSheet':Js(False),u'CSSSupportsRule':Js(False),u'CSSTransition':Js(False),u'CSSUnknownRule':Js(False),u'CSSViewportRule':Js(False),u'CustomEvent':Js(False),u'DataTransfer':Js(False),u'DataTransferItem':Js(False),u'DataTransferItemList':Js(False),u'Debug':Js(False),u'defaultStatus':Js(False),u'defaultstatus':Js(False),u'DelayNode':Js(False),u'DeviceMotionEvent':Js(False),u'DeviceOrientationEvent':Js(False),u'devicePixelRatio':Js(False),u'dispatchEvent':Js(False),u'document':Js(False),u'Document':Js(False),u'DocumentFragment':Js(False),u'DocumentTimeline':Js(False),u'DocumentType':Js(False),u'DOMError':Js(False),u'DOMException':Js(False),u'DOMImplementation':Js(False),u'DOMParser':Js(False),u'DOMSettableTokenList':Js(False),u'DOMStringList':Js(False),u'DOMStringMap':Js(False),u'DOMTokenList':Js(False),u'DragEvent':Js(False),u'DynamicsCompressorNode':Js(False),u'Element':Js(False),u'ElementTimeControl':Js(False),u'ErrorEvent':Js(False),u'event':Js(False),u'Event':Js(False),u'EventSource':Js(False),u'EventTarget':Js(False),u'external':Js(False),u'FederatedCredential':Js(False),u'fetch':Js(False),u'File':Js(False),u'FileError':Js(False),u'FileList':Js(False),u'FileReader':Js(False),u'find':Js(False),u'focus':Js(False),u'FocusEvent':Js(False),u'FontFace':Js(False),u'FormData':Js(False),u'frameElement':Js(False),u'frames':Js(False),u'GainNode':Js(False),u'Gamepad':Js(False),u'GamepadButton':Js(False),u'GamepadEvent':Js(False),u'getComputedStyle':Js(False),u'getSelection':Js(False),u'HashChangeEvent':Js(False),u'Headers':Js(False),u'history':Js(False),u'History':Js(False),u'HTMLAllCollection':Js(False),u'HTMLAnchorElement':Js(False),u'HTMLAppletElement':Js(False),u'HTMLAreaElement':Js(False),u'HTMLAudioElement':Js(False),u'HTMLBaseElement':Js(False),u'HTMLBlockquoteElement':Js(False),u'HTMLBodyElement':Js(False),u'HTMLBRElement':Js(False),u'HTMLButtonElement':Js(False),u'HTMLCanvasElement':Js(False),u'HTMLCollection':Js(False),u'HTMLContentElement':Js(False),u'HTMLDataListElement':Js(False),u'HTMLDetailsElement':Js(False),u'HTMLDialogElement':Js(False),u'HTMLDirectoryElement':Js(False),u'HTMLDivElement':Js(False),u'HTMLDListElement':Js(False),u'HTMLDocument':Js(False),u'HTMLElement':Js(False),u'HTMLEmbedElement':Js(False),u'HTMLFieldSetElement':Js(False),u'HTMLFontElement':Js(False),u'HTMLFormControlsCollection':Js(False),u'HTMLFormElement':Js(False),u'HTMLFrameElement':Js(False),u'HTMLFrameSetElement':Js(False),u'HTMLHeadElement':Js(False),u'HTMLHeadingElement':Js(False),u'HTMLHRElement':Js(False),u'HTMLHtmlElement':Js(False),u'HTMLIFrameElement':Js(False),u'HTMLImageElement':Js(False),u'HTMLInputElement':Js(False),u'HTMLIsIndexElement':Js(False),u'HTMLKeygenElement':Js(False),u'HTMLLabelElement':Js(False),u'HTMLLayerElement':Js(False),u'HTMLLegendElement':Js(False),u'HTMLLIElement':Js(False),u'HTMLLinkElement':Js(False),u'HTMLMapElement':Js(False),u'HTMLMarqueeElement':Js(False),u'HTMLMediaElement':Js(False),u'HTMLMenuElement':Js(False),u'HTMLMetaElement':Js(False),u'HTMLMeterElement':Js(False),u'HTMLModElement':Js(False),u'HTMLObjectElement':Js(False),u'HTMLOListElement':Js(False),u'HTMLOptGroupElement':Js(False),u'HTMLOptionElement':Js(False),u'HTMLOptionsCollection':Js(False),u'HTMLOutputElement':Js(False),u'HTMLParagraphElement':Js(False),u'HTMLParamElement':Js(False),u'HTMLPictureElement':Js(False),u'HTMLPreElement':Js(False),u'HTMLProgressElement':Js(False),u'HTMLQuoteElement':Js(False),u'HTMLScriptElement':Js(False),u'HTMLSelectElement':Js(False),u'HTMLShadowElement':Js(False),u'HTMLSourceElement':Js(False),u'HTMLSpanElement':Js(False),u'HTMLStyleElement':Js(False),u'HTMLTableCaptionElement':Js(False),u'HTMLTableCellElement':Js(False),u'HTMLTableColElement':Js(False),u'HTMLTableElement':Js(False),u'HTMLTableRowElement':Js(False),u'HTMLTableSectionElement':Js(False),u'HTMLTemplateElement':Js(False),u'HTMLTextAreaElement':Js(False),u'HTMLTitleElement':Js(False),u'HTMLTrackElement':Js(False),u'HTMLUListElement':Js(False),u'HTMLUnknownElement':Js(False),u'HTMLVideoElement':Js(False),u'IDBCursor':Js(False),u'IDBCursorWithValue':Js(False),u'IDBDatabase':Js(False),u'IDBEnvironment':Js(False),u'IDBFactory':Js(False),u'IDBIndex':Js(False),u'IDBKeyRange':Js(False),u'IDBObjectStore':Js(False),u'IDBOpenDBRequest':Js(False),u'IDBRequest':Js(False),u'IDBTransaction':Js(False),u'IDBVersionChangeEvent':Js(False),u'Image':Js(False),u'ImageBitmap':Js(False),u'ImageData':Js(False),u'indexedDB':Js(False),u'innerHeight':Js(False),u'innerWidth':Js(False),u'InputEvent':Js(False),u'InputMethodContext':Js(False),u'IntersectionObserver':Js(False),u'IntersectionObserverEntry':Js(False),u'Intl':Js(False),u'KeyboardEvent':Js(False),u'KeyframeEffect':Js(False),u'KeyframeEffectReadOnly':Js(False),u'length':Js(False),u'localStorage':Js(False),u'location':Js(False),u'Location':Js(False),u'locationbar':Js(False),u'matchMedia':Js(False),u'MediaElementAudioSourceNode':Js(False),u'MediaEncryptedEvent':Js(False),u'MediaError':Js(False),u'MediaKeyError':Js(False),u'MediaKeyEvent':Js(False),u'MediaKeyMessageEvent':Js(False),u'MediaKeys':Js(False),u'MediaKeySession':Js(False),u'MediaKeyStatusMap':Js(False),u'MediaKeySystemAccess':Js(False),u'MediaList':Js(False),u'MediaQueryList':Js(False),u'MediaQueryListEvent':Js(False),u'MediaSource':Js(False),u'MediaStream':Js(False),u'MediaStreamAudioDestinationNode':Js(False),u'MediaStreamAudioSourceNode':Js(False),u'MediaStreamEvent':Js(False),u'MediaStreamTrack':Js(False),u'menubar':Js(False),u'MessageChannel':Js(False),u'MessageEvent':Js(False),u'MessagePort':Js(False),u'MIDIAccess':Js(False),u'MIDIConnectionEvent':Js(False),u'MIDIInput':Js(False),u'MIDIInputMap':Js(False),u'MIDIMessageEvent':Js(False),u'MIDIOutput':Js(False),u'MIDIOutputMap':Js(False),u'MIDIPort':Js(False),u'MimeType':Js(False),u'MimeTypeArray':Js(False),u'MouseEvent':Js(False),u'moveBy':Js(False),u'moveTo':Js(False),u'MutationEvent':Js(False),u'MutationObserver':Js(False),u'MutationRecord':Js(False),u'name':Js(False),u'NamedNodeMap':Js(False),u'navigator':Js(False),u'Navigator':Js(False),u'Node':Js(False),u'NodeFilter':Js(False),u'NodeIterator':Js(False),u'NodeList':Js(False),u'Notification':Js(False),u'OfflineAudioCompletionEvent':Js(False),u'OfflineAudioContext':Js(False),u'offscreenBuffering':Js(False),u'onbeforeunload':var.get(u'true'),u'onblur':var.get(u'true'),u'onerror':var.get(u'true'),u'onfocus':var.get(u'true'),u'onload':var.get(u'true'),u'onresize':var.get(u'true'),u'onunload':var.get(u'true'),u'open':Js(False),u'openDatabase':Js(False),u'opener':Js(False),u'opera':Js(False),u'Option':Js(False),u'OscillatorNode':Js(False),u'outerHeight':Js(False),u'outerWidth':Js(False),u'PageTransitionEvent':Js(False),u'pageXOffset':Js(False),u'pageYOffset':Js(False),u'parent':Js(False),u'PasswordCredential':Js(False),u'Path2D':Js(False),u'performance':Js(False),u'Performance':Js(False),u'PerformanceEntry':Js(False),u'PerformanceMark':Js(False),u'PerformanceMeasure':Js(False),u'PerformanceNavigation':Js(False),u'PerformanceResourceTiming':Js(False),u'PerformanceTiming':Js(False),u'PeriodicWave':Js(False),u'Permissions':Js(False),u'PermissionStatus':Js(False),u'personalbar':Js(False),u'Plugin':Js(False),u'PluginArray':Js(False),u'PopStateEvent':Js(False),u'postMessage':Js(False),u'print':Js(False),u'ProcessingInstruction':Js(False),u'ProgressEvent':Js(False),u'PromiseRejectionEvent':Js(False),u'prompt':Js(False),u'PushManager':Js(False),u'PushSubscription':Js(False),u'RadioNodeList':Js(False),u'Range':Js(False),u'ReadableByteStream':Js(False),u'ReadableStream':Js(False),u'removeEventListener':Js(False),u'Request':Js(False),u'requestAnimationFrame':Js(False),u'requestIdleCallback':Js(False),u'resizeBy':Js(False),u'resizeTo':Js(False),u'Response':Js(False),u'RTCIceCandidate':Js(False),u'RTCSessionDescription':Js(False),u'RTCPeerConnection':Js(False),u'screen':Js(False),u'Screen':Js(False),u'screenLeft':Js(False),u'ScreenOrientation':Js(False),u'screenTop':Js(False),u'screenX':Js(False),u'screenY':Js(False),u'ScriptProcessorNode':Js(False),u'scroll':Js(False),u'scrollbars':Js(False),u'scrollBy':Js(False),u'scrollTo':Js(False),u'scrollX':Js(False),u'scrollY':Js(False),u'SecurityPolicyViolationEvent':Js(False),u'Selection':Js(False),u'self':Js(False),u'ServiceWorker':Js(False),u'ServiceWorkerContainer':Js(False),u'ServiceWorkerRegistration':Js(False),u'sessionStorage':Js(False),u'setInterval':Js(False),u'setTimeout':Js(False),u'ShadowRoot':Js(False),u'SharedKeyframeList':Js(False),u'SharedWorker':Js(False),u'showModalDialog':Js(False),u'SiteBoundCredential':Js(False),u'speechSynthesis':Js(False),u'SpeechSynthesisEvent':Js(False),u'SpeechSynthesisUtterance':Js(False),u'status':Js(False),u'statusbar':Js(False),u'stop':Js(False),u'Storage':Js(False),u'StorageEvent':Js(False),u'styleMedia':Js(False),u'StyleSheet':Js(False),u'StyleSheetList':Js(False),u'SubtleCrypto':Js(False),u'SVGAElement':Js(False),u'SVGAltGlyphDefElement':Js(False),u'SVGAltGlyphElement':Js(False),u'SVGAltGlyphItemElement':Js(False),u'SVGAngle':Js(False),u'SVGAnimateColorElement':Js(False),u'SVGAnimatedAngle':Js(False),u'SVGAnimatedBoolean':Js(False),u'SVGAnimatedEnumeration':Js(False),u'SVGAnimatedInteger':Js(False),u'SVGAnimatedLength':Js(False),u'SVGAnimatedLengthList':Js(False),u'SVGAnimatedNumber':Js(False),u'SVGAnimatedNumberList':Js(False),u'SVGAnimatedPathData':Js(False),u'SVGAnimatedPoints':Js(False),u'SVGAnimatedPreserveAspectRatio':Js(False),u'SVGAnimatedRect':Js(False),u'SVGAnimatedString':Js(False),u'SVGAnimatedTransformList':Js(False),u'SVGAnimateElement':Js(False),u'SVGAnimateMotionElement':Js(False),u'SVGAnimateTransformElement':Js(False),u'SVGAnimationElement':Js(False),u'SVGCircleElement':Js(False),u'SVGClipPathElement':Js(False),u'SVGColor':Js(False),u'SVGColorProfileElement':Js(False),u'SVGColorProfileRule':Js(False),u'SVGComponentTransferFunctionElement':Js(False),u'SVGCSSRule':Js(False),u'SVGCursorElement':Js(False),u'SVGDefsElement':Js(False),u'SVGDescElement':Js(False),u'SVGDiscardElement':Js(False),u'SVGDocument':Js(False),u'SVGElement':Js(False),u'SVGElementInstance':Js(False),u'SVGElementInstanceList':Js(False),u'SVGEllipseElement':Js(False),u'SVGEvent':Js(False),u'SVGExternalResourcesRequired':Js(False),u'SVGFEBlendElement':Js(False),u'SVGFEColorMatrixElement':Js(False),u'SVGFEComponentTransferElement':Js(False),u'SVGFECompositeElement':Js(False),u'SVGFEConvolveMatrixElement':Js(False),u'SVGFEDiffuseLightingElement':Js(False),u'SVGFEDisplacementMapElement':Js(False),u'SVGFEDistantLightElement':Js(False),u'SVGFEDropShadowElement':Js(False),u'SVGFEFloodElement':Js(False),u'SVGFEFuncAElement':Js(False),u'SVGFEFuncBElement':Js(False),u'SVGFEFuncGElement':Js(False),u'SVGFEFuncRElement':Js(False),u'SVGFEGaussianBlurElement':Js(False),u'SVGFEImageElement':Js(False),u'SVGFEMergeElement':Js(False),u'SVGFEMergeNodeElement':Js(False),u'SVGFEMorphologyElement':Js(False),u'SVGFEOffsetElement':Js(False),u'SVGFEPointLightElement':Js(False),u'SVGFESpecularLightingElement':Js(False),u'SVGFESpotLightElement':Js(False),u'SVGFETileElement':Js(False),u'SVGFETurbulenceElement':Js(False),u'SVGFilterElement':Js(False),u'SVGFilterPrimitiveStandardAttributes':Js(False),u'SVGFitToViewBox':Js(False),u'SVGFontElement':Js(False),u'SVGFontFaceElement':Js(False),u'SVGFontFaceFormatElement':Js(False),u'SVGFontFaceNameElement':Js(False),u'SVGFontFaceSrcElement':Js(False),u'SVGFontFaceUriElement':Js(False),u'SVGForeignObjectElement':Js(False),u'SVGGElement':Js(False),u'SVGGeometryElement':Js(False),u'SVGGlyphElement':Js(False),u'SVGGlyphRefElement':Js(False),u'SVGGradientElement':Js(False),u'SVGGraphicsElement':Js(False),u'SVGHKernElement':Js(False),u'SVGICCColor':Js(False),u'SVGImageElement':Js(False),u'SVGLangSpace':Js(False),u'SVGLength':Js(False),u'SVGLengthList':Js(False),u'SVGLinearGradientElement':Js(False),u'SVGLineElement':Js(False),u'SVGLocatable':Js(False),u'SVGMarkerElement':Js(False),u'SVGMaskElement':Js(False),u'SVGMatrix':Js(False),u'SVGMetadataElement':Js(False),u'SVGMissingGlyphElement':Js(False),u'SVGMPathElement':Js(False),u'SVGNumber':Js(False),u'SVGNumberList':Js(False),u'SVGPaint':Js(False),u'SVGPathElement':Js(False),u'SVGPathSeg':Js(False),u'SVGPathSegArcAbs':Js(False),u'SVGPathSegArcRel':Js(False),u'SVGPathSegClosePath':Js(False),u'SVGPathSegCurvetoCubicAbs':Js(False),u'SVGPathSegCurvetoCubicRel':Js(False),u'SVGPathSegCurvetoCubicSmoothAbs':Js(False),u'SVGPathSegCurvetoCubicSmoothRel':Js(False),u'SVGPathSegCurvetoQuadraticAbs':Js(False),u'SVGPathSegCurvetoQuadraticRel':Js(False),u'SVGPathSegCurvetoQuadraticSmoothAbs':Js(False),u'SVGPathSegCurvetoQuadraticSmoothRel':Js(False),u'SVGPathSegLinetoAbs':Js(False),u'SVGPathSegLinetoHorizontalAbs':Js(False),u'SVGPathSegLinetoHorizontalRel':Js(False),u'SVGPathSegLinetoRel':Js(False),u'SVGPathSegLinetoVerticalAbs':Js(False),u'SVGPathSegLinetoVerticalRel':Js(False),u'SVGPathSegList':Js(False),u'SVGPathSegMovetoAbs':Js(False),u'SVGPathSegMovetoRel':Js(False),u'SVGPatternElement':Js(False),u'SVGPoint':Js(False),u'SVGPointList':Js(False),u'SVGPolygonElement':Js(False),u'SVGPolylineElement':Js(False),u'SVGPreserveAspectRatio':Js(False),u'SVGRadialGradientElement':Js(False),u'SVGRect':Js(False),u'SVGRectElement':Js(False),u'SVGRenderingIntent':Js(False),u'SVGScriptElement':Js(False),u'SVGSetElement':Js(False),u'SVGStopElement':Js(False),u'SVGStringList':Js(False),u'SVGStylable':Js(False),u'SVGStyleElement':Js(False),u'SVGSVGElement':Js(False),u'SVGSwitchElement':Js(False),u'SVGSymbolElement':Js(False),u'SVGTests':Js(False),u'SVGTextContentElement':Js(False),u'SVGTextElement':Js(False),u'SVGTextPathElement':Js(False),u'SVGTextPositioningElement':Js(False),u'SVGTitleElement':Js(False),u'SVGTransform':Js(False),u'SVGTransformable':Js(False),u'SVGTransformList':Js(False),u'SVGTRefElement':Js(False),u'SVGTSpanElement':Js(False),u'SVGUnitTypes':Js(False),u'SVGURIReference':Js(False),u'SVGUseElement':Js(False),u'SVGViewElement':Js(False),u'SVGViewSpec':Js(False),u'SVGVKernElement':Js(False),u'SVGZoomAndPan':Js(False),u'SVGZoomEvent':Js(False),u'Text':Js(False),u'TextDecoder':Js(False),u'TextEncoder':Js(False),u'TextEvent':Js(False),u'TextMetrics':Js(False),u'TextTrack':Js(False),u'TextTrackCue':Js(False),u'TextTrackCueList':Js(False),u'TextTrackList':Js(False),u'TimeEvent':Js(False),u'TimeRanges':Js(False),u'toolbar':Js(False),u'top':Js(False),u'Touch':Js(False),u'TouchEvent':Js(False),u'TouchList':Js(False),u'TrackEvent':Js(False),u'TransitionEvent':Js(False),u'TreeWalker':Js(False),u'UIEvent':Js(False),u'URL':Js(False),u'URLSearchParams':Js(False),u'ValidityState':Js(False),u'VTTCue':Js(False),u'WaveShaperNode':Js(False),u'WebGLActiveInfo':Js(False),u'WebGLBuffer':Js(False),u'WebGLContextEvent':Js(False),u'WebGLFramebuffer':Js(False),u'WebGLProgram':Js(False),u'WebGLRenderbuffer':Js(False),u'WebGLRenderingContext':Js(False),u'WebGLShader':Js(False),u'WebGLShaderPrecisionFormat':Js(False),u'WebGLTexture':Js(False),u'WebGLUniformLocation':Js(False),u'WebSocket':Js(False),u'WheelEvent':Js(False),u'window':Js(False),u'Window':Js(False),u'Worker':Js(False),u'XDomainRequest':Js(False),u'XMLDocument':Js(False),u'XMLHttpRequest':Js(False),u'XMLHttpRequestEventTarget':Js(False),u'XMLHttpRequestProgressEvent':Js(False),u'XMLHttpRequestUpload':Js(False),u'XMLSerializer':Js(False),u'XPathEvaluator':Js(False),u'XPathException':Js(False),u'XPathExpression':Js(False),u'XPathNamespace':Js(False),u'XPathNSResolver':Js(False),u'XPathResult':Js(False),u'XSLTProcessor':Js(False)})
    PyJs_Object_3328_ = Js({u'applicationCache':Js(False),u'atob':Js(False),u'Blob':Js(False),u'BroadcastChannel':Js(False),u'btoa':Js(False),u'Cache':Js(False),u'caches':Js(False),u'clearInterval':Js(False),u'clearTimeout':Js(False),u'close':var.get(u'true'),u'console':Js(False),u'fetch':Js(False),u'FileReaderSync':Js(False),u'FormData':Js(False),u'Headers':Js(False),u'IDBCursor':Js(False),u'IDBCursorWithValue':Js(False),u'IDBDatabase':Js(False),u'IDBFactory':Js(False),u'IDBIndex':Js(False),u'IDBKeyRange':Js(False),u'IDBObjectStore':Js(False),u'IDBOpenDBRequest':Js(False),u'IDBRequest':Js(False),u'IDBTransaction':Js(False),u'IDBVersionChangeEvent':Js(False),u'ImageData':Js(False),u'importScripts':var.get(u'true'),u'indexedDB':Js(False),u'location':Js(False),u'MessageChannel':Js(False),u'MessagePort':Js(False),u'name':Js(False),u'navigator':Js(False),u'Notification':Js(False),u'onclose':var.get(u'true'),u'onconnect':var.get(u'true'),u'onerror':var.get(u'true'),u'onlanguagechange':var.get(u'true'),u'onmessage':var.get(u'true'),u'onoffline':var.get(u'true'),u'ononline':var.get(u'true'),u'onrejectionhandled':var.get(u'true'),u'onunhandledrejection':var.get(u'true'),u'performance':Js(False),u'Performance':Js(False),u'PerformanceEntry':Js(False),u'PerformanceMark':Js(False),u'PerformanceMeasure':Js(False),u'PerformanceNavigation':Js(False),u'PerformanceResourceTiming':Js(False),u'PerformanceTiming':Js(False),u'postMessage':var.get(u'true'),u'Promise':Js(False),u'Request':Js(False),u'Response':Js(False),u'self':var.get(u'true'),u'ServiceWorkerRegistration':Js(False),u'setInterval':Js(False),u'setTimeout':Js(False),u'TextDecoder':Js(False),u'TextEncoder':Js(False),u'URL':Js(False),u'URLSearchParams':Js(False),u'WebSocket':Js(False),u'Worker':Js(False),u'XMLHttpRequest':Js(False)})
    PyJs_Object_3329_ = Js({u'__dirname':Js(False),u'__filename':Js(False),u'arguments':Js(False),u'Buffer':Js(False),u'clearImmediate':Js(False),u'clearInterval':Js(False),u'clearTimeout':Js(False),u'console':Js(False),u'exports':var.get(u'true'),u'GLOBAL':Js(False),u'global':Js(False),u'Intl':Js(False),u'module':Js(False),u'process':Js(False),u'require':Js(False),u'root':Js(False),u'setImmediate':Js(False),u'setInterval':Js(False),u'setTimeout':Js(False)})
    PyJs_Object_3330_ = Js({u'exports':var.get(u'true'),u'module':Js(False),u'require':Js(False),u'global':Js(False)})
    PyJs_Object_3331_ = Js({u'define':Js(False),u'require':Js(False)})
    PyJs_Object_3332_ = Js({u'after':Js(False),u'afterEach':Js(False),u'before':Js(False),u'beforeEach':Js(False),u'context':Js(False),u'describe':Js(False),u'it':Js(False),u'mocha':Js(False),u'run':Js(False),u'setup':Js(False),u'specify':Js(False),u'suite':Js(False),u'suiteSetup':Js(False),u'suiteTeardown':Js(False),u'teardown':Js(False),u'test':Js(False),u'xcontext':Js(False),u'xdescribe':Js(False),u'xit':Js(False),u'xspecify':Js(False)})
    PyJs_Object_3333_ = Js({u'afterAll':Js(False),u'afterEach':Js(False),u'beforeAll':Js(False),u'beforeEach':Js(False),u'describe':Js(False),u'expect':Js(False),u'fail':Js(False),u'fdescribe':Js(False),u'fit':Js(False),u'it':Js(False),u'jasmine':Js(False),u'pending':Js(False),u'runs':Js(False),u'spyOn':Js(False),u'waits':Js(False),u'waitsFor':Js(False),u'xdescribe':Js(False),u'xit':Js(False)})
    PyJs_Object_3334_ = Js({u'afterAll':Js(False),u'afterEach':Js(False),u'beforeAll':Js(False),u'beforeEach':Js(False),u'check':Js(False),u'describe':Js(False),u'expect':Js(False),u'gen':Js(False),u'it':Js(False),u'fit':Js(False),u'jest':Js(False),u'pit':Js(False),u'require':Js(False),u'test':Js(False),u'xdescribe':Js(False),u'xit':Js(False),u'xtest':Js(False)})
    PyJs_Object_3335_ = Js({u'asyncTest':Js(False),u'deepEqual':Js(False),u'equal':Js(False),u'expect':Js(False),u'module':Js(False),u'notDeepEqual':Js(False),u'notEqual':Js(False),u'notOk':Js(False),u'notPropEqual':Js(False),u'notStrictEqual':Js(False),u'ok':Js(False),u'propEqual':Js(False),u'QUnit':Js(False),u'raises':Js(False),u'start':Js(False),u'stop':Js(False),u'strictEqual':Js(False),u'test':Js(False),u'throws':Js(False)})
    PyJs_Object_3336_ = Js({u'console':var.get(u'true'),u'exports':var.get(u'true'),u'phantom':var.get(u'true'),u'require':var.get(u'true'),u'WebPage':var.get(u'true')})
    PyJs_Object_3337_ = Js({u'emit':Js(False),u'exports':Js(False),u'getRow':Js(False),u'log':Js(False),u'module':Js(False),u'provides':Js(False),u'require':Js(False),u'respond':Js(False),u'send':Js(False),u'start':Js(False),u'sum':Js(False)})
    PyJs_Object_3338_ = Js({u'defineClass':Js(False),u'deserialize':Js(False),u'gc':Js(False),u'help':Js(False),u'importClass':Js(False),u'importPackage':Js(False),u'java':Js(False),u'load':Js(False),u'loadClass':Js(False),u'Packages':Js(False),u'print':Js(False),u'quit':Js(False),u'readFile':Js(False),u'readUrl':Js(False),u'runCommand':Js(False),u'seal':Js(False),u'serialize':Js(False),u'spawn':Js(False),u'sync':Js(False),u'toint32':Js(False),u'version':Js(False)})
    PyJs_Object_3339_ = Js({u'__DIR__':Js(False),u'__FILE__':Js(False),u'__LINE__':Js(False),u'com':Js(False),u'edu':Js(False),u'exit':Js(False),u'Java':Js(False),u'java':Js(False),u'javafx':Js(False),u'JavaImporter':Js(False),u'javax':Js(False),u'JSAdapter':Js(False),u'load':Js(False),u'loadWithNewGlobal':Js(False),u'org':Js(False),u'Packages':Js(False),u'print':Js(False),u'quit':Js(False)})
    PyJs_Object_3340_ = Js({u'ActiveXObject':var.get(u'true'),u'Enumerator':var.get(u'true'),u'GetObject':var.get(u'true'),u'ScriptEngine':var.get(u'true'),u'ScriptEngineBuildVersion':var.get(u'true'),u'ScriptEngineMajorVersion':var.get(u'true'),u'ScriptEngineMinorVersion':var.get(u'true'),u'VBArray':var.get(u'true'),u'WScript':var.get(u'true'),u'WSH':var.get(u'true'),u'XDomainRequest':var.get(u'true')})
    PyJs_Object_3341_ = Js({u'$':Js(False),u'jQuery':Js(False)})
    PyJs_Object_3342_ = Js({u'Y':Js(False),u'YUI':Js(False),u'YUI_config':Js(False)})
    PyJs_Object_3343_ = Js({u'cat':Js(False),u'cd':Js(False),u'chmod':Js(False),u'config':Js(False),u'cp':Js(False),u'dirs':Js(False),u'echo':Js(False),u'env':Js(False),u'error':Js(False),u'exec':Js(False),u'exit':Js(False),u'find':Js(False),u'grep':Js(False),u'ls':Js(False),u'ln':Js(False),u'mkdir':Js(False),u'mv':Js(False),u'popd':Js(False),u'pushd':Js(False),u'pwd':Js(False),u'rm':Js(False),u'sed':Js(False),u'set':Js(False),u'target':Js(False),u'tempdir':Js(False),u'test':Js(False),u'touch':Js(False),u'which':Js(False)})
    PyJs_Object_3344_ = Js({u'$':Js(False),u'$$':Js(False),u'$A':Js(False),u'$break':Js(False),u'$continue':Js(False),u'$F':Js(False),u'$H':Js(False),u'$R':Js(False),u'$w':Js(False),u'Abstract':Js(False),u'Ajax':Js(False),u'Autocompleter':Js(False),u'Builder':Js(False),u'Class':Js(False),u'Control':Js(False),u'Draggable':Js(False),u'Draggables':Js(False),u'Droppables':Js(False),u'Effect':Js(False),u'Element':Js(False),u'Enumerable':Js(False),u'Event':Js(False),u'Field':Js(False),u'Form':Js(False),u'Hash':Js(False),u'Insertion':Js(False),u'ObjectRange':Js(False),u'PeriodicalExecuter':Js(False),u'Position':Js(False),u'Prototype':Js(False),u'Scriptaculous':Js(False),u'Selector':Js(False),u'Sortable':Js(False),u'SortableObserver':Js(False),u'Sound':Js(False),u'Template':Js(False),u'Toggle':Js(False),u'Try':Js(False)})
    PyJs_Object_3345_ = Js({u'$':Js(False),u'_':Js(False),u'Accounts':Js(False),u'AccountsClient':Js(False),u'AccountsServer':Js(False),u'AccountsCommon':Js(False),u'App':Js(False),u'Assets':Js(False),u'Blaze':Js(False),u'check':Js(False),u'Cordova':Js(False),u'DDP':Js(False),u'DDPServer':Js(False),u'DDPRateLimiter':Js(False),u'Deps':Js(False),u'EJSON':Js(False),u'Email':Js(False),u'HTTP':Js(False),u'Log':Js(False),u'Match':Js(False),u'Meteor':Js(False),u'Mongo':Js(False),u'MongoInternals':Js(False),u'Npm':Js(False),u'Package':Js(False),u'Plugin':Js(False),u'process':Js(False),u'Random':Js(False),u'ReactiveDict':Js(False),u'ReactiveVar':Js(False),u'Router':Js(False),u'ServiceConfiguration':Js(False),u'Session':Js(False),u'share':Js(False),u'Spacebars':Js(False),u'Template':Js(False),u'Tinytest':Js(False),u'Tracker':Js(False),u'UI':Js(False),u'Utils':Js(False),u'WebApp':Js(False),u'WebAppInternals':Js(False)})
    PyJs_Object_3346_ = Js({u'_isWindows':Js(False),u'_rand':Js(False),u'BulkWriteResult':Js(False),u'cat':Js(False),u'cd':Js(False),u'connect':Js(False),u'db':Js(False),u'getHostName':Js(False),u'getMemInfo':Js(False),u'hostname':Js(False),u'ISODate':Js(False),u'listFiles':Js(False),u'load':Js(False),u'ls':Js(False),u'md5sumFile':Js(False),u'mkdir':Js(False),u'Mongo':Js(False),u'NumberInt':Js(False),u'NumberLong':Js(False),u'ObjectId':Js(False),u'PlanCache':Js(False),u'print':Js(False),u'printjson':Js(False),u'pwd':Js(False),u'quit':Js(False),u'removeFile':Js(False),u'rs':Js(False),u'sh':Js(False),u'UUID':Js(False),u'version':Js(False),u'WriteResult':Js(False)})
    PyJs_Object_3347_ = Js({u'$':Js(False),u'Application':Js(False),u'Automation':Js(False),u'console':Js(False),u'delay':Js(False),u'Library':Js(False),u'ObjC':Js(False),u'ObjectSpecifier':Js(False),u'Path':Js(False),u'Progress':Js(False),u'Ref':Js(False)})
    PyJs_Object_3348_ = Js({u'caches':Js(False),u'Cache':Js(False),u'CacheStorage':Js(False),u'Client':Js(False),u'clients':Js(False),u'Clients':Js(False),u'ExtendableEvent':Js(False),u'ExtendableMessageEvent':Js(False),u'FetchEvent':Js(False),u'importScripts':Js(False),u'registration':Js(False),u'self':Js(False),u'ServiceWorker':Js(False),u'ServiceWorkerContainer':Js(False),u'ServiceWorkerGlobalScope':Js(False),u'ServiceWorkerMessageEvent':Js(False),u'ServiceWorkerRegistration':Js(False),u'skipWaiting':Js(False),u'WindowClient':Js(False)})
    PyJs_Object_3349_ = Js({u'advanceClock':Js(False),u'fakeClearInterval':Js(False),u'fakeClearTimeout':Js(False),u'fakeSetInterval':Js(False),u'fakeSetTimeout':Js(False),u'resetTimeouts':Js(False),u'waitsForPromise':Js(False)})
    PyJs_Object_3350_ = Js({u'andThen':Js(False),u'click':Js(False),u'currentPath':Js(False),u'currentRouteName':Js(False),u'currentURL':Js(False),u'fillIn':Js(False),u'find':Js(False),u'findWithAssert':Js(False),u'keyEvent':Js(False),u'pauseTest':Js(False),u'triggerEvent':Js(False),u'visit':Js(False)})
    PyJs_Object_3351_ = Js({u'$':Js(False),u'$$':Js(False),u'browser':Js(False),u'By':Js(False),u'by':Js(False),u'DartObject':Js(False),u'element':Js(False),u'protractor':Js(False)})
    PyJs_Object_3352_ = Js({u'clearInterval':Js(False),u'clearTimeout':Js(False),u'console':Js(False),u'setInterval':Js(False),u'setTimeout':Js(False)})
    PyJs_Object_3353_ = Js({u'browser':Js(False),u'chrome':Js(False),u'opr':Js(False)})
    PyJs_Object_3354_ = Js({u'GM_addStyle':Js(False),u'GM_deleteValue':Js(False),u'GM_getResourceText':Js(False),u'GM_getResourceURL':Js(False),u'GM_getValue':Js(False),u'GM_info':Js(False),u'GM_listValues':Js(False),u'GM_log':Js(False),u'GM_openInTab':Js(False),u'GM_registerMenuCommand':Js(False),u'GM_setClipboard':Js(False),u'GM_setValue':Js(False),u'GM_xmlhttpRequest':Js(False),u'unsafeWindow':Js(False)})
    PyJs_Object_3323_ = Js({u'builtin':PyJs_Object_3324_,u'es5':PyJs_Object_3325_,u'es6':PyJs_Object_3326_,u'browser':PyJs_Object_3327_,u'worker':PyJs_Object_3328_,u'node':PyJs_Object_3329_,u'commonjs':PyJs_Object_3330_,u'amd':PyJs_Object_3331_,u'mocha':PyJs_Object_3332_,u'jasmine':PyJs_Object_3333_,u'jest':PyJs_Object_3334_,u'qunit':PyJs_Object_3335_,u'phantomjs':PyJs_Object_3336_,u'couch':PyJs_Object_3337_,u'rhino':PyJs_Object_3338_,u'nashorn':PyJs_Object_3339_,u'wsh':PyJs_Object_3340_,u'jquery':PyJs_Object_3341_,u'yui':PyJs_Object_3342_,u'shelljs':PyJs_Object_3343_,u'prototypejs':PyJs_Object_3344_,u'meteor':PyJs_Object_3345_,u'mongo':PyJs_Object_3346_,u'applescript':PyJs_Object_3347_,u'serviceworker':PyJs_Object_3348_,u'atomtest':PyJs_Object_3349_,u'embertest':PyJs_Object_3350_,u'protractor':PyJs_Object_3351_,u'shared-node-browser':PyJs_Object_3352_,u'webextensions':PyJs_Object_3353_,u'greasemonkey':PyJs_Object_3354_})
    var.get(u'module').put(u'exports', PyJs_Object_3323_)
PyJs_anonymous_3322_._set_name(u'anonymous')
PyJs_Object_3355_ = Js({})
@Js
def PyJs_anonymous_3356_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./globals.json')))
PyJs_anonymous_3356_._set_name(u'anonymous')
PyJs_Object_3357_ = Js({u'./globals.json':Js(277.0)})
@Js
def PyJs_anonymous_3358_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u're', u'require', u'ansiRegex', u'exports', u'module'])
    Js(u'use strict')
    var.put(u'ansiRegex', var.get(u'require')(Js(u'ansi-regex')))
    var.put(u're', var.get(u'RegExp').create(var.get(u'ansiRegex')().get(u'source')))
    var.get(u'module').put(u'exports', var.get(u're').get(u'test').callprop(u'bind', var.get(u're')))
PyJs_anonymous_3358_._set_name(u'anonymous')
PyJs_Object_3359_ = Js({u'ansi-regex':Js(2.0)})
@Js
def PyJs_anonymous_3360_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_3361_(process, this, arguments, var=var):
        var = Scope({u'process':process, u'this':this, u'arguments':arguments}, var)
        var.registers([u'process', u'invariant'])
        Js(u'use strict')
        @Js
        def PyJs_anonymous_3362_(condition, format, a, b, c, d, e, f, this, arguments, var=var):
            var = Scope({u'a':a, u'c':c, u'b':b, u'e':e, u'd':d, u'format':format, u'this':this, u'f':f, u'arguments':arguments, u'condition':condition}, var)
            var.registers([u'a', u'c', u'b', u'e', u'd', u'f', u'format', u'args', u'argIndex', u'error', u'condition'])
            if PyJsStrictNeq(var.get(u'process').get(u'env').get(u'NODE_ENV'),Js(u'production')):
                if PyJsStrictEq(var.get(u'format'),var.get(u'undefined')):
                    PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'invariant requires an error message argument')))
                    raise PyJsTempException
            if var.get(u'condition').neg():
                pass
                if PyJsStrictEq(var.get(u'format'),var.get(u'undefined')):
                    var.put(u'error', var.get(u'Error').create((Js(u'Minified exception occurred; use the non-minified dev environment ')+Js(u'for the full error message and additional helpful warnings.'))))
                else:
                    var.put(u'args', Js([var.get(u'a'), var.get(u'b'), var.get(u'c'), var.get(u'd'), var.get(u'e'), var.get(u'f')]))
                    var.put(u'argIndex', Js(0.0))
                    @Js
                    def PyJs_anonymous_3363_(this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments}, var)
                        var.registers([])
                        return var.get(u'args').get((var.put(u'argIndex',Js(var.get(u'argIndex').to_number())+Js(1))-Js(1)))
                    PyJs_anonymous_3363_._set_name(u'anonymous')
                    var.put(u'error', var.get(u'Error').create(var.get(u'format').callprop(u'replace', JsRegExp(u'/%s/g'), PyJs_anonymous_3363_)))
                    var.get(u'error').put(u'name', Js(u'Invariant Violation'))
                var.get(u'error').put(u'framesToPop', Js(1.0))
                PyJsTempException = JsToPyException(var.get(u'error'))
                raise PyJsTempException
        PyJs_anonymous_3362_._set_name(u'anonymous')
        var.put(u'invariant', PyJs_anonymous_3362_)
        var.get(u'module').put(u'exports', var.get(u'invariant'))
    PyJs_anonymous_3361_._set_name(u'anonymous')
    PyJs_anonymous_3361_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')))
PyJs_anonymous_3360_._set_name(u'anonymous')
PyJs_Object_3364_ = Js({u'_process':Js(531.0)})
@Js
def PyJs_anonymous_3365_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'numberIsNan', u'require', u'exports', u'module'])
    Js(u'use strict')
    var.put(u'numberIsNan', var.get(u'require')(Js(u'number-is-nan')))
    @Js
    def PyJs_anonymous_3366_(val, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'val':val}, var)
        var.registers([u'val'])
        return (((PyJsStrictNeq(var.get(u'val',throw=False).typeof(),Js(u'number')) or var.get(u'numberIsNan')(var.get(u'val'))) or PyJsStrictEq(var.get(u'val'),var.get(u'Infinity'))) or PyJsStrictEq(var.get(u'val'),(-var.get(u'Infinity')))).neg()
    PyJs_anonymous_3366_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', (var.get(u'Number').get(u'isFinite') or PyJs_anonymous_3366_))
PyJs_anonymous_3365_._set_name(u'anonymous')
PyJs_Object_3367_ = Js({u'number-is-nan':Js(498.0)})
@Js
def PyJs_anonymous_3368_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    def PyJs_LONG_3369_(var=var):
        return var.get(u'module').put(u'exports', JsRegExp(u'/(([\'"])(?:(?!\\2|\\\\).|\\\\(?:\\r\\n|[\\s\\S]))*(\\2)?|`(?:[^`\\\\$]|\\\\[\\s\\S]|\\$(?!\\{)|\\$\\{(?:[^{}]|\\{[^}]*\\}?)*\\}?)*(`)?)|(\\/\\/.*)|(\\/\\*(?:[^*]|\\*(?!\\/))*(\\*\\/)?)|(\\/(?!\\*)(?:\\[(?:(?![\\]\\\\]).|\\\\.)*\\]|(?![\\/\\]\\\\]).|\\\\.)+\\/(?:(?!\\s*(?:\\b|[\\u0080-\\uFFFF$\\\\\'"~({]|[+\\-!](?!=)|\\.?\\d))|[gmiyu]{1,5}\\b(?![\\u0080-\\uFFFF$\\\\]|\\s*(?:[+\\-*%&|^<>!=?({]|\\/(?![\\/*])))))|(0[xX][\\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][+-]?\\d+)?)|((?!\\d)(?:(?!\\s)[$\\w\\u0080-\\uFFFF]|\\\\u[\\da-fA-F]{4}|\\\\u\\{[\\da-fA-F]{1,6}\\})+)|(--|\\+\\+|&&|\\|\\||=>|\\.{3}|(?:[+\\-\\/%&|^]|\\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\\](){}])|(\\s+)|(^$|[\\s\\S])/g'))
    PyJs_LONG_3369_()
    @Js
    def PyJs_anonymous_3370_(match, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'match':match}, var)
        var.registers([u'token', u'match'])
        PyJs_Object_3371_ = Js({u'type':Js(u'invalid'),u'value':var.get(u'match').get(u'0')})
        var.put(u'token', PyJs_Object_3371_)
        if var.get(u'match').get(u'1'):
            PyJsComma(var.get(u'token').put(u'type', Js(u'string')),var.get(u'token').put(u'closed', (var.get(u'match').get(u'3') or var.get(u'match').get(u'4')).neg().neg()))
        else:
            if var.get(u'match').get(u'5'):
                var.get(u'token').put(u'type', Js(u'comment'))
            else:
                if var.get(u'match').get(u'6'):
                    PyJsComma(var.get(u'token').put(u'type', Js(u'comment')),var.get(u'token').put(u'closed', var.get(u'match').get(u'7').neg().neg()))
                else:
                    if var.get(u'match').get(u'8'):
                        var.get(u'token').put(u'type', Js(u'regex'))
                    else:
                        if var.get(u'match').get(u'9'):
                            var.get(u'token').put(u'type', Js(u'number'))
                        else:
                            if var.get(u'match').get(u'10'):
                                var.get(u'token').put(u'type', Js(u'name'))
                            else:
                                if var.get(u'match').get(u'11'):
                                    var.get(u'token').put(u'type', Js(u'punctuator'))
                                else:
                                    if var.get(u'match').get(u'12'):
                                        var.get(u'token').put(u'type', Js(u'whitespace'))
        return var.get(u'token')
    PyJs_anonymous_3370_._set_name(u'anonymous')
    var.get(u'module').get(u'exports').put(u'matchToToken', PyJs_anonymous_3370_)
PyJs_anonymous_3368_._set_name(u'anonymous')
PyJs_Object_3372_ = Js({})
@Js
def PyJs_anonymous_3373_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_3374_ = Js({})
    @Js
    def PyJs_anonymous_3375_(PyJsArg_676c6f62616c_, this, arguments, var=var):
        var = Scope({u'this':this, u'global':PyJsArg_676c6f62616c_, u'arguments':arguments}, var)
        var.registers([u'global'])
        pass
        @Js
        def PyJs_anonymous_3376_(root, this, arguments, var=var):
            var = Scope({u'this':this, u'root':root, u'arguments':arguments}, var)
            var.registers([u'singleEscapes', u'freeModule', u'freeGlobal', u'freeExports', u'isFunction', u'forOwn', u'toString', u'regexSingleEscape', u'jsesc', u'isSet', u'isArray', u'extend', u'object', u'hasOwnProperty', u'isNumber', u'isObject', u'regexDigit', u'isString', u'isMap', u'root', u'regexWhitelist', u'forEach'])
            var.put(u'freeExports', ((var.get(u'exports',throw=False).typeof()==Js(u'object')) and var.get(u'exports')))
            var.put(u'freeModule', ((((var.get(u'module',throw=False).typeof()==Js(u'object')) and var.get(u'module')) and (var.get(u'module').get(u'exports')==var.get(u'freeExports'))) and var.get(u'module')))
            var.put(u'freeGlobal', ((var.get(u'global',throw=False).typeof()==Js(u'object')) and var.get(u'global')))
            if (PyJsStrictEq(var.get(u'freeGlobal').get(u'global'),var.get(u'freeGlobal')) or PyJsStrictEq(var.get(u'freeGlobal').get(u'window'),var.get(u'freeGlobal'))):
                var.put(u'root', var.get(u'freeGlobal'))
            PyJs_Object_3377_ = Js({})
            var.put(u'object', PyJs_Object_3377_)
            var.put(u'hasOwnProperty', var.get(u'object').get(u'hasOwnProperty'))
            @Js
            def PyJs_anonymous_3378_(object, callback, this, arguments, var=var):
                var = Scope({u'this':this, u'callback':callback, u'object':object, u'arguments':arguments}, var)
                var.registers([u'callback', u'object', u'key'])
                pass
                for PyJsTemp in var.get(u'object'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'hasOwnProperty').callprop(u'call', var.get(u'object'), var.get(u'key')):
                        var.get(u'callback')(var.get(u'key'), var.get(u'object').get(var.get(u'key')))
            PyJs_anonymous_3378_._set_name(u'anonymous')
            var.put(u'forOwn', PyJs_anonymous_3378_)
            @Js
            def PyJs_anonymous_3379_(destination, source, this, arguments, var=var):
                var = Scope({u'this':this, u'source':source, u'destination':destination, u'arguments':arguments}, var)
                var.registers([u'source', u'destination'])
                if var.get(u'source').neg():
                    return var.get(u'destination')
                @Js
                def PyJs_anonymous_3380_(key, value, this, arguments, var=var):
                    var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
                    var.registers([u'value', u'key'])
                    var.get(u'destination').put(var.get(u'key'), var.get(u'value'))
                PyJs_anonymous_3380_._set_name(u'anonymous')
                var.get(u'forOwn')(var.get(u'source'), PyJs_anonymous_3380_)
                return var.get(u'destination')
            PyJs_anonymous_3379_._set_name(u'anonymous')
            var.put(u'extend', PyJs_anonymous_3379_)
            @Js
            def PyJs_anonymous_3381_(array, callback, this, arguments, var=var):
                var = Scope({u'this':this, u'callback':callback, u'array':array, u'arguments':arguments}, var)
                var.registers([u'index', u'length', u'array', u'callback'])
                var.put(u'length', var.get(u'array').get(u'length'))
                var.put(u'index', (-Js(1.0)))
                while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
                    var.get(u'callback')(var.get(u'array').get(var.get(u'index')))
            PyJs_anonymous_3381_._set_name(u'anonymous')
            var.put(u'forEach', PyJs_anonymous_3381_)
            var.put(u'toString', var.get(u'object').get(u'toString'))
            @Js
            def PyJs_anonymous_3382_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return (var.get(u'toString').callprop(u'call', var.get(u'value'))==Js(u'[object Array]'))
            PyJs_anonymous_3382_._set_name(u'anonymous')
            var.put(u'isArray', PyJs_anonymous_3382_)
            @Js
            def PyJs_anonymous_3383_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return (var.get(u'toString').callprop(u'call', var.get(u'value'))==Js(u'[object Object]'))
            PyJs_anonymous_3383_._set_name(u'anonymous')
            var.put(u'isObject', PyJs_anonymous_3383_)
            @Js
            def PyJs_anonymous_3384_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return ((var.get(u'value',throw=False).typeof()==Js(u'string')) or (var.get(u'toString').callprop(u'call', var.get(u'value'))==Js(u'[object String]')))
            PyJs_anonymous_3384_._set_name(u'anonymous')
            var.put(u'isString', PyJs_anonymous_3384_)
            @Js
            def PyJs_anonymous_3385_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return ((var.get(u'value',throw=False).typeof()==Js(u'number')) or (var.get(u'toString').callprop(u'call', var.get(u'value'))==Js(u'[object Number]')))
            PyJs_anonymous_3385_._set_name(u'anonymous')
            var.put(u'isNumber', PyJs_anonymous_3385_)
            @Js
            def PyJs_anonymous_3386_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return ((var.get(u'value',throw=False).typeof()==Js(u'function')) or (var.get(u'toString').callprop(u'call', var.get(u'value'))==Js(u'[object Function]')))
            PyJs_anonymous_3386_._set_name(u'anonymous')
            var.put(u'isFunction', PyJs_anonymous_3386_)
            @Js
            def PyJs_anonymous_3387_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return (var.get(u'toString').callprop(u'call', var.get(u'value'))==Js(u'[object Map]'))
            PyJs_anonymous_3387_._set_name(u'anonymous')
            var.put(u'isMap', PyJs_anonymous_3387_)
            @Js
            def PyJs_anonymous_3388_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return (var.get(u'toString').callprop(u'call', var.get(u'value'))==Js(u'[object Set]'))
            PyJs_anonymous_3388_._set_name(u'anonymous')
            var.put(u'isSet', PyJs_anonymous_3388_)
            PyJs_Object_3389_ = Js({u'"':Js(u'\\"'),u"'":Js(u"\\'"),u'\\':Js(u'\\\\'),u'\x08':Js(u'\\b'),u'\x0c':Js(u'\\f'),u'\n':Js(u'\\n'),u'\r':Js(u'\\r'),u'\t':Js(u'\\t')})
            var.put(u'singleEscapes', PyJs_Object_3389_)
            var.put(u'regexSingleEscape', JsRegExp(u'/["\'\\\\\\b\\f\\n\\r\\t]/'))
            var.put(u'regexDigit', JsRegExp(u'/[0-9]/'))
            var.put(u'regexWhitelist', JsRegExp(u'/[ !#-&\\(-\\[\\]-~]/'))
            @Js
            def PyJs_anonymous_3390_(argument, options, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'argument':argument, u'options':options}, var)
                var.registers([u'useHexNumbers', u'inline2', u'inline1', u'argument', u'lowercaseHex', u'escaped', u'second', u'result', u'compact', u'index', u'codePoint', u'useDecNumbers', u'character', u'json', u'isEmpty', u'tmp', u'string', u'quote', u'charCode', u'oldIndent', u'indent', u'newLine', u'useOctNumbers', u'useBinNumbers', u'length', u'defaults', u'longhand', u'hexadecimal', u'options', u'first'])
                PyJs_Object_3391_ = Js({u'escapeEverything':Js(False),u'escapeEtago':Js(False),u'quotes':Js(u'single'),u'wrap':Js(False),u'es6':Js(False),u'json':Js(False),u'compact':var.get(u'true'),u'lowercaseHex':Js(False),u'numbers':Js(u'decimal'),u'indent':Js(u'\t'),u'__indent__':Js(u''),u'__inline1__':Js(False),u'__inline2__':Js(False)})
                var.put(u'defaults', PyJs_Object_3391_)
                var.put(u'json', (var.get(u'options') and var.get(u'options').get(u'json')))
                if var.get(u'json'):
                    var.get(u'defaults').put(u'quotes', Js(u'double'))
                    var.get(u'defaults').put(u'wrap', var.get(u'true'))
                var.put(u'options', var.get(u'extend')(var.get(u'defaults'), var.get(u'options')))
                if ((var.get(u'options').get(u'quotes')!=Js(u'single')) and (var.get(u'options').get(u'quotes')!=Js(u'double'))):
                    var.get(u'options').put(u'quotes', Js(u'single'))
                var.put(u'quote', (Js(u'"') if (var.get(u'options').get(u'quotes')==Js(u'double')) else Js(u"'")))
                var.put(u'compact', var.get(u'options').get(u'compact'))
                var.put(u'indent', var.get(u'options').get(u'indent'))
                var.put(u'lowercaseHex', var.get(u'options').get(u'lowercaseHex'))
                var.put(u'oldIndent', Js(u''))
                var.put(u'inline1', var.get(u'options').get(u'__inline1__'))
                var.put(u'inline2', var.get(u'options').get(u'__inline2__'))
                var.put(u'newLine', (Js(u'') if var.get(u'compact') else Js(u'\n')))
                pass
                var.put(u'isEmpty', var.get(u'true'))
                var.put(u'useBinNumbers', (var.get(u'options').get(u'numbers')==Js(u'binary')))
                var.put(u'useOctNumbers', (var.get(u'options').get(u'numbers')==Js(u'octal')))
                var.put(u'useDecNumbers', (var.get(u'options').get(u'numbers')==Js(u'decimal')))
                var.put(u'useHexNumbers', (var.get(u'options').get(u'numbers')==Js(u'hexadecimal')))
                if ((var.get(u'json') and var.get(u'argument')) and var.get(u'isFunction')(var.get(u'argument').get(u'toJSON'))):
                    var.put(u'argument', var.get(u'argument').callprop(u'toJSON'))
                if var.get(u'isString')(var.get(u'argument')).neg():
                    if var.get(u'isMap')(var.get(u'argument')):
                        if (var.get(u'argument').get(u'size')==Js(0.0)):
                            return Js(u'new Map()')
                        if var.get(u'compact').neg():
                            var.get(u'options').put(u'__inline1__', var.get(u'true'))
                        return ((Js(u'new Map(')+var.get(u'jsesc')(var.get(u'Array').callprop(u'from', var.get(u'argument')), var.get(u'options')))+Js(u')'))
                    if var.get(u'isSet')(var.get(u'argument')):
                        if (var.get(u'argument').get(u'size')==Js(0.0)):
                            return Js(u'new Set()')
                        return ((Js(u'new Set(')+var.get(u'jsesc')(var.get(u'Array').callprop(u'from', var.get(u'argument')), var.get(u'options')))+Js(u')'))
                    if var.get(u'isArray')(var.get(u'argument')):
                        var.put(u'result', Js([]))
                        var.get(u'options').put(u'wrap', var.get(u'true'))
                        if var.get(u'inline1'):
                            var.get(u'options').put(u'__inline1__', Js(False))
                            var.get(u'options').put(u'__inline2__', var.get(u'true'))
                        else:
                            var.put(u'oldIndent', var.get(u'options').get(u'__indent__'))
                            var.put(u'indent', var.get(u'oldIndent'), u'+')
                            var.get(u'options').put(u'__indent__', var.get(u'indent'))
                        @Js
                        def PyJs_anonymous_3392_(value, this, arguments, var=var):
                            var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                            var.registers([u'value'])
                            var.put(u'isEmpty', Js(False))
                            if var.get(u'inline2'):
                                var.get(u'options').put(u'__inline2__', Js(False))
                            var.get(u'result').callprop(u'push', ((Js(u'') if (var.get(u'compact') or var.get(u'inline2')) else var.get(u'indent'))+var.get(u'jsesc')(var.get(u'value'), var.get(u'options'))))
                        PyJs_anonymous_3392_._set_name(u'anonymous')
                        var.get(u'forEach')(var.get(u'argument'), PyJs_anonymous_3392_)
                        if var.get(u'isEmpty'):
                            return Js(u'[]')
                        if var.get(u'inline2'):
                            return ((Js(u'[')+var.get(u'result').callprop(u'join', Js(u', ')))+Js(u']'))
                        return (((((Js(u'[')+var.get(u'newLine'))+var.get(u'result').callprop(u'join', (Js(u',')+var.get(u'newLine'))))+var.get(u'newLine'))+(Js(u'') if var.get(u'compact') else var.get(u'oldIndent')))+Js(u']'))
                    else:
                        if var.get(u'isNumber')(var.get(u'argument')):
                            if var.get(u'json'):
                                return var.get(u'JSON').callprop(u'stringify', var.get(u'argument'))
                            if var.get(u'useDecNumbers'):
                                return var.get(u'String')(var.get(u'argument'))
                            if var.get(u'useHexNumbers'):
                                var.put(u'tmp', var.get(u'argument').callprop(u'toString', Js(16.0)))
                                if var.get(u'lowercaseHex').neg():
                                    var.put(u'tmp', var.get(u'tmp').callprop(u'toUpperCase'))
                                return (Js(u'0x')+var.get(u'tmp'))
                            if var.get(u'useBinNumbers'):
                                return (Js(u'0b')+var.get(u'argument').callprop(u'toString', Js(2.0)))
                            if var.get(u'useOctNumbers'):
                                return (Js(u'0o')+var.get(u'argument').callprop(u'toString', Js(8.0)))
                        else:
                            if var.get(u'isObject')(var.get(u'argument')).neg():
                                if var.get(u'json'):
                                    return (var.get(u'JSON').callprop(u'stringify', var.get(u'argument')) or Js(u'null'))
                                return var.get(u'String')(var.get(u'argument'))
                            else:
                                var.put(u'result', Js([]))
                                var.get(u'options').put(u'wrap', var.get(u'true'))
                                var.put(u'oldIndent', var.get(u'options').get(u'__indent__'))
                                var.put(u'indent', var.get(u'oldIndent'), u'+')
                                var.get(u'options').put(u'__indent__', var.get(u'indent'))
                                @Js
                                def PyJs_anonymous_3393_(key, value, this, arguments, var=var):
                                    var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
                                    var.registers([u'value', u'key'])
                                    var.put(u'isEmpty', Js(False))
                                    var.get(u'result').callprop(u'push', (((((Js(u'') if var.get(u'compact') else var.get(u'indent'))+var.get(u'jsesc')(var.get(u'key'), var.get(u'options')))+Js(u':'))+(Js(u'') if var.get(u'compact') else Js(u' ')))+var.get(u'jsesc')(var.get(u'value'), var.get(u'options'))))
                                PyJs_anonymous_3393_._set_name(u'anonymous')
                                var.get(u'forOwn')(var.get(u'argument'), PyJs_anonymous_3393_)
                                if var.get(u'isEmpty'):
                                    return Js(u'{}')
                                return (((((Js(u'{')+var.get(u'newLine'))+var.get(u'result').callprop(u'join', (Js(u',')+var.get(u'newLine'))))+var.get(u'newLine'))+(Js(u'') if var.get(u'compact') else var.get(u'oldIndent')))+Js(u'}'))
                var.put(u'string', var.get(u'argument'))
                var.put(u'index', (-Js(1.0)))
                var.put(u'length', var.get(u'string').get(u'length'))
                pass
                pass
                pass
                var.put(u'result', Js(u''))
                while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
                    var.put(u'character', var.get(u'string').callprop(u'charAt', var.get(u'index')))
                    if var.get(u'options').get(u'es6'):
                        var.put(u'first', var.get(u'string').callprop(u'charCodeAt', var.get(u'index')))
                        if (((var.get(u'first')>=Js(55296)) and (var.get(u'first')<=Js(56319))) and (var.get(u'length')>(var.get(u'index')+Js(1.0)))):
                            var.put(u'second', var.get(u'string').callprop(u'charCodeAt', (var.get(u'index')+Js(1.0))))
                            if ((var.get(u'second')>=Js(56320)) and (var.get(u'second')<=Js(57343))):
                                var.put(u'codePoint', (((((var.get(u'first')-Js(55296))*Js(1024))+var.get(u'second'))-Js(56320))+Js(65536)))
                                var.put(u'hexadecimal', var.get(u'codePoint').callprop(u'toString', Js(16.0)))
                                if var.get(u'lowercaseHex').neg():
                                    var.put(u'hexadecimal', var.get(u'hexadecimal').callprop(u'toUpperCase'))
                                var.put(u'result', ((Js(u'\\u{')+var.get(u'hexadecimal'))+Js(u'}')), u'+')
                                (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1))
                                continue
                    if var.get(u'options').get(u'escapeEverything').neg():
                        if var.get(u'regexWhitelist').callprop(u'test', var.get(u'character')):
                            var.put(u'result', var.get(u'character'), u'+')
                            continue
                        if (var.get(u'character')==Js(u'"')):
                            var.put(u'result', (Js(u'\\"') if (var.get(u'quote')==var.get(u'character')) else var.get(u'character')), u'+')
                            continue
                        if (var.get(u'character')==Js(u"'")):
                            var.put(u'result', (Js(u"\\'") if (var.get(u'quote')==var.get(u'character')) else var.get(u'character')), u'+')
                            continue
                    if (((var.get(u'character')==Js(u'\x00')) and var.get(u'json').neg()) and var.get(u'regexDigit').callprop(u'test', var.get(u'string').callprop(u'charAt', (var.get(u'index')+Js(1.0)))).neg()):
                        var.put(u'result', Js(u'\\0'), u'+')
                        continue
                    if var.get(u'regexSingleEscape').callprop(u'test', var.get(u'character')):
                        var.put(u'result', var.get(u'singleEscapes').get(var.get(u'character')), u'+')
                        continue
                    var.put(u'charCode', var.get(u'character').callprop(u'charCodeAt', Js(0.0)))
                    var.put(u'hexadecimal', var.get(u'charCode').callprop(u'toString', Js(16.0)))
                    if var.get(u'lowercaseHex').neg():
                        var.put(u'hexadecimal', var.get(u'hexadecimal').callprop(u'toUpperCase'))
                    var.put(u'longhand', ((var.get(u'hexadecimal').get(u'length')>Js(2.0)) or var.get(u'json')))
                    var.put(u'escaped', ((Js(u'\\')+(Js(u'u') if var.get(u'longhand') else Js(u'x')))+(Js(u'0000')+var.get(u'hexadecimal')).callprop(u'slice', ((-Js(4.0)) if var.get(u'longhand') else (-Js(2.0))))))
                    var.put(u'result', var.get(u'escaped'), u'+')
                    continue
                if var.get(u'options').get(u'wrap'):
                    var.put(u'result', ((var.get(u'quote')+var.get(u'result'))+var.get(u'quote')))
                if var.get(u'options').get(u'escapeEtago'):
                    return var.get(u'result').callprop(u'replace', JsRegExp(u'/<\\/(script|style)/gi'), Js(u'<\\/$1'))
                return var.get(u'result')
            PyJs_anonymous_3390_._set_name(u'anonymous')
            var.put(u'jsesc', PyJs_anonymous_3390_)
            var.get(u'jsesc').put(u'version', Js(u'1.3.0'))
            if (((var.get(u'define',throw=False).typeof()==Js(u'function')) and (var.get(u'define').get(u'amd').typeof()==Js(u'object'))) and var.get(u'define').get(u'amd')):
                @Js
                def PyJs_anonymous_3394_(this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments}, var)
                    var.registers([])
                    return var.get(u'jsesc')
                PyJs_anonymous_3394_._set_name(u'anonymous')
                var.get(u'define')(PyJs_anonymous_3394_)
            else:
                if (var.get(u'freeExports') and var.get(u'freeExports').get(u'nodeType').neg()):
                    if var.get(u'freeModule'):
                        var.get(u'freeModule').put(u'exports', var.get(u'jsesc'))
                    else:
                        var.get(u'freeExports').put(u'jsesc', var.get(u'jsesc'))
                else:
                    var.get(u'root').put(u'jsesc', var.get(u'jsesc'))
        PyJs_anonymous_3376_._set_name(u'anonymous')
        PyJs_anonymous_3376_(var.get(u"this"))
    PyJs_anonymous_3375_._set_name(u'anonymous')
    PyJs_anonymous_3375_.callprop(u'call', var.get(u"this"), (var.get(u'global') if PyJsStrictNeq(var.get(u'global',throw=False).typeof(),Js(u'undefined')) else (var.get(u'self') if PyJsStrictNeq(var.get(u'self',throw=False).typeof(),Js(u'undefined')) else (var.get(u'window') if PyJsStrictNeq(var.get(u'window',throw=False).typeof(),Js(u'undefined')) else PyJs_Object_3374_))))
PyJs_anonymous_3373_._set_name(u'anonymous')
PyJs_Object_3395_ = Js({})
@Js
def PyJs_anonymous_3396_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'JSON5', u'exports', u'require', u'module'])
    PyJs_Object_3397_ = Js({})
    var.put(u'JSON5', (var.get(u'exports') if PyJsStrictEq(var.get(u'exports',throw=False).typeof(),Js(u'object')) else PyJs_Object_3397_))
    @Js
    def PyJs_anonymous_3398_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'comment', u'ch', u'text', u'number', u'escapee', u'at', u'array', u'inlineComment', u'next', u'white', u'peek', u'string', u'blockComment', u'object', u'ws', u'lineNumber', u'columnNumber', u'word', u'value', u'error', u'identifier', u'renderChar'])
        Js(u'use strict')
        PyJs_Object_3399_ = Js({u"'":Js(u"'"),u'"':Js(u'"'),u'\\':Js(u'\\'),u'/':Js(u'/'),u'\n':Js(u''),u'b':Js(u'\x08'),u'f':Js(u'\x0c'),u'n':Js(u'\n'),u'r':Js(u'\r'),u't':Js(u'\t')})
        var.put(u'escapee', PyJs_Object_3399_)
        var.put(u'ws', Js([Js(u' '), Js(u'\t'), Js(u'\r'), Js(u'\n'), Js(u'\x0b'), Js(u'\x0c'), Js(u'\xa0'), Js(u'\ufeff')]))
        @Js
        def PyJs_anonymous_3400_(chr, this, arguments, var=var):
            var = Scope({u'this':this, u'chr':chr, u'arguments':arguments}, var)
            var.registers([u'chr'])
            return (Js(u'EOF') if PyJsStrictEq(var.get(u'chr'),Js(u'')) else ((Js(u"'")+var.get(u'chr'))+Js(u"'")))
        PyJs_anonymous_3400_._set_name(u'anonymous')
        var.put(u'renderChar', PyJs_anonymous_3400_)
        @Js
        def PyJs_anonymous_3401_(m, this, arguments, var=var):
            var = Scope({u'this':this, u'm':m, u'arguments':arguments}, var)
            var.registers([u'm', u'error'])
            var.put(u'error', var.get(u'SyntaxError').create())
            var.get(u'error').put(u'message', ((((((var.get(u'm')+Js(u' at line '))+var.get(u'lineNumber'))+Js(u' column '))+var.get(u'columnNumber'))+Js(u' of the JSON5 data. Still to read: '))+var.get(u'JSON').callprop(u'stringify', var.get(u'text').callprop(u'substring', (var.get(u'at')-Js(1.0)), (var.get(u'at')+Js(19.0))))))
            var.get(u'error').put(u'at', var.get(u'at'))
            var.get(u'error').put(u'lineNumber', var.get(u'lineNumber'))
            var.get(u'error').put(u'columnNumber', var.get(u'columnNumber'))
            PyJsTempException = JsToPyException(var.get(u'error'))
            raise PyJsTempException
        PyJs_anonymous_3401_._set_name(u'anonymous')
        var.put(u'error', PyJs_anonymous_3401_)
        @Js
        def PyJs_anonymous_3402_(c, this, arguments, var=var):
            var = Scope({u'this':this, u'c':c, u'arguments':arguments}, var)
            var.registers([u'c'])
            if (var.get(u'c') and PyJsStrictNeq(var.get(u'c'),var.get(u'ch'))):
                var.get(u'error')((((Js(u'Expected ')+var.get(u'renderChar')(var.get(u'c')))+Js(u' instead of '))+var.get(u'renderChar')(var.get(u'ch'))))
            var.put(u'ch', var.get(u'text').callprop(u'charAt', var.get(u'at')))
            (var.put(u'at',Js(var.get(u'at').to_number())+Js(1))-Js(1))
            (var.put(u'columnNumber',Js(var.get(u'columnNumber').to_number())+Js(1))-Js(1))
            if (PyJsStrictEq(var.get(u'ch'),Js(u'\n')) or (PyJsStrictEq(var.get(u'ch'),Js(u'\r')) and PyJsStrictNeq(var.get(u'peek')(),Js(u'\n')))):
                (var.put(u'lineNumber',Js(var.get(u'lineNumber').to_number())+Js(1))-Js(1))
                var.put(u'columnNumber', Js(0.0))
            return var.get(u'ch')
        PyJs_anonymous_3402_._set_name(u'anonymous')
        var.put(u'next', PyJs_anonymous_3402_)
        @Js
        def PyJs_anonymous_3403_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return var.get(u'text').callprop(u'charAt', var.get(u'at'))
        PyJs_anonymous_3403_._set_name(u'anonymous')
        var.put(u'peek', PyJs_anonymous_3403_)
        @Js
        def PyJs_anonymous_3404_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'key'])
            var.put(u'key', var.get(u'ch'))
            if (((PyJsStrictNeq(var.get(u'ch'),Js(u'_')) and PyJsStrictNeq(var.get(u'ch'),Js(u'$'))) and ((var.get(u'ch')<Js(u'a')) or (var.get(u'ch')>Js(u'z')))) and ((var.get(u'ch')<Js(u'A')) or (var.get(u'ch')>Js(u'Z')))):
                var.get(u'error')(Js(u'Bad identifier as unquoted key'))
            while (var.get(u'next')() and ((((PyJsStrictEq(var.get(u'ch'),Js(u'_')) or PyJsStrictEq(var.get(u'ch'),Js(u'$'))) or ((var.get(u'ch')>=Js(u'a')) and (var.get(u'ch')<=Js(u'z')))) or ((var.get(u'ch')>=Js(u'A')) and (var.get(u'ch')<=Js(u'Z')))) or ((var.get(u'ch')>=Js(u'0')) and (var.get(u'ch')<=Js(u'9'))))):
                var.put(u'key', var.get(u'ch'), u'+')
            return var.get(u'key')
        PyJs_anonymous_3404_._set_name(u'anonymous')
        var.put(u'identifier', PyJs_anonymous_3404_)
        @Js
        def PyJs_anonymous_3405_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'base', u'number', u'string', u'sign'])
            var.put(u'sign', Js(u''))
            var.put(u'string', Js(u''))
            var.put(u'base', Js(10.0))
            if (PyJsStrictEq(var.get(u'ch'),Js(u'-')) or PyJsStrictEq(var.get(u'ch'),Js(u'+'))):
                var.put(u'sign', var.get(u'ch'))
                var.get(u'next')(var.get(u'ch'))
            if PyJsStrictEq(var.get(u'ch'),Js(u'I')):
                var.put(u'number', var.get(u'word')())
                if (PyJsStrictNeq(var.get(u'number',throw=False).typeof(),Js(u'number')) or var.get(u'isNaN')(var.get(u'number'))):
                    var.get(u'error')(Js(u'Unexpected word for number'))
                return ((-var.get(u'number')) if PyJsStrictEq(var.get(u'sign'),Js(u'-')) else var.get(u'number'))
            if PyJsStrictEq(var.get(u'ch'),Js(u'N')):
                var.put(u'number', var.get(u'word')())
                if var.get(u'isNaN')(var.get(u'number')).neg():
                    var.get(u'error')(Js(u'expected word to be NaN'))
                return var.get(u'number')
            if PyJsStrictEq(var.get(u'ch'),Js(u'0')):
                var.put(u'string', var.get(u'ch'), u'+')
                var.get(u'next')()
                if (PyJsStrictEq(var.get(u'ch'),Js(u'x')) or PyJsStrictEq(var.get(u'ch'),Js(u'X'))):
                    var.put(u'string', var.get(u'ch'), u'+')
                    var.get(u'next')()
                    var.put(u'base', Js(16.0))
                else:
                    if ((var.get(u'ch')>=Js(u'0')) and (var.get(u'ch')<=Js(u'9'))):
                        var.get(u'error')(Js(u'Octal literal'))
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'base'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(10.0)):
                    SWITCHED = True
                    while ((var.get(u'ch')>=Js(u'0')) and (var.get(u'ch')<=Js(u'9'))):
                        var.put(u'string', var.get(u'ch'), u'+')
                        var.get(u'next')()
                    if PyJsStrictEq(var.get(u'ch'),Js(u'.')):
                        var.put(u'string', Js(u'.'), u'+')
                        while ((var.get(u'next')() and (var.get(u'ch')>=Js(u'0'))) and (var.get(u'ch')<=Js(u'9'))):
                            var.put(u'string', var.get(u'ch'), u'+')
                    if (PyJsStrictEq(var.get(u'ch'),Js(u'e')) or PyJsStrictEq(var.get(u'ch'),Js(u'E'))):
                        var.put(u'string', var.get(u'ch'), u'+')
                        var.get(u'next')()
                        if (PyJsStrictEq(var.get(u'ch'),Js(u'-')) or PyJsStrictEq(var.get(u'ch'),Js(u'+'))):
                            var.put(u'string', var.get(u'ch'), u'+')
                            var.get(u'next')()
                        while ((var.get(u'ch')>=Js(u'0')) and (var.get(u'ch')<=Js(u'9'))):
                            var.put(u'string', var.get(u'ch'), u'+')
                            var.get(u'next')()
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(16.0)):
                    SWITCHED = True
                    while ((((var.get(u'ch')>=Js(u'0')) and (var.get(u'ch')<=Js(u'9'))) or ((var.get(u'ch')>=Js(u'A')) and (var.get(u'ch')<=Js(u'F')))) or ((var.get(u'ch')>=Js(u'a')) and (var.get(u'ch')<=Js(u'f')))):
                        var.put(u'string', var.get(u'ch'), u'+')
                        var.get(u'next')()
                    break
                SWITCHED = True
                break
            if PyJsStrictEq(var.get(u'sign'),Js(u'-')):
                var.put(u'number', (-var.get(u'string')))
            else:
                var.put(u'number', (+var.get(u'string')))
            if var.get(u'isFinite')(var.get(u'number')).neg():
                var.get(u'error')(Js(u'Bad number'))
            else:
                return var.get(u'number')
        PyJs_anonymous_3405_._set_name(u'anonymous')
        var.put(u'number', PyJs_anonymous_3405_)
        @Js
        def PyJs_anonymous_3406_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'i', u'delim', u'uffff', u'hex', u'string'])
            var.put(u'string', Js(u''))
            if (PyJsStrictEq(var.get(u'ch'),Js(u'"')) or PyJsStrictEq(var.get(u'ch'),Js(u"'"))):
                var.put(u'delim', var.get(u'ch'))
                while var.get(u'next')():
                    if PyJsStrictEq(var.get(u'ch'),var.get(u'delim')):
                        var.get(u'next')()
                        return var.get(u'string')
                    else:
                        if PyJsStrictEq(var.get(u'ch'),Js(u'\\')):
                            var.get(u'next')()
                            if PyJsStrictEq(var.get(u'ch'),Js(u'u')):
                                var.put(u'uffff', Js(0.0))
                                #for JS loop
                                var.put(u'i', Js(0.0))
                                while (var.get(u'i')<Js(4.0)):
                                    try:
                                        var.put(u'hex', var.get(u'parseInt')(var.get(u'next')(), Js(16.0)))
                                        if var.get(u'isFinite')(var.get(u'hex')).neg():
                                            break
                                        var.put(u'uffff', ((var.get(u'uffff')*Js(16.0))+var.get(u'hex')))
                                    finally:
                                            var.put(u'i', Js(1.0), u'+')
                                var.put(u'string', var.get(u'String').callprop(u'fromCharCode', var.get(u'uffff')), u'+')
                            else:
                                if PyJsStrictEq(var.get(u'ch'),Js(u'\r')):
                                    if PyJsStrictEq(var.get(u'peek')(),Js(u'\n')):
                                        var.get(u'next')()
                                else:
                                    if PyJsStrictEq(var.get(u'escapee').get(var.get(u'ch')).typeof(),Js(u'string')):
                                        var.put(u'string', var.get(u'escapee').get(var.get(u'ch')), u'+')
                                    else:
                                        break
                        else:
                            if PyJsStrictEq(var.get(u'ch'),Js(u'\n')):
                                break
                            else:
                                var.put(u'string', var.get(u'ch'), u'+')
            var.get(u'error')(Js(u'Bad string'))
        PyJs_anonymous_3406_._set_name(u'anonymous')
        var.put(u'string', PyJs_anonymous_3406_)
        @Js
        def PyJs_anonymous_3407_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            if PyJsStrictNeq(var.get(u'ch'),Js(u'/')):
                var.get(u'error')(Js(u'Not an inline comment'))
            while 1:
                var.get(u'next')()
                if (PyJsStrictEq(var.get(u'ch'),Js(u'\n')) or PyJsStrictEq(var.get(u'ch'),Js(u'\r'))):
                    var.get(u'next')()
                    return var.get('undefined')
                if not var.get(u'ch'):
                    break
        PyJs_anonymous_3407_._set_name(u'anonymous')
        var.put(u'inlineComment', PyJs_anonymous_3407_)
        @Js
        def PyJs_anonymous_3408_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            if PyJsStrictNeq(var.get(u'ch'),Js(u'*')):
                var.get(u'error')(Js(u'Not a block comment'))
            while 1:
                var.get(u'next')()
                while PyJsStrictEq(var.get(u'ch'),Js(u'*')):
                    var.get(u'next')(Js(u'*'))
                    if PyJsStrictEq(var.get(u'ch'),Js(u'/')):
                        var.get(u'next')(Js(u'/'))
                        return var.get('undefined')
                if not var.get(u'ch'):
                    break
            var.get(u'error')(Js(u'Unterminated block comment'))
        PyJs_anonymous_3408_._set_name(u'anonymous')
        var.put(u'blockComment', PyJs_anonymous_3408_)
        @Js
        def PyJs_anonymous_3409_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            if PyJsStrictNeq(var.get(u'ch'),Js(u'/')):
                var.get(u'error')(Js(u'Not a comment'))
            var.get(u'next')(Js(u'/'))
            if PyJsStrictEq(var.get(u'ch'),Js(u'/')):
                var.get(u'inlineComment')()
            else:
                if PyJsStrictEq(var.get(u'ch'),Js(u'*')):
                    var.get(u'blockComment')()
                else:
                    var.get(u'error')(Js(u'Unrecognized comment'))
        PyJs_anonymous_3409_._set_name(u'anonymous')
        var.put(u'comment', PyJs_anonymous_3409_)
        @Js
        def PyJs_anonymous_3410_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            while var.get(u'ch'):
                if PyJsStrictEq(var.get(u'ch'),Js(u'/')):
                    var.get(u'comment')()
                else:
                    if (var.get(u'ws').callprop(u'indexOf', var.get(u'ch'))>=Js(0.0)):
                        var.get(u'next')()
                    else:
                        return var.get('undefined')
        PyJs_anonymous_3410_._set_name(u'anonymous')
        var.put(u'white', PyJs_anonymous_3410_)
        @Js
        def PyJs_anonymous_3411_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'ch'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u't')):
                    SWITCHED = True
                    var.get(u'next')(Js(u't'))
                    var.get(u'next')(Js(u'r'))
                    var.get(u'next')(Js(u'u'))
                    var.get(u'next')(Js(u'e'))
                    return var.get(u'true')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'f')):
                    SWITCHED = True
                    var.get(u'next')(Js(u'f'))
                    var.get(u'next')(Js(u'a'))
                    var.get(u'next')(Js(u'l'))
                    var.get(u'next')(Js(u's'))
                    var.get(u'next')(Js(u'e'))
                    return Js(False)
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'n')):
                    SWITCHED = True
                    var.get(u'next')(Js(u'n'))
                    var.get(u'next')(Js(u'u'))
                    var.get(u'next')(Js(u'l'))
                    var.get(u'next')(Js(u'l'))
                    return var.get(u"null")
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'I')):
                    SWITCHED = True
                    var.get(u'next')(Js(u'I'))
                    var.get(u'next')(Js(u'n'))
                    var.get(u'next')(Js(u'f'))
                    var.get(u'next')(Js(u'i'))
                    var.get(u'next')(Js(u'n'))
                    var.get(u'next')(Js(u'i'))
                    var.get(u'next')(Js(u't'))
                    var.get(u'next')(Js(u'y'))
                    return var.get(u'Infinity')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'N')):
                    SWITCHED = True
                    var.get(u'next')(Js(u'N'))
                    var.get(u'next')(Js(u'a'))
                    var.get(u'next')(Js(u'N'))
                    return var.get(u'NaN')
                SWITCHED = True
                break
            var.get(u'error')((Js(u'Unexpected ')+var.get(u'renderChar')(var.get(u'ch'))))
        PyJs_anonymous_3411_._set_name(u'anonymous')
        var.put(u'word', PyJs_anonymous_3411_)
        @Js
        def PyJs_anonymous_3412_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'array'])
            var.put(u'array', Js([]))
            if PyJsStrictEq(var.get(u'ch'),Js(u'[')):
                var.get(u'next')(Js(u'['))
                var.get(u'white')()
                while var.get(u'ch'):
                    if PyJsStrictEq(var.get(u'ch'),Js(u']')):
                        var.get(u'next')(Js(u']'))
                        return var.get(u'array')
                    if PyJsStrictEq(var.get(u'ch'),Js(u',')):
                        var.get(u'error')(Js(u'Missing array element'))
                    else:
                        var.get(u'array').callprop(u'push', var.get(u'value')())
                    var.get(u'white')()
                    if PyJsStrictNeq(var.get(u'ch'),Js(u',')):
                        var.get(u'next')(Js(u']'))
                        return var.get(u'array')
                    var.get(u'next')(Js(u','))
                    var.get(u'white')()
            var.get(u'error')(Js(u'Bad array'))
        PyJs_anonymous_3412_._set_name(u'anonymous')
        var.put(u'array', PyJs_anonymous_3412_)
        @Js
        def PyJs_anonymous_3413_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'object', u'key'])
            PyJs_Object_3414_ = Js({})
            var.put(u'object', PyJs_Object_3414_)
            if PyJsStrictEq(var.get(u'ch'),Js(u'{')):
                var.get(u'next')(Js(u'{'))
                var.get(u'white')()
                while var.get(u'ch'):
                    if PyJsStrictEq(var.get(u'ch'),Js(u'}')):
                        var.get(u'next')(Js(u'}'))
                        return var.get(u'object')
                    if (PyJsStrictEq(var.get(u'ch'),Js(u'"')) or PyJsStrictEq(var.get(u'ch'),Js(u"'"))):
                        var.put(u'key', var.get(u'string')())
                    else:
                        var.put(u'key', var.get(u'identifier')())
                    var.get(u'white')()
                    var.get(u'next')(Js(u':'))
                    var.get(u'object').put(var.get(u'key'), var.get(u'value')())
                    var.get(u'white')()
                    if PyJsStrictNeq(var.get(u'ch'),Js(u',')):
                        var.get(u'next')(Js(u'}'))
                        return var.get(u'object')
                    var.get(u'next')(Js(u','))
                    var.get(u'white')()
            var.get(u'error')(Js(u'Bad object'))
        PyJs_anonymous_3413_._set_name(u'anonymous')
        var.put(u'object', PyJs_anonymous_3413_)
        @Js
        def PyJs_anonymous_3415_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            var.get(u'white')()
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'ch'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'{')):
                    SWITCHED = True
                    return var.get(u'object')()
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'[')):
                    SWITCHED = True
                    return var.get(u'array')()
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'"')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u"'")):
                    SWITCHED = True
                    return var.get(u'string')()
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'-')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'+')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'.')):
                    SWITCHED = True
                    return var.get(u'number')()
                if True:
                    SWITCHED = True
                    return (var.get(u'number')() if ((var.get(u'ch')>=Js(u'0')) and (var.get(u'ch')<=Js(u'9'))) else var.get(u'word')())
                SWITCHED = True
                break
        PyJs_anonymous_3415_._set_name(u'anonymous')
        var.put(u'value', PyJs_anonymous_3415_)
        @Js
        def PyJs_anonymous_3416_(source, reviver, this, arguments, var=var):
            var = Scope({u'this':this, u'source':source, u'reviver':reviver, u'arguments':arguments}, var)
            var.registers([u'source', u'reviver', u'result'])
            pass
            var.put(u'text', var.get(u'String')(var.get(u'source')))
            var.put(u'at', Js(0.0))
            var.put(u'lineNumber', Js(1.0))
            var.put(u'columnNumber', Js(1.0))
            var.put(u'ch', Js(u' '))
            var.put(u'result', var.get(u'value')())
            var.get(u'white')()
            if var.get(u'ch'):
                var.get(u'error')(Js(u'Syntax error'))
            PyJs_Object_3417_ = Js({u'':var.get(u'result')})
            @Js
            def PyJs_walk_3418_(holder, key, this, arguments, var=var):
                var = Scope({u'this':this, u'holder':holder, u'arguments':arguments, u'key':key, u'walk':PyJs_walk_3418_}, var)
                var.registers([u'k', u'holder', u'key', u'value', u'v'])
                var.put(u'value', var.get(u'holder').get(var.get(u'key')))
                if (var.get(u'value') and PyJsStrictEq(var.get(u'value',throw=False).typeof(),Js(u'object'))):
                    for PyJsTemp in var.get(u'value'):
                        var.put(u'k', PyJsTemp)
                        if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'value'), var.get(u'k')):
                            var.put(u'v', var.get(u'walk')(var.get(u'value'), var.get(u'k')))
                            if PyJsStrictNeq(var.get(u'v'),var.get(u'undefined')):
                                var.get(u'value').put(var.get(u'k'), var.get(u'v'))
                            else:
                                var.get(u'value').delete(var.get(u'k'))
                return var.get(u'reviver').callprop(u'call', var.get(u'holder'), var.get(u'key'), var.get(u'value'))
            PyJs_walk_3418_._set_name(u'walk')
            return (PyJs_walk_3418_(PyJs_Object_3417_, Js(u'')) if PyJsStrictEq(var.get(u'reviver',throw=False).typeof(),Js(u'function')) else var.get(u'result'))
        PyJs_anonymous_3416_._set_name(u'anonymous')
        return PyJs_anonymous_3416_
    PyJs_anonymous_3398_._set_name(u'anonymous')
    var.get(u'JSON5').put(u'parse', PyJs_anonymous_3398_())
    @Js
    def PyJs_anonymous_3419_(obj, replacer, space, this, arguments, var=var):
        var = Scope({u'this':this, u'replacer':replacer, u'obj':obj, u'arguments':arguments, u'space':space}, var)
        var.registers([u'isArray', u'topLevelHolder', u'isDate', u'escapeString', u'space', u'internalStringify', u'objStack', u'replacer', u'escapable', u'cx', u'meta', u'checkForCircular', u'isWordChar', u'isWordStart', u'obj', u'makeIndent', u'indentStr', u'isWord', u'getReplacedValueOrUndefined'])
        @Js
        def PyJsHoisted_isArray_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj'])
            if var.get(u'Array').get(u'isArray'):
                return var.get(u'Array').callprop(u'isArray', var.get(u'obj'))
            else:
                return PyJsStrictEq(var.get(u'Object').get(u'prototype').get(u'toString').callprop(u'call', var.get(u'obj')),Js(u'[object Array]'))
        PyJsHoisted_isArray_.func_name = u'isArray'
        var.put(u'isArray', PyJsHoisted_isArray_)
        @Js
        def PyJsHoisted_isDate_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'obj'])
            return PyJsStrictEq(var.get(u'Object').get(u'prototype').get(u'toString').callprop(u'call', var.get(u'obj')),Js(u'[object Date]'))
        PyJsHoisted_isDate_.func_name = u'isDate'
        var.put(u'isDate', PyJsHoisted_isDate_)
        @Js
        def PyJsHoisted_escapeString_(string, this, arguments, var=var):
            var = Scope({u'this':this, u'string':string, u'arguments':arguments}, var)
            var.registers([u'string'])
            var.get(u'escapable').put(u'lastIndex', Js(0.0))
            @Js
            def PyJs_anonymous_3422_(a, this, arguments, var=var):
                var = Scope({u'a':a, u'this':this, u'arguments':arguments}, var)
                var.registers([u'a', u'c'])
                var.put(u'c', var.get(u'meta').get(var.get(u'a')))
                return (var.get(u'c') if PyJsStrictEq(var.get(u'c',throw=False).typeof(),Js(u'string')) else (Js(u'\\u')+(Js(u'0000')+var.get(u'a').callprop(u'charCodeAt', Js(0.0)).callprop(u'toString', Js(16.0))).callprop(u'slice', (-Js(4.0)))))
            PyJs_anonymous_3422_._set_name(u'anonymous')
            return (((Js(u'"')+var.get(u'string').callprop(u'replace', var.get(u'escapable'), PyJs_anonymous_3422_))+Js(u'"')) if var.get(u'escapable').callprop(u'test', var.get(u'string')) else ((Js(u'"')+var.get(u'string'))+Js(u'"')))
        PyJsHoisted_escapeString_.func_name = u'escapeString'
        var.put(u'escapeString', PyJsHoisted_escapeString_)
        @Js
        def PyJsHoisted_internalStringify_(holder, key, isTopLevel, this, arguments, var=var):
            var = Scope({u'this':this, u'isTopLevel':isTopLevel, u'holder':holder, u'arguments':arguments, u'key':key}, var)
            var.registers([u'i', u'buffer', u'res', u'value', u'prop', u'nonEmpty', u'key', u'isTopLevel', u'holder', u'obj_part'])
            pass
            var.put(u'obj_part', var.get(u'getReplacedValueOrUndefined')(var.get(u'holder'), var.get(u'key'), var.get(u'isTopLevel')))
            if (var.get(u'obj_part') and var.get(u'isDate')(var.get(u'obj_part')).neg()):
                var.put(u'obj_part', var.get(u'obj_part').callprop(u'valueOf'))
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'obj_part',throw=False).typeof())
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'boolean')):
                    SWITCHED = True
                    return var.get(u'obj_part').callprop(u'toString')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'number')):
                    SWITCHED = True
                    if (var.get(u'isNaN')(var.get(u'obj_part')) or var.get(u'isFinite')(var.get(u'obj_part')).neg()):
                        return Js(u'null')
                    return var.get(u'obj_part').callprop(u'toString')
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'string')):
                    SWITCHED = True
                    return var.get(u'escapeString')(var.get(u'obj_part').callprop(u'toString'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'object')):
                    SWITCHED = True
                    if PyJsStrictEq(var.get(u'obj_part'),var.get(u"null")):
                        return Js(u'null')
                    else:
                        if var.get(u'isArray')(var.get(u'obj_part')):
                            var.get(u'checkForCircular')(var.get(u'obj_part'))
                            var.put(u'buffer', Js(u'['))
                            var.get(u'objStack').callprop(u'push', var.get(u'obj_part'))
                            #for JS loop
                            var.put(u'i', Js(0.0))
                            while (var.get(u'i')<var.get(u'obj_part').get(u'length')):
                                try:
                                    var.put(u'res', var.get(u'internalStringify')(var.get(u'obj_part'), var.get(u'i'), Js(False)))
                                    var.put(u'buffer', var.get(u'makeIndent')(var.get(u'indentStr'), var.get(u'objStack').get(u'length')), u'+')
                                    if (PyJsStrictEq(var.get(u'res'),var.get(u"null")) or PyJsStrictEq(var.get(u'res',throw=False).typeof(),Js(u'undefined'))):
                                        var.put(u'buffer', Js(u'null'), u'+')
                                    else:
                                        var.put(u'buffer', var.get(u'res'), u'+')
                                    if (var.get(u'i')<(var.get(u'obj_part').get(u'length')-Js(1.0))):
                                        var.put(u'buffer', Js(u','), u'+')
                                    else:
                                        if var.get(u'indentStr'):
                                            var.put(u'buffer', Js(u'\n'), u'+')
                                finally:
                                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                            var.get(u'objStack').callprop(u'pop')
                            var.put(u'buffer', (var.get(u'makeIndent')(var.get(u'indentStr'), var.get(u'objStack').get(u'length'), var.get(u'true'))+Js(u']')), u'+')
                        else:
                            var.get(u'checkForCircular')(var.get(u'obj_part'))
                            var.put(u'buffer', Js(u'{'))
                            var.put(u'nonEmpty', Js(False))
                            var.get(u'objStack').callprop(u'push', var.get(u'obj_part'))
                            for PyJsTemp in var.get(u'obj_part'):
                                var.put(u'prop', PyJsTemp)
                                if var.get(u'obj_part').callprop(u'hasOwnProperty', var.get(u'prop')):
                                    var.put(u'value', var.get(u'internalStringify')(var.get(u'obj_part'), var.get(u'prop'), Js(False)))
                                    var.put(u'isTopLevel', Js(False))
                                    if (PyJsStrictNeq(var.get(u'value',throw=False).typeof(),Js(u'undefined')) and PyJsStrictNeq(var.get(u'value'),var.get(u"null"))):
                                        var.put(u'buffer', var.get(u'makeIndent')(var.get(u'indentStr'), var.get(u'objStack').get(u'length')), u'+')
                                        var.put(u'nonEmpty', var.get(u'true'))
                                        var.put(u'key', (var.get(u'prop') if var.get(u'isWord')(var.get(u'prop')) else var.get(u'escapeString')(var.get(u'prop'))))
                                        var.put(u'buffer', ((((var.get(u'key')+Js(u':'))+(Js(u' ') if var.get(u'indentStr') else Js(u'')))+var.get(u'value'))+Js(u',')), u'+')
                            var.get(u'objStack').callprop(u'pop')
                            if var.get(u'nonEmpty'):
                                var.put(u'buffer', ((var.get(u'buffer').callprop(u'substring', Js(0.0), (var.get(u'buffer').get(u'length')-Js(1.0)))+var.get(u'makeIndent')(var.get(u'indentStr'), var.get(u'objStack').get(u'length')))+Js(u'}')))
                            else:
                                var.put(u'buffer', Js(u'{}'))
                    return var.get(u'buffer')
                if True:
                    SWITCHED = True
                    return var.get(u'undefined')
                SWITCHED = True
                break
        PyJsHoisted_internalStringify_.func_name = u'internalStringify'
        var.put(u'internalStringify', PyJsHoisted_internalStringify_)
        @Js
        def PyJsHoisted_isWord_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
            var.registers([u'i', u'length', u'key'])
            if PyJsStrictNeq(var.get(u'key',throw=False).typeof(),Js(u'string')):
                return Js(False)
            if var.get(u'isWordStart')(var.get(u'key').get(u'0')).neg():
                return Js(False)
            var.put(u'i', Js(1.0))
            var.put(u'length', var.get(u'key').get(u'length'))
            while (var.get(u'i')<var.get(u'length')):
                if var.get(u'isWordChar')(var.get(u'key').get(var.get(u'i'))).neg():
                    return Js(False)
                (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'true')
        PyJsHoisted_isWord_.func_name = u'isWord'
        var.put(u'isWord', PyJsHoisted_isWord_)
        @Js
        def PyJsHoisted_isWordChar_(c, this, arguments, var=var):
            var = Scope({u'this':this, u'c':c, u'arguments':arguments}, var)
            var.registers([u'c'])
            return ((((((var.get(u'c')>=Js(u'a')) and (var.get(u'c')<=Js(u'z'))) or ((var.get(u'c')>=Js(u'A')) and (var.get(u'c')<=Js(u'Z')))) or ((var.get(u'c')>=Js(u'0')) and (var.get(u'c')<=Js(u'9')))) or PyJsStrictEq(var.get(u'c'),Js(u'_'))) or PyJsStrictEq(var.get(u'c'),Js(u'$')))
        PyJsHoisted_isWordChar_.func_name = u'isWordChar'
        var.put(u'isWordChar', PyJsHoisted_isWordChar_)
        @Js
        def PyJsHoisted_isWordStart_(c, this, arguments, var=var):
            var = Scope({u'this':this, u'c':c, u'arguments':arguments}, var)
            var.registers([u'c'])
            return (((((var.get(u'c')>=Js(u'a')) and (var.get(u'c')<=Js(u'z'))) or ((var.get(u'c')>=Js(u'A')) and (var.get(u'c')<=Js(u'Z')))) or PyJsStrictEq(var.get(u'c'),Js(u'_'))) or PyJsStrictEq(var.get(u'c'),Js(u'$')))
        PyJsHoisted_isWordStart_.func_name = u'isWordStart'
        var.put(u'isWordStart', PyJsHoisted_isWordStart_)
        @Js
        def PyJsHoisted_makeIndent_(str, num, noNewLine, this, arguments, var=var):
            var = Scope({u'this':this, u'num':num, u'noNewLine':noNewLine, u'str':str, u'arguments':arguments}, var)
            var.registers([u'i', u'num', u'indent', u'noNewLine', u'str'])
            if var.get(u'str').neg():
                return Js(u'')
            if (var.get(u'str').get(u'length')>Js(10.0)):
                var.put(u'str', var.get(u'str').callprop(u'substring', Js(0.0), Js(10.0)))
            var.put(u'indent', (Js(u'') if var.get(u'noNewLine') else Js(u'\n')))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'num')):
                try:
                    var.put(u'indent', var.get(u'str'), u'+')
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'indent')
        PyJsHoisted_makeIndent_.func_name = u'makeIndent'
        var.put(u'makeIndent', PyJsHoisted_makeIndent_)
        @Js
        def PyJsHoisted_checkForCircular_(obj, this, arguments, var=var):
            var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
            var.registers([u'i', u'obj'])
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'objStack').get(u'length')):
                try:
                    if PyJsStrictEq(var.get(u'objStack').get(var.get(u'i')),var.get(u'obj')):
                        PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Converting circular structure to JSON')))
                        raise PyJsTempException
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        PyJsHoisted_checkForCircular_.func_name = u'checkForCircular'
        var.put(u'checkForCircular', PyJsHoisted_checkForCircular_)
        if (var.get(u'replacer') and (PyJsStrictNeq(var.get(u'replacer',throw=False).typeof(),Js(u'function')) and var.get(u'isArray')(var.get(u'replacer')).neg())):
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Replacer must be a function or an array')))
            raise PyJsTempException
        @Js
        def PyJs_anonymous_3420_(holder, key, isTopLevel, this, arguments, var=var):
            var = Scope({u'this':this, u'isTopLevel':isTopLevel, u'holder':holder, u'arguments':arguments, u'key':key}, var)
            var.registers([u'isTopLevel', u'holder', u'key', u'value'])
            var.put(u'value', var.get(u'holder').get(var.get(u'key')))
            if ((var.get(u'value') and var.get(u'value').get(u'toJSON')) and PyJsStrictEq(var.get(u'value').get(u'toJSON').typeof(),Js(u'function'))):
                var.put(u'value', var.get(u'value').callprop(u'toJSON'))
            if PyJsStrictEq(var.get(u'replacer',throw=False).typeof(),Js(u'function')):
                return var.get(u'replacer').callprop(u'call', var.get(u'holder'), var.get(u'key'), var.get(u'value'))
            else:
                if var.get(u'replacer'):
                    if ((var.get(u'isTopLevel') or var.get(u'isArray')(var.get(u'holder'))) or (var.get(u'replacer').callprop(u'indexOf', var.get(u'key'))>=Js(0.0))):
                        return var.get(u'value')
                    else:
                        return var.get(u'undefined')
                else:
                    return var.get(u'value')
        PyJs_anonymous_3420_._set_name(u'anonymous')
        var.put(u'getReplacedValueOrUndefined', PyJs_anonymous_3420_)
        pass
        pass
        pass
        var.get(u'JSON5').put(u'isWord', var.get(u'isWord'))
        pass
        pass
        var.put(u'objStack', Js([]))
        pass
        pass
        pass
        if var.get(u'space'):
            if PyJsStrictEq(var.get(u'space',throw=False).typeof(),Js(u'string')):
                var.put(u'indentStr', var.get(u'space'))
            else:
                if (PyJsStrictEq(var.get(u'space',throw=False).typeof(),Js(u'number')) and (var.get(u'space')>=Js(0.0))):
                    var.put(u'indentStr', var.get(u'makeIndent')(Js(u' '), var.get(u'space'), var.get(u'true')))
                else:
                    pass
        var.put(u'cx', JsRegExp(u'/[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g'))
        var.put(u'escapable', JsRegExp(u'/[\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g'))
        PyJs_Object_3421_ = Js({u'\x08':Js(u'\\b'),u'\t':Js(u'\\t'),u'\n':Js(u'\\n'),u'\x0c':Js(u'\\f'),u'\r':Js(u'\\r'),u'"':Js(u'\\"'),u'\\':Js(u'\\\\')})
        var.put(u'meta', PyJs_Object_3421_)
        pass
        pass
        PyJs_Object_3423_ = Js({u'':var.get(u'obj')})
        var.put(u'topLevelHolder', PyJs_Object_3423_)
        if PyJsStrictEq(var.get(u'obj'),var.get(u'undefined')):
            return var.get(u'getReplacedValueOrUndefined')(var.get(u'topLevelHolder'), Js(u''), var.get(u'true'))
        return var.get(u'internalStringify')(var.get(u'topLevelHolder'), Js(u''), var.get(u'true'))
    PyJs_anonymous_3419_._set_name(u'anonymous')
    var.get(u'JSON5').put(u'stringify', PyJs_anonymous_3419_)
PyJs_anonymous_3396_._set_name(u'anonymous')
PyJs_Object_3424_ = Js({})
@Js
def PyJs_anonymous_3425_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'DataView', u'module', u'getNative', u'root'])
    var.put(u'getNative', var.get(u'require')(Js(u'./_getNative')))
    var.put(u'root', var.get(u'require')(Js(u'./_root')))
    var.put(u'DataView', var.get(u'getNative')(var.get(u'root'), Js(u'DataView')))
    var.get(u'module').put(u'exports', var.get(u'DataView'))
PyJs_anonymous_3425_._set_name(u'anonymous')
PyJs_Object_3426_ = Js({u'./_getNative':Js(382.0),u'./_root':Js(422.0)})
@Js
def PyJs_anonymous_3427_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'hashGet', u'Hash', u'hashClear', u'hashSet', u'require', u'module', u'hashDelete', u'hashHas'])
    @Js
    def PyJsHoisted_Hash_(entries, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'entries':entries}, var)
        var.registers([u'index', u'length', u'entries', u'entry'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', (var.get(u'entries').get(u'length') if var.get(u'entries') else Js(0.0)))
        var.get(u"this").callprop(u'clear')
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.put(u'entry', var.get(u'entries').get(var.get(u'index')))
            var.get(u"this").callprop(u'set', var.get(u'entry').get(u'0'), var.get(u'entry').get(u'1'))
    PyJsHoisted_Hash_.func_name = u'Hash'
    var.put(u'Hash', PyJsHoisted_Hash_)
    var.put(u'hashClear', var.get(u'require')(Js(u'./_hashClear')))
    var.put(u'hashDelete', var.get(u'require')(Js(u'./_hashDelete')))
    var.put(u'hashGet', var.get(u'require')(Js(u'./_hashGet')))
    var.put(u'hashHas', var.get(u'require')(Js(u'./_hashHas')))
    var.put(u'hashSet', var.get(u'require')(Js(u'./_hashSet')))
    pass
    var.get(u'Hash').get(u'prototype').put(u'clear', var.get(u'hashClear'))
    var.get(u'Hash').get(u'prototype').put(u'delete', var.get(u'hashDelete'))
    var.get(u'Hash').get(u'prototype').put(u'get', var.get(u'hashGet'))
    var.get(u'Hash').get(u'prototype').put(u'has', var.get(u'hashHas'))
    var.get(u'Hash').get(u'prototype').put(u'set', var.get(u'hashSet'))
    var.get(u'module').put(u'exports', var.get(u'Hash'))
PyJs_anonymous_3427_._set_name(u'anonymous')
PyJs_Object_3428_ = Js({u'./_hashClear':Js(388.0),u'./_hashDelete':Js(389.0),u'./_hashGet':Js(390.0),u'./_hashHas':Js(391.0),u'./_hashSet':Js(392.0)})
@Js
def PyJs_anonymous_3429_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'listCacheDelete', u'listCacheHas', u'listCacheGet', u'require', u'exports', u'module', u'listCacheClear', u'listCacheSet', u'ListCache'])
    @Js
    def PyJsHoisted_ListCache_(entries, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'entries':entries}, var)
        var.registers([u'index', u'length', u'entries', u'entry'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', (var.get(u'entries').get(u'length') if var.get(u'entries') else Js(0.0)))
        var.get(u"this").callprop(u'clear')
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.put(u'entry', var.get(u'entries').get(var.get(u'index')))
            var.get(u"this").callprop(u'set', var.get(u'entry').get(u'0'), var.get(u'entry').get(u'1'))
    PyJsHoisted_ListCache_.func_name = u'ListCache'
    var.put(u'ListCache', PyJsHoisted_ListCache_)
    var.put(u'listCacheClear', var.get(u'require')(Js(u'./_listCacheClear')))
    var.put(u'listCacheDelete', var.get(u'require')(Js(u'./_listCacheDelete')))
    var.put(u'listCacheGet', var.get(u'require')(Js(u'./_listCacheGet')))
    var.put(u'listCacheHas', var.get(u'require')(Js(u'./_listCacheHas')))
    var.put(u'listCacheSet', var.get(u'require')(Js(u'./_listCacheSet')))
    pass
    var.get(u'ListCache').get(u'prototype').put(u'clear', var.get(u'listCacheClear'))
    var.get(u'ListCache').get(u'prototype').put(u'delete', var.get(u'listCacheDelete'))
    var.get(u'ListCache').get(u'prototype').put(u'get', var.get(u'listCacheGet'))
    var.get(u'ListCache').get(u'prototype').put(u'has', var.get(u'listCacheHas'))
    var.get(u'ListCache').get(u'prototype').put(u'set', var.get(u'listCacheSet'))
    var.get(u'module').put(u'exports', var.get(u'ListCache'))
PyJs_anonymous_3429_._set_name(u'anonymous')
PyJs_Object_3430_ = Js({u'./_listCacheClear':Js(409.0),u'./_listCacheDelete':Js(410.0),u'./_listCacheGet':Js(411.0),u'./_listCacheHas':Js(412.0),u'./_listCacheSet':Js(413.0)})
@Js
def PyJs_anonymous_3431_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'Map', u'exports', u'require', u'module', u'getNative', u'root'])
    var.put(u'getNative', var.get(u'require')(Js(u'./_getNative')))
    var.put(u'root', var.get(u'require')(Js(u'./_root')))
    var.put(u'Map', var.get(u'getNative')(var.get(u'root'), Js(u'Map')))
    var.get(u'module').put(u'exports', var.get(u'Map'))
PyJs_anonymous_3431_._set_name(u'anonymous')
PyJs_Object_3432_ = Js({u'./_getNative':Js(382.0),u'./_root':Js(422.0)})
@Js
def PyJs_anonymous_3433_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'mapCacheGet', u'mapCacheHas', u'require', u'mapCacheDelete', u'mapCacheClear', u'mapCacheSet', u'MapCache', u'module'])
    @Js
    def PyJsHoisted_MapCache_(entries, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'entries':entries}, var)
        var.registers([u'index', u'length', u'entries', u'entry'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', (var.get(u'entries').get(u'length') if var.get(u'entries') else Js(0.0)))
        var.get(u"this").callprop(u'clear')
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.put(u'entry', var.get(u'entries').get(var.get(u'index')))
            var.get(u"this").callprop(u'set', var.get(u'entry').get(u'0'), var.get(u'entry').get(u'1'))
    PyJsHoisted_MapCache_.func_name = u'MapCache'
    var.put(u'MapCache', PyJsHoisted_MapCache_)
    var.put(u'mapCacheClear', var.get(u'require')(Js(u'./_mapCacheClear')))
    var.put(u'mapCacheDelete', var.get(u'require')(Js(u'./_mapCacheDelete')))
    var.put(u'mapCacheGet', var.get(u'require')(Js(u'./_mapCacheGet')))
    var.put(u'mapCacheHas', var.get(u'require')(Js(u'./_mapCacheHas')))
    var.put(u'mapCacheSet', var.get(u'require')(Js(u'./_mapCacheSet')))
    pass
    var.get(u'MapCache').get(u'prototype').put(u'clear', var.get(u'mapCacheClear'))
    var.get(u'MapCache').get(u'prototype').put(u'delete', var.get(u'mapCacheDelete'))
    var.get(u'MapCache').get(u'prototype').put(u'get', var.get(u'mapCacheGet'))
    var.get(u'MapCache').get(u'prototype').put(u'has', var.get(u'mapCacheHas'))
    var.get(u'MapCache').get(u'prototype').put(u'set', var.get(u'mapCacheSet'))
    var.get(u'module').put(u'exports', var.get(u'MapCache'))
PyJs_anonymous_3433_._set_name(u'anonymous')
PyJs_Object_3434_ = Js({u'./_mapCacheClear':Js(414.0),u'./_mapCacheDelete':Js(415.0),u'./_mapCacheGet':Js(416.0),u'./_mapCacheHas':Js(417.0),u'./_mapCacheSet':Js(418.0)})
@Js
def PyJs_anonymous_3435_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'getNative', u'Promise', u'root'])
    var.put(u'getNative', var.get(u'require')(Js(u'./_getNative')))
    var.put(u'root', var.get(u'require')(Js(u'./_root')))
    var.put(u'Promise', var.get(u'getNative')(var.get(u'root'), Js(u'Promise')))
    var.get(u'module').put(u'exports', var.get(u'Promise'))
PyJs_anonymous_3435_._set_name(u'anonymous')
PyJs_Object_3436_ = Js({u'./_getNative':Js(382.0),u'./_root':Js(422.0)})
@Js
def PyJs_anonymous_3437_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'Reflect', u'require', u'root', u'exports', u'module'])
    var.put(u'root', var.get(u'require')(Js(u'./_root')))
    var.put(u'Reflect', var.get(u'root').get(u'Reflect'))
    var.get(u'module').put(u'exports', var.get(u'Reflect'))
PyJs_anonymous_3437_._set_name(u'anonymous')
PyJs_Object_3438_ = Js({u'./_root':Js(422.0)})
@Js
def PyJs_anonymous_3439_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'Set', u'require', u'module', u'getNative', u'root'])
    var.put(u'getNative', var.get(u'require')(Js(u'./_getNative')))
    var.put(u'root', var.get(u'require')(Js(u'./_root')))
    var.put(u'Set', var.get(u'getNative')(var.get(u'root'), Js(u'Set')))
    var.get(u'module').put(u'exports', var.get(u'Set'))
PyJs_anonymous_3439_._set_name(u'anonymous')
PyJs_Object_3440_ = Js({u'./_getNative':Js(382.0),u'./_root':Js(422.0)})
@Js
def PyJs_anonymous_3441_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'setCacheAdd', u'exports', u'SetCache', u'require', u'setCacheHas', u'module', u'MapCache'])
    @Js
    def PyJsHoisted_SetCache_(values, this, arguments, var=var):
        var = Scope({u'this':this, u'values':values, u'arguments':arguments}, var)
        var.registers([u'index', u'length', u'values'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', (var.get(u'values').get(u'length') if var.get(u'values') else Js(0.0)))
        var.get(u"this").put(u'__data__', var.get(u'MapCache').create())
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.get(u"this").callprop(u'add', var.get(u'values').get(var.get(u'index')))
    PyJsHoisted_SetCache_.func_name = u'SetCache'
    var.put(u'SetCache', PyJsHoisted_SetCache_)
    var.put(u'MapCache', var.get(u'require')(Js(u'./_MapCache')))
    var.put(u'setCacheAdd', var.get(u'require')(Js(u'./_setCacheAdd')))
    var.put(u'setCacheHas', var.get(u'require')(Js(u'./_setCacheHas')))
    pass
    var.get(u'SetCache').get(u'prototype').put(u'add', var.get(u'SetCache').get(u'prototype').put(u'push', var.get(u'setCacheAdd')))
    var.get(u'SetCache').get(u'prototype').put(u'has', var.get(u'setCacheHas'))
    var.get(u'module').put(u'exports', var.get(u'SetCache'))
PyJs_anonymous_3441_._set_name(u'anonymous')
PyJs_Object_3442_ = Js({u'./_MapCache':Js(289.0),u'./_setCacheAdd':Js(423.0),u'./_setCacheHas':Js(424.0)})
@Js
def PyJs_anonymous_3443_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'stackSet', u'exports', u'stackGet', u'stackDelete', u'stackClear', u'module', u'stackHas', u'require', u'Stack', u'ListCache'])
    @Js
    def PyJsHoisted_Stack_(entries, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'entries':entries}, var)
        var.registers([u'entries'])
        var.get(u"this").put(u'__data__', var.get(u'ListCache').create(var.get(u'entries')))
    PyJsHoisted_Stack_.func_name = u'Stack'
    var.put(u'Stack', PyJsHoisted_Stack_)
    var.put(u'ListCache', var.get(u'require')(Js(u'./_ListCache')))
    var.put(u'stackClear', var.get(u'require')(Js(u'./_stackClear')))
    var.put(u'stackDelete', var.get(u'require')(Js(u'./_stackDelete')))
    var.put(u'stackGet', var.get(u'require')(Js(u'./_stackGet')))
    var.put(u'stackHas', var.get(u'require')(Js(u'./_stackHas')))
    var.put(u'stackSet', var.get(u'require')(Js(u'./_stackSet')))
    pass
    var.get(u'Stack').get(u'prototype').put(u'clear', var.get(u'stackClear'))
    var.get(u'Stack').get(u'prototype').put(u'delete', var.get(u'stackDelete'))
    var.get(u'Stack').get(u'prototype').put(u'get', var.get(u'stackGet'))
    var.get(u'Stack').get(u'prototype').put(u'has', var.get(u'stackHas'))
    var.get(u'Stack').get(u'prototype').put(u'set', var.get(u'stackSet'))
    var.get(u'module').put(u'exports', var.get(u'Stack'))
PyJs_anonymous_3443_._set_name(u'anonymous')
PyJs_Object_3444_ = Js({u'./_ListCache':Js(287.0),u'./_stackClear':Js(426.0),u'./_stackDelete':Js(427.0),u'./_stackGet':Js(428.0),u'./_stackHas':Js(429.0),u'./_stackSet':Js(430.0)})
@Js
def PyJs_anonymous_3445_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'Symbol', u'root', u'require', u'module'])
    var.put(u'root', var.get(u'require')(Js(u'./_root')))
    var.put(u'Symbol', var.get(u'root').get(u'Symbol'))
    var.get(u'module').put(u'exports', var.get(u'Symbol'))
PyJs_anonymous_3445_._set_name(u'anonymous')
PyJs_Object_3446_ = Js({u'./_root':Js(422.0)})
@Js
def PyJs_anonymous_3447_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'root', u'Uint8Array', u'module'])
    var.put(u'root', var.get(u'require')(Js(u'./_root')))
    var.put(u'Uint8Array', var.get(u'root').get(u'Uint8Array'))
    var.get(u'module').put(u'exports', var.get(u'Uint8Array'))
PyJs_anonymous_3447_._set_name(u'anonymous')
PyJs_Object_3448_ = Js({u'./_root':Js(422.0)})
@Js
def PyJs_anonymous_3449_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'WeakMap', u'module', u'getNative', u'root'])
    var.put(u'getNative', var.get(u'require')(Js(u'./_getNative')))
    var.put(u'root', var.get(u'require')(Js(u'./_root')))
    var.put(u'WeakMap', var.get(u'getNative')(var.get(u'root'), Js(u'WeakMap')))
    var.get(u'module').put(u'exports', var.get(u'WeakMap'))
PyJs_anonymous_3449_._set_name(u'anonymous')
PyJs_Object_3450_ = Js({u'./_getNative':Js(382.0),u'./_root':Js(422.0)})
@Js
def PyJs_anonymous_3451_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'addMapEntry', u'exports', u'module'])
    @Js
    def PyJsHoisted_addMapEntry_(map, pair, this, arguments, var=var):
        var = Scope({u'pair':pair, u'map':map, u'this':this, u'arguments':arguments}, var)
        var.registers([u'pair', u'map'])
        var.get(u'map').callprop(u'set', var.get(u'pair').get(u'0'), var.get(u'pair').get(u'1'))
        return var.get(u'map')
    PyJsHoisted_addMapEntry_.func_name = u'addMapEntry'
    var.put(u'addMapEntry', PyJsHoisted_addMapEntry_)
    pass
    var.get(u'module').put(u'exports', var.get(u'addMapEntry'))
PyJs_anonymous_3451_._set_name(u'anonymous')
PyJs_Object_3452_ = Js({})
@Js
def PyJs_anonymous_3453_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'addSetEntry'])
    @Js
    def PyJsHoisted_addSetEntry_(set, value, this, arguments, var=var):
        var = Scope({u'this':this, u'set':set, u'arguments':arguments, u'value':value}, var)
        var.registers([u'set', u'value'])
        var.get(u'set').callprop(u'add', var.get(u'value'))
        return var.get(u'set')
    PyJsHoisted_addSetEntry_.func_name = u'addSetEntry'
    var.put(u'addSetEntry', PyJsHoisted_addSetEntry_)
    pass
    var.get(u'module').put(u'exports', var.get(u'addSetEntry'))
PyJs_anonymous_3453_._set_name(u'anonymous')
PyJs_Object_3454_ = Js({})
@Js
def PyJs_anonymous_3455_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'apply', u'require', u'exports', u'module'])
    @Js
    def PyJsHoisted_apply_(func, thisArg, args, this, arguments, var=var):
        var = Scope({u'this':this, u'args':args, u'arguments':arguments, u'func':func, u'thisArg':thisArg}, var)
        var.registers([u'length', u'args', u'func', u'thisArg'])
        var.put(u'length', var.get(u'args').get(u'length'))
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'length'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(0.0)):
                SWITCHED = True
                return var.get(u'func').callprop(u'call', var.get(u'thisArg'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(1.0)):
                SWITCHED = True
                return var.get(u'func').callprop(u'call', var.get(u'thisArg'), var.get(u'args').get(u'0'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(2.0)):
                SWITCHED = True
                return var.get(u'func').callprop(u'call', var.get(u'thisArg'), var.get(u'args').get(u'0'), var.get(u'args').get(u'1'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(3.0)):
                SWITCHED = True
                return var.get(u'func').callprop(u'call', var.get(u'thisArg'), var.get(u'args').get(u'0'), var.get(u'args').get(u'1'), var.get(u'args').get(u'2'))
            SWITCHED = True
            break
        return var.get(u'func').callprop(u'apply', var.get(u'thisArg'), var.get(u'args'))
    PyJsHoisted_apply_.func_name = u'apply'
    var.put(u'apply', PyJsHoisted_apply_)
    pass
    var.get(u'module').put(u'exports', var.get(u'apply'))
PyJs_anonymous_3455_._set_name(u'anonymous')
PyJs_Object_3456_ = Js({})
@Js
def PyJs_anonymous_3457_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'arrayEach', u'require', u'exports', u'module'])
    @Js
    def PyJsHoisted_arrayEach_(array, iteratee, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'arguments':arguments, u'iteratee':iteratee}, var)
        var.registers([u'index', u'length', u'array', u'iteratee'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', (var.get(u'array').get(u'length') if var.get(u'array') else Js(0.0)))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            if PyJsStrictEq(var.get(u'iteratee')(var.get(u'array').get(var.get(u'index')), var.get(u'index'), var.get(u'array')),Js(False)):
                break
        return var.get(u'array')
    PyJsHoisted_arrayEach_.func_name = u'arrayEach'
    var.put(u'arrayEach', PyJsHoisted_arrayEach_)
    pass
    var.get(u'module').put(u'exports', var.get(u'arrayEach'))
PyJs_anonymous_3457_._set_name(u'anonymous')
PyJs_Object_3458_ = Js({})
@Js
def PyJs_anonymous_3459_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseIndexOf', u'require', u'exports', u'module', u'arrayIncludes'])
    @Js
    def PyJsHoisted_arrayIncludes_(array, value, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'arguments':arguments, u'value':value}, var)
        var.registers([u'length', u'array', u'value'])
        var.put(u'length', (var.get(u'array').get(u'length') if var.get(u'array') else Js(0.0)))
        return (var.get(u'length').neg().neg() and (var.get(u'baseIndexOf')(var.get(u'array'), var.get(u'value'), Js(0.0))>(-Js(1.0))))
    PyJsHoisted_arrayIncludes_.func_name = u'arrayIncludes'
    var.put(u'arrayIncludes', PyJsHoisted_arrayIncludes_)
    var.put(u'baseIndexOf', var.get(u'require')(Js(u'./_baseIndexOf')))
    pass
    var.get(u'module').put(u'exports', var.get(u'arrayIncludes'))
PyJs_anonymous_3459_._set_name(u'anonymous')
PyJs_Object_3460_ = Js({u'./_baseIndexOf':Js(325.0)})
@Js
def PyJs_anonymous_3461_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'arrayIncludesWith', u'module'])
    @Js
    def PyJsHoisted_arrayIncludesWith_(array, value, comparator, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'comparator':comparator, u'value':value, u'arguments':arguments}, var)
        var.registers([u'index', u'length', u'array', u'value', u'comparator'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', (var.get(u'array').get(u'length') if var.get(u'array') else Js(0.0)))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            if var.get(u'comparator')(var.get(u'value'), var.get(u'array').get(var.get(u'index'))):
                return var.get(u'true')
        return Js(False)
    PyJsHoisted_arrayIncludesWith_.func_name = u'arrayIncludesWith'
    var.put(u'arrayIncludesWith', PyJsHoisted_arrayIncludesWith_)
    pass
    var.get(u'module').put(u'exports', var.get(u'arrayIncludesWith'))
PyJs_anonymous_3461_._set_name(u'anonymous')
PyJs_Object_3462_ = Js({})
@Js
def PyJs_anonymous_3463_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'arrayMap', u'exports', u'module'])
    @Js
    def PyJsHoisted_arrayMap_(array, iteratee, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'arguments':arguments, u'iteratee':iteratee}, var)
        var.registers([u'index', u'length', u'array', u'result', u'iteratee'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', (var.get(u'array').get(u'length') if var.get(u'array') else Js(0.0)))
        var.put(u'result', var.get(u'Array')(var.get(u'length')))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.get(u'result').put(var.get(u'index'), var.get(u'iteratee')(var.get(u'array').get(var.get(u'index')), var.get(u'index'), var.get(u'array')))
        return var.get(u'result')
    PyJsHoisted_arrayMap_.func_name = u'arrayMap'
    var.put(u'arrayMap', PyJsHoisted_arrayMap_)
    pass
    var.get(u'module').put(u'exports', var.get(u'arrayMap'))
PyJs_anonymous_3463_._set_name(u'anonymous')
PyJs_Object_3464_ = Js({})
@Js
def PyJs_anonymous_3465_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'arrayPush'])
    @Js
    def PyJsHoisted_arrayPush_(array, values, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'values':values, u'arguments':arguments}, var)
        var.registers([u'index', u'length', u'values', u'array', u'offset'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', var.get(u'values').get(u'length'))
        var.put(u'offset', var.get(u'array').get(u'length'))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.get(u'array').put((var.get(u'offset')+var.get(u'index')), var.get(u'values').get(var.get(u'index')))
        return var.get(u'array')
    PyJsHoisted_arrayPush_.func_name = u'arrayPush'
    var.put(u'arrayPush', PyJsHoisted_arrayPush_)
    pass
    var.get(u'module').put(u'exports', var.get(u'arrayPush'))
PyJs_anonymous_3465_._set_name(u'anonymous')
PyJs_Object_3466_ = Js({})
@Js
def PyJs_anonymous_3467_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'arrayReduce'])
    @Js
    def PyJsHoisted_arrayReduce_(array, iteratee, accumulator, initAccum, this, arguments, var=var):
        var = Scope({u'accumulator':accumulator, u'initAccum':initAccum, u'arguments':arguments, u'iteratee':iteratee, u'this':this, u'array':array}, var)
        var.registers([u'index', u'initAccum', u'accumulator', u'length', u'iteratee', u'array'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', (var.get(u'array').get(u'length') if var.get(u'array') else Js(0.0)))
        if (var.get(u'initAccum') and var.get(u'length')):
            var.put(u'accumulator', var.get(u'array').get(var.put(u'index',Js(var.get(u'index').to_number())+Js(1))))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.put(u'accumulator', var.get(u'iteratee')(var.get(u'accumulator'), var.get(u'array').get(var.get(u'index')), var.get(u'index'), var.get(u'array')))
        return var.get(u'accumulator')
    PyJsHoisted_arrayReduce_.func_name = u'arrayReduce'
    var.put(u'arrayReduce', PyJsHoisted_arrayReduce_)
    pass
    var.get(u'module').put(u'exports', var.get(u'arrayReduce'))
PyJs_anonymous_3467_._set_name(u'anonymous')
PyJs_Object_3468_ = Js({})
@Js
def PyJs_anonymous_3469_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'arraySome', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_arraySome_(array, predicate, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'predicate':predicate, u'arguments':arguments}, var)
        var.registers([u'index', u'length', u'predicate', u'array'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', (var.get(u'array').get(u'length') if var.get(u'array') else Js(0.0)))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            if var.get(u'predicate')(var.get(u'array').get(var.get(u'index')), var.get(u'index'), var.get(u'array')):
                return var.get(u'true')
        return Js(False)
    PyJsHoisted_arraySome_.func_name = u'arraySome'
    var.put(u'arraySome', PyJsHoisted_arraySome_)
    pass
    var.get(u'module').put(u'exports', var.get(u'arraySome'))
PyJs_anonymous_3469_._set_name(u'anonymous')
PyJs_Object_3470_ = Js({})
@Js
def PyJs_anonymous_3471_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'assignInDefaults', u'module', u'hasOwnProperty', u'objectProto', u'eq'])
    @Js
    def PyJsHoisted_assignInDefaults_(objValue, srcValue, key, object, this, arguments, var=var):
        var = Scope({u'objValue':objValue, u'srcValue':srcValue, u'key':key, u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'key', u'object', u'srcValue', u'objValue'])
        if (PyJsStrictEq(var.get(u'objValue'),var.get(u'undefined')) or (var.get(u'eq')(var.get(u'objValue'), var.get(u'objectProto').get(var.get(u'key'))) and var.get(u'hasOwnProperty').callprop(u'call', var.get(u'object'), var.get(u'key')).neg())):
            return var.get(u'srcValue')
        return var.get(u'objValue')
    PyJsHoisted_assignInDefaults_.func_name = u'assignInDefaults'
    var.put(u'assignInDefaults', PyJsHoisted_assignInDefaults_)
    var.put(u'eq', var.get(u'require')(Js(u'./eq')))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    pass
    var.get(u'module').put(u'exports', var.get(u'assignInDefaults'))
PyJs_anonymous_3471_._set_name(u'anonymous')
PyJs_Object_3472_ = Js({u'./eq':Js(444.0)})
@Js
def PyJs_anonymous_3473_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'assignMergeValue', u'require', u'eq', u'exports', u'module'])
    @Js
    def PyJsHoisted_assignMergeValue_(object, key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'object', u'value', u'key'])
        if ((PyJsStrictNeq(var.get(u'value'),var.get(u'undefined')) and var.get(u'eq')(var.get(u'object').get(var.get(u'key')), var.get(u'value')).neg()) or (((var.get(u'key',throw=False).typeof()==Js(u'number')) and PyJsStrictEq(var.get(u'value'),var.get(u'undefined'))) and var.get(u'object').contains(var.get(u'key')).neg())):
            var.get(u'object').put(var.get(u'key'), var.get(u'value'))
    PyJsHoisted_assignMergeValue_.func_name = u'assignMergeValue'
    var.put(u'assignMergeValue', PyJsHoisted_assignMergeValue_)
    var.put(u'eq', var.get(u'require')(Js(u'./eq')))
    pass
    var.get(u'module').put(u'exports', var.get(u'assignMergeValue'))
PyJs_anonymous_3473_._set_name(u'anonymous')
PyJs_Object_3474_ = Js({u'./eq':Js(444.0)})
@Js
def PyJs_anonymous_3475_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'assignValue', u'exports', u'require', u'module', u'hasOwnProperty', u'objectProto', u'eq'])
    @Js
    def PyJsHoisted_assignValue_(object, key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'value', u'object', u'key', u'objValue'])
        var.put(u'objValue', var.get(u'object').get(var.get(u'key')))
        if ((var.get(u'hasOwnProperty').callprop(u'call', var.get(u'object'), var.get(u'key')) and var.get(u'eq')(var.get(u'objValue'), var.get(u'value'))).neg() or (PyJsStrictEq(var.get(u'value'),var.get(u'undefined')) and var.get(u'object').contains(var.get(u'key')).neg())):
            var.get(u'object').put(var.get(u'key'), var.get(u'value'))
    PyJsHoisted_assignValue_.func_name = u'assignValue'
    var.put(u'assignValue', PyJsHoisted_assignValue_)
    var.put(u'eq', var.get(u'require')(Js(u'./eq')))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    pass
    var.get(u'module').put(u'exports', var.get(u'assignValue'))
PyJs_anonymous_3475_._set_name(u'anonymous')
PyJs_Object_3476_ = Js({u'./eq':Js(444.0)})
@Js
def PyJs_anonymous_3477_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'assocIndexOf', u'require', u'eq', u'exports', u'module'])
    @Js
    def PyJsHoisted_assocIndexOf_(array, key, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'arguments':arguments, u'key':key}, var)
        var.registers([u'length', u'array', u'key'])
        var.put(u'length', var.get(u'array').get(u'length'))
        while (var.put(u'length',Js(var.get(u'length').to_number())-Js(1))+Js(1)):
            if var.get(u'eq')(var.get(u'array').get(var.get(u'length')).get(u'0'), var.get(u'key')):
                return var.get(u'length')
        return (-Js(1.0))
    PyJsHoisted_assocIndexOf_.func_name = u'assocIndexOf'
    var.put(u'assocIndexOf', PyJsHoisted_assocIndexOf_)
    var.put(u'eq', var.get(u'require')(Js(u'./eq')))
    pass
    var.get(u'module').put(u'exports', var.get(u'assocIndexOf'))
PyJs_anonymous_3477_._set_name(u'anonymous')
PyJs_Object_3478_ = Js({u'./eq':Js(444.0)})
@Js
def PyJs_anonymous_3479_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'keys', u'require', u'module', u'baseAssign', u'copyObject'])
    @Js
    def PyJsHoisted_baseAssign_(object, source, this, arguments, var=var):
        var = Scope({u'this':this, u'source':source, u'object':object, u'arguments':arguments}, var)
        var.registers([u'source', u'object'])
        return (var.get(u'object') and var.get(u'copyObject')(var.get(u'source'), var.get(u'keys')(var.get(u'source')), var.get(u'object')))
    PyJsHoisted_baseAssign_.func_name = u'baseAssign'
    var.put(u'baseAssign', PyJsHoisted_baseAssign_)
    var.put(u'copyObject', var.get(u'require')(Js(u'./_copyObject')))
    var.put(u'keys', var.get(u'require')(Js(u'./keys')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseAssign'))
PyJs_anonymous_3479_._set_name(u'anonymous')
PyJs_Object_3480_ = Js({u'./_copyObject':Js(367.0),u'./keys':Js(474.0)})
@Js
def PyJs_anonymous_3481_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'baseClamp', u'module'])
    @Js
    def PyJsHoisted_baseClamp_(number, lower, upper, this, arguments, var=var):
        var = Scope({u'this':this, u'upper':upper, u'lower':lower, u'number':number, u'arguments':arguments}, var)
        var.registers([u'upper', u'lower', u'number'])
        if PyJsStrictEq(var.get(u'number'),var.get(u'number')):
            if PyJsStrictNeq(var.get(u'upper'),var.get(u'undefined')):
                var.put(u'number', (var.get(u'number') if (var.get(u'number')<=var.get(u'upper')) else var.get(u'upper')))
            if PyJsStrictNeq(var.get(u'lower'),var.get(u'undefined')):
                var.put(u'number', (var.get(u'number') if (var.get(u'number')>=var.get(u'lower')) else var.get(u'lower')))
        return var.get(u'number')
    PyJsHoisted_baseClamp_.func_name = u'baseClamp'
    var.put(u'baseClamp', PyJsHoisted_baseClamp_)
    pass
    var.get(u'module').put(u'exports', var.get(u'baseClamp'))
PyJs_anonymous_3481_._set_name(u'anonymous')
PyJs_Object_3482_ = Js({})
@Js
def PyJs_anonymous_3483_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'genTag', u'arrayTag', u'initCloneObject', u'uint32Tag', u'arrayBufferTag', u'objectTag', u'dataViewTag', u'regexpTag', u'copyArray', u'int8Tag', u'uint16Tag', u'errorTag', u'float64Tag', u'isBuffer', u'baseClone', u'assignValue', u'mapTag', u'cloneableTags', u'boolTag', u'arrayEach', u'initCloneByTag', u'funcTag', u'getAllKeys', u'float32Tag', u'cloneBuffer', u'Stack', u'argsTag', u'isArray', u'exports', u'dateTag', u'int16Tag', u'copySymbols', u'keys', u'stringTag', u'numberTag', u'module', u'getTag', u'isObject', u'uint8Tag', u'initCloneArray', u'isHostObject', u'require', u'baseAssign', u'uint8ClampedTag', u'weakMapTag', u'setTag', u'int32Tag', u'symbolTag'])
    @Js
    def PyJsHoisted_baseClone_(value, isDeep, isFull, customizer, key, object, stack, this, arguments, var=var):
        var = Scope({u'this':this, u'isFull':isFull, u'object':object, u'value':value, u'isDeep':isDeep, u'arguments':arguments, u'key':key, u'customizer':customizer, u'stack':stack}, var)
        var.registers([u'stacked', u'isFull', u'object', u'isFunc', u'value', u'tag', u'isDeep', u'result', u'key', u'props', u'customizer', u'isArr', u'stack'])
        pass
        if var.get(u'customizer'):
            var.put(u'result', (var.get(u'customizer')(var.get(u'value'), var.get(u'key'), var.get(u'object'), var.get(u'stack')) if var.get(u'object') else var.get(u'customizer')(var.get(u'value'))))
        if PyJsStrictNeq(var.get(u'result'),var.get(u'undefined')):
            return var.get(u'result')
        if var.get(u'isObject')(var.get(u'value')).neg():
            return var.get(u'value')
        var.put(u'isArr', var.get(u'isArray')(var.get(u'value')))
        if var.get(u'isArr'):
            var.put(u'result', var.get(u'initCloneArray')(var.get(u'value')))
            if var.get(u'isDeep').neg():
                return var.get(u'copyArray')(var.get(u'value'), var.get(u'result'))
        else:
            var.put(u'tag', var.get(u'getTag')(var.get(u'value')))
            var.put(u'isFunc', ((var.get(u'tag')==var.get(u'funcTag')) or (var.get(u'tag')==var.get(u'genTag'))))
            if var.get(u'isBuffer')(var.get(u'value')):
                return var.get(u'cloneBuffer')(var.get(u'value'), var.get(u'isDeep'))
            if (((var.get(u'tag')==var.get(u'objectTag')) or (var.get(u'tag')==var.get(u'argsTag'))) or (var.get(u'isFunc') and var.get(u'object').neg())):
                if var.get(u'isHostObject')(var.get(u'value')):
                    PyJs_Object_3487_ = Js({})
                    return (var.get(u'value') if var.get(u'object') else PyJs_Object_3487_)
                PyJs_Object_3488_ = Js({})
                var.put(u'result', var.get(u'initCloneObject')((PyJs_Object_3488_ if var.get(u'isFunc') else var.get(u'value'))))
                if var.get(u'isDeep').neg():
                    return var.get(u'copySymbols')(var.get(u'value'), var.get(u'baseAssign')(var.get(u'result'), var.get(u'value')))
            else:
                if var.get(u'cloneableTags').get(var.get(u'tag')).neg():
                    PyJs_Object_3489_ = Js({})
                    return (var.get(u'value') if var.get(u'object') else PyJs_Object_3489_)
                var.put(u'result', var.get(u'initCloneByTag')(var.get(u'value'), var.get(u'tag'), var.get(u'baseClone'), var.get(u'isDeep')))
        (var.get(u'stack') or var.put(u'stack', var.get(u'Stack').create()))
        var.put(u'stacked', var.get(u'stack').callprop(u'get', var.get(u'value')))
        if var.get(u'stacked'):
            return var.get(u'stacked')
        var.get(u'stack').callprop(u'set', var.get(u'value'), var.get(u'result'))
        if var.get(u'isArr').neg():
            var.put(u'props', (var.get(u'getAllKeys')(var.get(u'value')) if var.get(u'isFull') else var.get(u'keys')(var.get(u'value'))))
        @Js
        def PyJs_anonymous_3490_(subValue, key, this, arguments, var=var):
            var = Scope({u'this':this, u'subValue':subValue, u'arguments':arguments, u'key':key}, var)
            var.registers([u'subValue', u'key'])
            if var.get(u'props'):
                var.put(u'key', var.get(u'subValue'))
                var.put(u'subValue', var.get(u'value').get(var.get(u'key')))
            var.get(u'assignValue')(var.get(u'result'), var.get(u'key'), var.get(u'baseClone')(var.get(u'subValue'), var.get(u'isDeep'), var.get(u'isFull'), var.get(u'customizer'), var.get(u'key'), var.get(u'value'), var.get(u'stack')))
        PyJs_anonymous_3490_._set_name(u'anonymous')
        var.get(u'arrayEach')((var.get(u'props') or var.get(u'value')), PyJs_anonymous_3490_)
        return var.get(u'result')
    PyJsHoisted_baseClone_.func_name = u'baseClone'
    var.put(u'baseClone', PyJsHoisted_baseClone_)
    var.put(u'Stack', var.get(u'require')(Js(u'./_Stack')))
    var.put(u'arrayEach', var.get(u'require')(Js(u'./_arrayEach')))
    var.put(u'assignValue', var.get(u'require')(Js(u'./_assignValue')))
    var.put(u'baseAssign', var.get(u'require')(Js(u'./_baseAssign')))
    var.put(u'cloneBuffer', var.get(u'require')(Js(u'./_cloneBuffer')))
    var.put(u'copyArray', var.get(u'require')(Js(u'./_copyArray')))
    var.put(u'copySymbols', var.get(u'require')(Js(u'./_copySymbols')))
    var.put(u'getAllKeys', var.get(u'require')(Js(u'./_getAllKeys')))
    var.put(u'getTag', var.get(u'require')(Js(u'./_getTag')))
    var.put(u'initCloneArray', var.get(u'require')(Js(u'./_initCloneArray')))
    var.put(u'initCloneByTag', var.get(u'require')(Js(u'./_initCloneByTag')))
    var.put(u'initCloneObject', var.get(u'require')(Js(u'./_initCloneObject')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'isBuffer', var.get(u'require')(Js(u'./isBuffer')))
    var.put(u'isHostObject', var.get(u'require')(Js(u'./_isHostObject')))
    var.put(u'isObject', var.get(u'require')(Js(u'./isObject')))
    var.put(u'keys', var.get(u'require')(Js(u'./keys')))
    var.put(u'argsTag', Js(u'[object Arguments]'))
    var.put(u'arrayTag', Js(u'[object Array]'))
    var.put(u'boolTag', Js(u'[object Boolean]'))
    var.put(u'dateTag', Js(u'[object Date]'))
    var.put(u'errorTag', Js(u'[object Error]'))
    var.put(u'funcTag', Js(u'[object Function]'))
    var.put(u'genTag', Js(u'[object GeneratorFunction]'))
    var.put(u'mapTag', Js(u'[object Map]'))
    var.put(u'numberTag', Js(u'[object Number]'))
    var.put(u'objectTag', Js(u'[object Object]'))
    var.put(u'regexpTag', Js(u'[object RegExp]'))
    var.put(u'setTag', Js(u'[object Set]'))
    var.put(u'stringTag', Js(u'[object String]'))
    var.put(u'symbolTag', Js(u'[object Symbol]'))
    var.put(u'weakMapTag', Js(u'[object WeakMap]'))
    var.put(u'arrayBufferTag', Js(u'[object ArrayBuffer]'))
    var.put(u'dataViewTag', Js(u'[object DataView]'))
    var.put(u'float32Tag', Js(u'[object Float32Array]'))
    var.put(u'float64Tag', Js(u'[object Float64Array]'))
    var.put(u'int8Tag', Js(u'[object Int8Array]'))
    var.put(u'int16Tag', Js(u'[object Int16Array]'))
    var.put(u'int32Tag', Js(u'[object Int32Array]'))
    var.put(u'uint8Tag', Js(u'[object Uint8Array]'))
    var.put(u'uint8ClampedTag', Js(u'[object Uint8ClampedArray]'))
    var.put(u'uint16Tag', Js(u'[object Uint16Array]'))
    var.put(u'uint32Tag', Js(u'[object Uint32Array]'))
    PyJs_Object_3484_ = Js({})
    var.put(u'cloneableTags', PyJs_Object_3484_)
    def PyJs_LONG_3486_(var=var):
        def PyJs_LONG_3485_(var=var):
            return var.get(u'cloneableTags').put(var.get(u'regexpTag'), var.get(u'cloneableTags').put(var.get(u'setTag'), var.get(u'cloneableTags').put(var.get(u'stringTag'), var.get(u'cloneableTags').put(var.get(u'symbolTag'), var.get(u'cloneableTags').put(var.get(u'uint8Tag'), var.get(u'cloneableTags').put(var.get(u'uint8ClampedTag'), var.get(u'cloneableTags').put(var.get(u'uint16Tag'), var.get(u'cloneableTags').put(var.get(u'uint32Tag'), var.get(u'true')))))))))
        return var.get(u'cloneableTags').put(var.get(u'float32Tag'), var.get(u'cloneableTags').put(var.get(u'float64Tag'), var.get(u'cloneableTags').put(var.get(u'int8Tag'), var.get(u'cloneableTags').put(var.get(u'int16Tag'), var.get(u'cloneableTags').put(var.get(u'int32Tag'), var.get(u'cloneableTags').put(var.get(u'mapTag'), var.get(u'cloneableTags').put(var.get(u'numberTag'), var.get(u'cloneableTags').put(var.get(u'objectTag'), PyJs_LONG_3485_()))))))))
    var.get(u'cloneableTags').put(var.get(u'argsTag'), var.get(u'cloneableTags').put(var.get(u'arrayTag'), var.get(u'cloneableTags').put(var.get(u'arrayBufferTag'), var.get(u'cloneableTags').put(var.get(u'dataViewTag'), var.get(u'cloneableTags').put(var.get(u'boolTag'), var.get(u'cloneableTags').put(var.get(u'dateTag'), PyJs_LONG_3486_()))))))
    var.get(u'cloneableTags').put(var.get(u'errorTag'), var.get(u'cloneableTags').put(var.get(u'funcTag'), var.get(u'cloneableTags').put(var.get(u'weakMapTag'), Js(False))))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseClone'))
PyJs_anonymous_3483_._set_name(u'anonymous')
PyJs_Object_3491_ = Js({u'./_Stack':Js(294.0),u'./_arrayEach':Js(301.0),u'./_assignValue':Js(310.0),u'./_baseAssign':Js(312.0),u'./_cloneBuffer':Js(357.0),u'./_copyArray':Js(366.0),u'./_copySymbols':Js(368.0),u'./_getAllKeys':Js(378.0),u'./_getTag':Js(385.0),u'./_initCloneArray':Js(395.0),u'./_initCloneByTag':Js(396.0),u'./_initCloneObject':Js(397.0),u'./_isHostObject':Js(400.0),u'./isArray':Js(458.0),u'./isBuffer':Js(462.0),u'./isObject':Js(467.0),u'./keys':Js(474.0)})
@Js
def PyJs_anonymous_3492_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'objectCreate', u'require', u'module', u'baseCreate', u'isObject'])
    @Js
    def PyJsHoisted_baseCreate_(proto, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'proto':proto}, var)
        var.registers([u'proto'])
        PyJs_Object_3493_ = Js({})
        return (var.get(u'objectCreate')(var.get(u'proto')) if var.get(u'isObject')(var.get(u'proto')) else PyJs_Object_3493_)
    PyJsHoisted_baseCreate_.func_name = u'baseCreate'
    var.put(u'baseCreate', PyJsHoisted_baseCreate_)
    var.put(u'isObject', var.get(u'require')(Js(u'./isObject')))
    var.put(u'objectCreate', var.get(u'Object').get(u'create'))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseCreate'))
PyJs_anonymous_3492_._set_name(u'anonymous')
PyJs_Object_3494_ = Js({u'./isObject':Js(467.0)})
@Js
def PyJs_anonymous_3495_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseEach', u'exports', u'baseForOwn', u'module', u'createBaseEach', u'require'])
    var.put(u'baseForOwn', var.get(u'require')(Js(u'./_baseForOwn')))
    var.put(u'createBaseEach', var.get(u'require')(Js(u'./_createBaseEach')))
    var.put(u'baseEach', var.get(u'createBaseEach')(var.get(u'baseForOwn')))
    var.get(u'module').put(u'exports', var.get(u'baseEach'))
PyJs_anonymous_3495_._set_name(u'anonymous')
PyJs_Object_3496_ = Js({u'./_baseForOwn':Js(320.0),u'./_createBaseEach':Js(371.0)})
@Js
def PyJs_anonymous_3497_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'baseFindIndex'])
    @Js
    def PyJsHoisted_baseFindIndex_(array, predicate, fromIndex, fromRight, this, arguments, var=var):
        var = Scope({u'predicate':predicate, u'arguments':arguments, u'this':this, u'array':array, u'fromIndex':fromIndex, u'fromRight':fromRight}, var)
        var.registers([u'index', u'predicate', u'fromIndex', u'fromRight', u'length', u'array'])
        var.put(u'length', var.get(u'array').get(u'length'))
        var.put(u'index', (var.get(u'fromIndex')+(Js(1.0) if var.get(u'fromRight') else (-Js(1.0)))))
        while ((var.put(u'index',Js(var.get(u'index').to_number())-Js(1))+Js(1)) if var.get(u'fromRight') else (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length'))):
            if var.get(u'predicate')(var.get(u'array').get(var.get(u'index')), var.get(u'index'), var.get(u'array')):
                return var.get(u'index')
        return (-Js(1.0))
    PyJsHoisted_baseFindIndex_.func_name = u'baseFindIndex'
    var.put(u'baseFindIndex', PyJsHoisted_baseFindIndex_)
    pass
    var.get(u'module').put(u'exports', var.get(u'baseFindIndex'))
PyJs_anonymous_3497_._set_name(u'anonymous')
PyJs_Object_3498_ = Js({})
@Js
def PyJs_anonymous_3499_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'baseFlatten', u'require', u'module', u'arrayPush', u'isFlattenable'])
    @Js
    def PyJsHoisted_baseFlatten_(array, depth, predicate, isStrict, result, this, arguments, var=var):
        var = Scope({u'predicate':predicate, u'result':result, u'isStrict':isStrict, u'this':this, u'array':array, u'depth':depth, u'arguments':arguments}, var)
        var.registers([u'index', u'predicate', u'isStrict', u'depth', u'value', u'length', u'result', u'array'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', var.get(u'array').get(u'length'))
        (var.get(u'predicate') or var.put(u'predicate', var.get(u'isFlattenable')))
        (var.get(u'result') or var.put(u'result', Js([])))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.put(u'value', var.get(u'array').get(var.get(u'index')))
            if ((var.get(u'depth')>Js(0.0)) and var.get(u'predicate')(var.get(u'value'))):
                if (var.get(u'depth')>Js(1.0)):
                    var.get(u'baseFlatten')(var.get(u'value'), (var.get(u'depth')-Js(1.0)), var.get(u'predicate'), var.get(u'isStrict'), var.get(u'result'))
                else:
                    var.get(u'arrayPush')(var.get(u'result'), var.get(u'value'))
            else:
                if var.get(u'isStrict').neg():
                    var.get(u'result').put(var.get(u'result').get(u'length'), var.get(u'value'))
        return var.get(u'result')
    PyJsHoisted_baseFlatten_.func_name = u'baseFlatten'
    var.put(u'baseFlatten', PyJsHoisted_baseFlatten_)
    var.put(u'arrayPush', var.get(u'require')(Js(u'./_arrayPush')))
    var.put(u'isFlattenable', var.get(u'require')(Js(u'./_isFlattenable')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseFlatten'))
PyJs_anonymous_3499_._set_name(u'anonymous')
PyJs_Object_3500_ = Js({u'./_arrayPush':Js(305.0),u'./_isFlattenable':Js(398.0)})
@Js
def PyJs_anonymous_3501_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'createBaseFor', u'require', u'exports', u'module', u'baseFor'])
    var.put(u'createBaseFor', var.get(u'require')(Js(u'./_createBaseFor')))
    var.put(u'baseFor', var.get(u'createBaseFor')())
    var.get(u'module').put(u'exports', var.get(u'baseFor'))
PyJs_anonymous_3501_._set_name(u'anonymous')
PyJs_Object_3502_ = Js({u'./_createBaseFor':Js(372.0)})
@Js
def PyJs_anonymous_3503_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'baseFor', u'keys', u'baseForOwn', u'module', u'require'])
    @Js
    def PyJsHoisted_baseForOwn_(object, iteratee, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments, u'iteratee':iteratee}, var)
        var.registers([u'object', u'iteratee'])
        return (var.get(u'object') and var.get(u'baseFor')(var.get(u'object'), var.get(u'iteratee'), var.get(u'keys')))
    PyJsHoisted_baseForOwn_.func_name = u'baseForOwn'
    var.put(u'baseForOwn', PyJsHoisted_baseForOwn_)
    var.put(u'baseFor', var.get(u'require')(Js(u'./_baseFor')))
    var.put(u'keys', var.get(u'require')(Js(u'./keys')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseForOwn'))
PyJs_anonymous_3503_._set_name(u'anonymous')
PyJs_Object_3504_ = Js({u'./_baseFor':Js(319.0),u'./keys':Js(474.0)})
@Js
def PyJs_anonymous_3505_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'toKey', u'isKey', u'require', u'module', u'castPath', u'baseGet'])
    @Js
    def PyJsHoisted_baseGet_(object, path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'object':object, u'arguments':arguments}, var)
        var.registers([u'index', u'length', u'object', u'path'])
        var.put(u'path', (Js([var.get(u'path')]) if var.get(u'isKey')(var.get(u'path'), var.get(u'object')) else var.get(u'castPath')(var.get(u'path'))))
        var.put(u'index', Js(0.0))
        var.put(u'length', var.get(u'path').get(u'length'))
        while ((var.get(u'object')!=var.get(u"null")) and (var.get(u'index')<var.get(u'length'))):
            var.put(u'object', var.get(u'object').get(var.get(u'toKey')(var.get(u'path').get((var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1))))))
        return (var.get(u'object') if (var.get(u'index') and (var.get(u'index')==var.get(u'length'))) else var.get(u'undefined'))
    PyJsHoisted_baseGet_.func_name = u'baseGet'
    var.put(u'baseGet', PyJsHoisted_baseGet_)
    var.put(u'castPath', var.get(u'require')(Js(u'./_castPath')))
    var.put(u'isKey', var.get(u'require')(Js(u'./_isKey')))
    var.put(u'toKey', var.get(u'require')(Js(u'./_toKey')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseGet'))
PyJs_anonymous_3505_._set_name(u'anonymous')
PyJs_Object_3506_ = Js({u'./_castPath':Js(352.0),u'./_isKey':Js(403.0),u'./_toKey':Js(433.0)})
@Js
def PyJs_anonymous_3507_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'exports', u'baseGetAllKeys', u'require', u'module', u'arrayPush'])
    @Js
    def PyJsHoisted_baseGetAllKeys_(object, keysFunc, symbolsFunc, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'symbolsFunc':symbolsFunc, u'keysFunc':keysFunc, u'arguments':arguments}, var)
        var.registers([u'symbolsFunc', u'object', u'result', u'keysFunc'])
        var.put(u'result', var.get(u'keysFunc')(var.get(u'object')))
        return (var.get(u'result') if var.get(u'isArray')(var.get(u'object')) else var.get(u'arrayPush')(var.get(u'result'), var.get(u'symbolsFunc')(var.get(u'object'))))
    PyJsHoisted_baseGetAllKeys_.func_name = u'baseGetAllKeys'
    var.put(u'baseGetAllKeys', PyJsHoisted_baseGetAllKeys_)
    var.put(u'arrayPush', var.get(u'require')(Js(u'./_arrayPush')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseGetAllKeys'))
PyJs_anonymous_3507_._set_name(u'anonymous')
PyJs_Object_3508_ = Js({u'./_arrayPush':Js(305.0),u'./isArray':Js(458.0)})
@Js
def PyJs_anonymous_3509_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'baseHas', u'require', u'module', u'hasOwnProperty', u'getPrototype', u'objectProto'])
    @Js
    def PyJsHoisted_baseHas_(object, key, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments, u'key':key}, var)
        var.registers([u'object', u'key'])
        return ((var.get(u'object')!=var.get(u"null")) and (var.get(u'hasOwnProperty').callprop(u'call', var.get(u'object'), var.get(u'key')) or (((var.get(u'object',throw=False).typeof()==Js(u'object')) and var.get(u'object').contains(var.get(u'key'))) and PyJsStrictEq(var.get(u'getPrototype')(var.get(u'object')),var.get(u"null")))))
    PyJsHoisted_baseHas_.func_name = u'baseHas'
    var.put(u'baseHas', PyJsHoisted_baseHas_)
    var.put(u'getPrototype', var.get(u'require')(Js(u'./_getPrototype')))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseHas'))
PyJs_anonymous_3509_._set_name(u'anonymous')
PyJs_Object_3510_ = Js({u'./_getPrototype':Js(383.0)})
@Js
def PyJs_anonymous_3511_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseHasIn', u'require', u'exports', u'module'])
    @Js
    def PyJsHoisted_baseHasIn_(object, key, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments, u'key':key}, var)
        var.registers([u'object', u'key'])
        return ((var.get(u'object')!=var.get(u"null")) and var.get(u'Object')(var.get(u'object')).contains(var.get(u'key')))
    PyJsHoisted_baseHasIn_.func_name = u'baseHasIn'
    var.put(u'baseHasIn', PyJsHoisted_baseHasIn_)
    pass
    var.get(u'module').put(u'exports', var.get(u'baseHasIn'))
PyJs_anonymous_3511_._set_name(u'anonymous')
PyJs_Object_3512_ = Js({})
@Js
def PyJs_anonymous_3513_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseIndexOf', u'require', u'indexOfNaN', u'exports', u'module'])
    @Js
    def PyJsHoisted_baseIndexOf_(array, value, fromIndex, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'fromIndex':fromIndex, u'value':value, u'arguments':arguments}, var)
        var.registers([u'index', u'length', u'array', u'value', u'fromIndex'])
        if PyJsStrictNeq(var.get(u'value'),var.get(u'value')):
            return var.get(u'indexOfNaN')(var.get(u'array'), var.get(u'fromIndex'))
        var.put(u'index', (var.get(u'fromIndex')-Js(1.0)))
        var.put(u'length', var.get(u'array').get(u'length'))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            if PyJsStrictEq(var.get(u'array').get(var.get(u'index')),var.get(u'value')):
                return var.get(u'index')
        return (-Js(1.0))
    PyJsHoisted_baseIndexOf_.func_name = u'baseIndexOf'
    var.put(u'baseIndexOf', PyJsHoisted_baseIndexOf_)
    var.put(u'indexOfNaN', var.get(u'require')(Js(u'./_indexOfNaN')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseIndexOf'))
PyJs_anonymous_3513_._set_name(u'anonymous')
PyJs_Object_3514_ = Js({u'./_indexOfNaN':Js(394.0)})
@Js
def PyJs_anonymous_3515_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseIndexOfWith', u'require', u'exports', u'module'])
    @Js
    def PyJsHoisted_baseIndexOfWith_(array, value, fromIndex, comparator, this, arguments, var=var):
        var = Scope({u'arguments':arguments, u'comparator':comparator, u'this':this, u'array':array, u'fromIndex':fromIndex, u'value':value}, var)
        var.registers([u'index', u'comparator', u'fromIndex', u'value', u'length', u'array'])
        var.put(u'index', (var.get(u'fromIndex')-Js(1.0)))
        var.put(u'length', var.get(u'array').get(u'length'))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            if var.get(u'comparator')(var.get(u'array').get(var.get(u'index')), var.get(u'value')):
                return var.get(u'index')
        return (-Js(1.0))
    PyJsHoisted_baseIndexOfWith_.func_name = u'baseIndexOfWith'
    var.put(u'baseIndexOfWith', PyJsHoisted_baseIndexOfWith_)
    pass
    var.get(u'module').put(u'exports', var.get(u'baseIndexOfWith'))
PyJs_anonymous_3515_._set_name(u'anonymous')
PyJs_Object_3516_ = Js({})
@Js
def PyJs_anonymous_3517_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'baseIsEqualDeep', u'isObjectLike', u'isObject', u'baseIsEqual'])
    @Js
    def PyJsHoisted_baseIsEqual_(value, other, customizer, bitmask, stack, this, arguments, var=var):
        var = Scope({u'bitmask':bitmask, u'other':other, u'arguments':arguments, u'this':this, u'customizer':customizer, u'stack':stack, u'value':value}, var)
        var.registers([u'bitmask', u'other', u'stack', u'value', u'customizer'])
        if PyJsStrictEq(var.get(u'value'),var.get(u'other')):
            return var.get(u'true')
        if (((var.get(u'value')==var.get(u"null")) or (var.get(u'other')==var.get(u"null"))) or (var.get(u'isObject')(var.get(u'value')).neg() and var.get(u'isObjectLike')(var.get(u'other')).neg())):
            return (PyJsStrictNeq(var.get(u'value'),var.get(u'value')) and PyJsStrictNeq(var.get(u'other'),var.get(u'other')))
        return var.get(u'baseIsEqualDeep')(var.get(u'value'), var.get(u'other'), var.get(u'baseIsEqual'), var.get(u'customizer'), var.get(u'bitmask'), var.get(u'stack'))
    PyJsHoisted_baseIsEqual_.func_name = u'baseIsEqual'
    var.put(u'baseIsEqual', PyJsHoisted_baseIsEqual_)
    var.put(u'baseIsEqualDeep', var.get(u'require')(Js(u'./_baseIsEqualDeep')))
    var.put(u'isObject', var.get(u'require')(Js(u'./isObject')))
    var.put(u'isObjectLike', var.get(u'require')(Js(u'./isObjectLike')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseIsEqual'))
PyJs_anonymous_3517_._set_name(u'anonymous')
PyJs_Object_3518_ = Js({u'./_baseIsEqualDeep':Js(328.0),u'./isObject':Js(467.0),u'./isObjectLike':Js(468.0)})
@Js
def PyJs_anonymous_3519_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'equalObjects', u'isArray', u'exports', u'objectProto', u'objectTag', u'isHostObject', u'require', u'equalArrays', u'module', u'arrayTag', u'baseIsEqualDeep', u'argsTag', u'isTypedArray', u'getTag', u'equalByTag', u'Stack', u'PARTIAL_COMPARE_FLAG', u'hasOwnProperty'])
    @Js
    def PyJsHoisted_baseIsEqualDeep_(object, other, equalFunc, customizer, bitmask, stack, this, arguments, var=var):
        var = Scope({u'equalFunc':equalFunc, u'this':this, u'object':object, u'bitmask':bitmask, u'other':other, u'arguments':arguments, u'customizer':customizer, u'stack':stack}, var)
        var.registers([u'othIsObj', u'othTag', u'equalFunc', u'objIsObj', u'objTag', u'othUnwrapped', u'othIsWrapped', u'isSameTag', u'object', u'objIsArr', u'bitmask', u'other', u'othIsArr', u'objUnwrapped', u'objIsWrapped', u'customizer', u'stack'])
        var.put(u'objIsArr', var.get(u'isArray')(var.get(u'object')))
        var.put(u'othIsArr', var.get(u'isArray')(var.get(u'other')))
        var.put(u'objTag', var.get(u'arrayTag'))
        var.put(u'othTag', var.get(u'arrayTag'))
        if var.get(u'objIsArr').neg():
            var.put(u'objTag', var.get(u'getTag')(var.get(u'object')))
            var.put(u'objTag', (var.get(u'objectTag') if (var.get(u'objTag')==var.get(u'argsTag')) else var.get(u'objTag')))
        if var.get(u'othIsArr').neg():
            var.put(u'othTag', var.get(u'getTag')(var.get(u'other')))
            var.put(u'othTag', (var.get(u'objectTag') if (var.get(u'othTag')==var.get(u'argsTag')) else var.get(u'othTag')))
        var.put(u'objIsObj', ((var.get(u'objTag')==var.get(u'objectTag')) and var.get(u'isHostObject')(var.get(u'object')).neg()))
        var.put(u'othIsObj', ((var.get(u'othTag')==var.get(u'objectTag')) and var.get(u'isHostObject')(var.get(u'other')).neg()))
        var.put(u'isSameTag', (var.get(u'objTag')==var.get(u'othTag')))
        if (var.get(u'isSameTag') and var.get(u'objIsObj').neg()):
            (var.get(u'stack') or var.put(u'stack', var.get(u'Stack').create()))
            return (var.get(u'equalArrays')(var.get(u'object'), var.get(u'other'), var.get(u'equalFunc'), var.get(u'customizer'), var.get(u'bitmask'), var.get(u'stack')) if (var.get(u'objIsArr') or var.get(u'isTypedArray')(var.get(u'object'))) else var.get(u'equalByTag')(var.get(u'object'), var.get(u'other'), var.get(u'objTag'), var.get(u'equalFunc'), var.get(u'customizer'), var.get(u'bitmask'), var.get(u'stack')))
        if (var.get(u'bitmask')&var.get(u'PARTIAL_COMPARE_FLAG')).neg():
            var.put(u'objIsWrapped', (var.get(u'objIsObj') and var.get(u'hasOwnProperty').callprop(u'call', var.get(u'object'), Js(u'__wrapped__'))))
            var.put(u'othIsWrapped', (var.get(u'othIsObj') and var.get(u'hasOwnProperty').callprop(u'call', var.get(u'other'), Js(u'__wrapped__'))))
            if (var.get(u'objIsWrapped') or var.get(u'othIsWrapped')):
                var.put(u'objUnwrapped', (var.get(u'object').callprop(u'value') if var.get(u'objIsWrapped') else var.get(u'object')))
                var.put(u'othUnwrapped', (var.get(u'other').callprop(u'value') if var.get(u'othIsWrapped') else var.get(u'other')))
                (var.get(u'stack') or var.put(u'stack', var.get(u'Stack').create()))
                return var.get(u'equalFunc')(var.get(u'objUnwrapped'), var.get(u'othUnwrapped'), var.get(u'customizer'), var.get(u'bitmask'), var.get(u'stack'))
        if var.get(u'isSameTag').neg():
            return Js(False)
        (var.get(u'stack') or var.put(u'stack', var.get(u'Stack').create()))
        return var.get(u'equalObjects')(var.get(u'object'), var.get(u'other'), var.get(u'equalFunc'), var.get(u'customizer'), var.get(u'bitmask'), var.get(u'stack'))
    PyJsHoisted_baseIsEqualDeep_.func_name = u'baseIsEqualDeep'
    var.put(u'baseIsEqualDeep', PyJsHoisted_baseIsEqualDeep_)
    var.put(u'Stack', var.get(u'require')(Js(u'./_Stack')))
    var.put(u'equalArrays', var.get(u'require')(Js(u'./_equalArrays')))
    var.put(u'equalByTag', var.get(u'require')(Js(u'./_equalByTag')))
    var.put(u'equalObjects', var.get(u'require')(Js(u'./_equalObjects')))
    var.put(u'getTag', var.get(u'require')(Js(u'./_getTag')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'isHostObject', var.get(u'require')(Js(u'./_isHostObject')))
    var.put(u'isTypedArray', var.get(u'require')(Js(u'./isTypedArray')))
    var.put(u'PARTIAL_COMPARE_FLAG', Js(2.0))
    var.put(u'argsTag', Js(u'[object Arguments]'))
    var.put(u'arrayTag', Js(u'[object Array]'))
    var.put(u'objectTag', Js(u'[object Object]'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseIsEqualDeep'))
PyJs_anonymous_3519_._set_name(u'anonymous')
PyJs_Object_3520_ = Js({u'./_Stack':Js(294.0),u'./_equalArrays':Js(375.0),u'./_equalByTag':Js(376.0),u'./_equalObjects':Js(377.0),u'./_getTag':Js(385.0),u'./_isHostObject':Js(400.0),u'./isArray':Js(458.0),u'./isTypedArray':Js(473.0)})
@Js
def PyJs_anonymous_3521_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'PARTIAL_COMPARE_FLAG', u'exports', u'require', u'UNORDERED_COMPARE_FLAG', u'module', u'baseIsMatch', u'Stack', u'baseIsEqual'])
    @Js
    def PyJsHoisted_baseIsMatch_(object, source, matchData, customizer, this, arguments, var=var):
        var = Scope({u'source':source, u'matchData':matchData, u'customizer':customizer, u'arguments':arguments, u'this':this, u'object':object}, var)
        var.registers([u'noCustomizer', u'index', u'matchData', u'key', u'object', u'source', u'length', u'srcValue', u'objValue', u'customizer', u'data', u'stack', u'result'])
        var.put(u'index', var.get(u'matchData').get(u'length'))
        var.put(u'length', var.get(u'index'))
        var.put(u'noCustomizer', var.get(u'customizer').neg())
        if (var.get(u'object')==var.get(u"null")):
            return var.get(u'length').neg()
        var.put(u'object', var.get(u'Object')(var.get(u'object')))
        while (var.put(u'index',Js(var.get(u'index').to_number())-Js(1))+Js(1)):
            var.put(u'data', var.get(u'matchData').get(var.get(u'index')))
            if (PyJsStrictNeq(var.get(u'data').get(u'1'),var.get(u'object').get(var.get(u'data').get(u'0'))) if (var.get(u'noCustomizer') and var.get(u'data').get(u'2')) else var.get(u'object').contains(var.get(u'data').get(u'0')).neg()):
                return Js(False)
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.put(u'data', var.get(u'matchData').get(var.get(u'index')))
            var.put(u'key', var.get(u'data').get(u'0'))
            var.put(u'objValue', var.get(u'object').get(var.get(u'key')))
            var.put(u'srcValue', var.get(u'data').get(u'1'))
            if (var.get(u'noCustomizer') and var.get(u'data').get(u'2')):
                if (PyJsStrictEq(var.get(u'objValue'),var.get(u'undefined')) and var.get(u'object').contains(var.get(u'key')).neg()):
                    return Js(False)
            else:
                var.put(u'stack', var.get(u'Stack').create())
                if var.get(u'customizer'):
                    var.put(u'result', var.get(u'customizer')(var.get(u'objValue'), var.get(u'srcValue'), var.get(u'key'), var.get(u'object'), var.get(u'source'), var.get(u'stack')))
                if (var.get(u'baseIsEqual')(var.get(u'srcValue'), var.get(u'objValue'), var.get(u'customizer'), (var.get(u'UNORDERED_COMPARE_FLAG')|var.get(u'PARTIAL_COMPARE_FLAG')), var.get(u'stack')) if PyJsStrictEq(var.get(u'result'),var.get(u'undefined')) else var.get(u'result')).neg():
                    return Js(False)
        return var.get(u'true')
    PyJsHoisted_baseIsMatch_.func_name = u'baseIsMatch'
    var.put(u'baseIsMatch', PyJsHoisted_baseIsMatch_)
    var.put(u'Stack', var.get(u'require')(Js(u'./_Stack')))
    var.put(u'baseIsEqual', var.get(u'require')(Js(u'./_baseIsEqual')))
    var.put(u'UNORDERED_COMPARE_FLAG', Js(1.0))
    var.put(u'PARTIAL_COMPARE_FLAG', Js(2.0))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseIsMatch'))
PyJs_anonymous_3521_._set_name(u'anonymous')
PyJs_Object_3522_ = Js({u'./_Stack':Js(294.0),u'./_baseIsEqual':Js(327.0)})
@Js
def PyJs_anonymous_3523_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'reIsNative', u'exports', u'toSource', u'objectProto', u'funcToString', u'isHostObject', u'require', u'module', u'baseIsNative', u'isMasked', u'hasOwnProperty', u'reIsHostCtor', u'isFunction', u'reRegExpChar', u'isObject'])
    @Js
    def PyJsHoisted_baseIsNative_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'pattern', u'value'])
        if (var.get(u'isObject')(var.get(u'value')).neg() or var.get(u'isMasked')(var.get(u'value'))):
            return Js(False)
        var.put(u'pattern', (var.get(u'reIsNative') if (var.get(u'isFunction')(var.get(u'value')) or var.get(u'isHostObject')(var.get(u'value'))) else var.get(u'reIsHostCtor')))
        return var.get(u'pattern').callprop(u'test', var.get(u'toSource')(var.get(u'value')))
    PyJsHoisted_baseIsNative_.func_name = u'baseIsNative'
    var.put(u'baseIsNative', PyJsHoisted_baseIsNative_)
    var.put(u'isFunction', var.get(u'require')(Js(u'./isFunction')))
    var.put(u'isHostObject', var.get(u'require')(Js(u'./_isHostObject')))
    var.put(u'isMasked', var.get(u'require')(Js(u'./_isMasked')))
    var.put(u'isObject', var.get(u'require')(Js(u'./isObject')))
    var.put(u'toSource', var.get(u'require')(Js(u'./_toSource')))
    var.put(u'reRegExpChar', JsRegExp(u'/[\\\\^$.*+?()[\\]{}|]/g'))
    var.put(u'reIsHostCtor', JsRegExp(u'/^\\[object .+?Constructor\\]$/'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'funcToString', var.get(u'Function').get(u'prototype').get(u'toString'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    var.put(u'reIsNative', var.get(u'RegExp')(((Js(u'^')+var.get(u'funcToString').callprop(u'call', var.get(u'hasOwnProperty')).callprop(u'replace', var.get(u'reRegExpChar'), Js(u'\\$&')).callprop(u'replace', JsRegExp(u'/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g'), Js(u'$1.*?')))+Js(u'$'))))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseIsNative'))
PyJs_anonymous_3523_._set_name(u'anonymous')
PyJs_Object_3524_ = Js({u'./_isHostObject':Js(400.0),u'./_isMasked':Js(405.0),u'./_toSource':Js(434.0),u'./isFunction':Js(463.0),u'./isObject':Js(467.0)})
@Js
def PyJs_anonymous_3525_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'baseMatches', u'exports', u'require', u'baseIteratee', u'module', u'baseMatchesProperty', u'property', u'identity'])
    @Js
    def PyJsHoisted_baseIteratee_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        if (var.get(u'value',throw=False).typeof()==Js(u'function')):
            return var.get(u'value')
        if (var.get(u'value')==var.get(u"null")):
            return var.get(u'identity')
        if (var.get(u'value',throw=False).typeof()==Js(u'object')):
            return (var.get(u'baseMatchesProperty')(var.get(u'value').get(u'0'), var.get(u'value').get(u'1')) if var.get(u'isArray')(var.get(u'value')) else var.get(u'baseMatches')(var.get(u'value')))
        return var.get(u'property')(var.get(u'value'))
    PyJsHoisted_baseIteratee_.func_name = u'baseIteratee'
    var.put(u'baseIteratee', PyJsHoisted_baseIteratee_)
    var.put(u'baseMatches', var.get(u'require')(Js(u'./_baseMatches')))
    var.put(u'baseMatchesProperty', var.get(u'require')(Js(u'./_baseMatchesProperty')))
    var.put(u'identity', var.get(u'require')(Js(u'./identity')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'property', var.get(u'require')(Js(u'./property')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseIteratee'))
PyJs_anonymous_3525_._set_name(u'anonymous')
PyJs_Object_3526_ = Js({u'./_baseMatches':Js(335.0),u'./_baseMatchesProperty':Js(336.0),u'./identity':Js(455.0),u'./isArray':Js(458.0),u'./property':Js(480.0)})
@Js
def PyJs_anonymous_3527_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'nativeKeys', u'exports', u'module', u'baseKeys'])
    @Js
    def PyJsHoisted_baseKeys_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'object'])
        return var.get(u'nativeKeys')(var.get(u'Object')(var.get(u'object')))
    PyJsHoisted_baseKeys_.func_name = u'baseKeys'
    var.put(u'baseKeys', PyJsHoisted_baseKeys_)
    var.put(u'nativeKeys', var.get(u'Object').get(u'keys'))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseKeys'))
PyJs_anonymous_3527_._set_name(u'anonymous')
PyJs_Object_3528_ = Js({})
@Js
def PyJs_anonymous_3529_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'propertyIsEnumerable', u'exports', u'baseKeysIn', u'require', u'iteratorToArray', u'module', u'Reflect', u'enumerate', u'objectProto'])
    @Js
    def PyJsHoisted_baseKeysIn_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'object', u'result', u'key'])
        var.put(u'object', (var.get(u'object') if (var.get(u'object')==var.get(u"null")) else var.get(u'Object')(var.get(u'object'))))
        var.put(u'result', Js([]))
        for PyJsTemp in var.get(u'object'):
            var.put(u'key', PyJsTemp)
            var.get(u'result').callprop(u'push', var.get(u'key'))
        return var.get(u'result')
    PyJsHoisted_baseKeysIn_.func_name = u'baseKeysIn'
    var.put(u'baseKeysIn', PyJsHoisted_baseKeysIn_)
    var.put(u'Reflect', var.get(u'require')(Js(u'./_Reflect')))
    var.put(u'iteratorToArray', var.get(u'require')(Js(u'./_iteratorToArray')))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'enumerate', (var.get(u'Reflect').get(u'enumerate') if var.get(u'Reflect') else var.get(u'undefined')))
    var.put(u'propertyIsEnumerable', var.get(u'objectProto').get(u'propertyIsEnumerable'))
    pass
    PyJs_Object_3530_ = Js({u'valueOf':Js(1.0)})
    if (var.get(u'enumerate') and var.get(u'propertyIsEnumerable').callprop(u'call', PyJs_Object_3530_, Js(u'valueOf')).neg()):
        @Js
        def PyJs_anonymous_3531_(object, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
            var.registers([u'object'])
            return var.get(u'iteratorToArray')(var.get(u'enumerate')(var.get(u'object')))
        PyJs_anonymous_3531_._set_name(u'anonymous')
        var.put(u'baseKeysIn', PyJs_anonymous_3531_)
    var.get(u'module').put(u'exports', var.get(u'baseKeysIn'))
PyJs_anonymous_3529_._set_name(u'anonymous')
PyJs_Object_3532_ = Js({u'./_Reflect':Js(291.0),u'./_iteratorToArray':Js(408.0)})
@Js
def PyJs_anonymous_3533_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseEach', u'exports', u'isArrayLike', u'require', u'module', u'baseMap'])
    @Js
    def PyJsHoisted_baseMap_(collection, iteratee, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'collection':collection, u'iteratee':iteratee}, var)
        var.registers([u'index', u'result', u'collection', u'iteratee'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'result', (var.get(u'Array')(var.get(u'collection').get(u'length')) if var.get(u'isArrayLike')(var.get(u'collection')) else Js([])))
        @Js
        def PyJs_anonymous_3534_(value, key, collection, this, arguments, var=var):
            var = Scope({u'collection':collection, u'this':this, u'key':key, u'value':value, u'arguments':arguments}, var)
            var.registers([u'collection', u'key', u'value'])
            var.get(u'result').put(var.put(u'index',Js(var.get(u'index').to_number())+Js(1)), var.get(u'iteratee')(var.get(u'value'), var.get(u'key'), var.get(u'collection')))
        PyJs_anonymous_3534_._set_name(u'anonymous')
        var.get(u'baseEach')(var.get(u'collection'), PyJs_anonymous_3534_)
        return var.get(u'result')
    PyJsHoisted_baseMap_.func_name = u'baseMap'
    var.put(u'baseMap', PyJsHoisted_baseMap_)
    var.put(u'baseEach', var.get(u'require')(Js(u'./_baseEach')))
    var.put(u'isArrayLike', var.get(u'require')(Js(u'./isArrayLike')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseMap'))
PyJs_anonymous_3533_._set_name(u'anonymous')
PyJs_Object_3535_ = Js({u'./_baseEach':Js(316.0),u'./isArrayLike':Js(459.0)})
@Js
def PyJs_anonymous_3536_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseMatches', u'exports', u'require', u'matchesStrictComparable', u'module', u'baseIsMatch', u'getMatchData'])
    @Js
    def PyJsHoisted_baseMatches_(source, this, arguments, var=var):
        var = Scope({u'this':this, u'source':source, u'arguments':arguments}, var)
        var.registers([u'source', u'matchData'])
        var.put(u'matchData', var.get(u'getMatchData')(var.get(u'source')))
        if ((var.get(u'matchData').get(u'length')==Js(1.0)) and var.get(u'matchData').get(u'0').get(u'2')):
            return var.get(u'matchesStrictComparable')(var.get(u'matchData').get(u'0').get(u'0'), var.get(u'matchData').get(u'0').get(u'1'))
        @Js
        def PyJs_anonymous_3537_(object, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
            var.registers([u'object'])
            return (PyJsStrictEq(var.get(u'object'),var.get(u'source')) or var.get(u'baseIsMatch')(var.get(u'object'), var.get(u'source'), var.get(u'matchData')))
        PyJs_anonymous_3537_._set_name(u'anonymous')
        return PyJs_anonymous_3537_
    PyJsHoisted_baseMatches_.func_name = u'baseMatches'
    var.put(u'baseMatches', PyJsHoisted_baseMatches_)
    var.put(u'baseIsMatch', var.get(u'require')(Js(u'./_baseIsMatch')))
    var.put(u'getMatchData', var.get(u'require')(Js(u'./_getMatchData')))
    var.put(u'matchesStrictComparable', var.get(u'require')(Js(u'./_matchesStrictComparable')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseMatches'))
PyJs_anonymous_3536_._set_name(u'anonymous')
PyJs_Object_3538_ = Js({u'./_baseIsMatch':Js(329.0),u'./_getMatchData':Js(381.0),u'./_matchesStrictComparable':Js(420.0)})
@Js
def PyJs_anonymous_3539_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'PARTIAL_COMPARE_FLAG', u'exports', u'UNORDERED_COMPARE_FLAG', u'toKey', u'get', u'hasIn', u'require', u'matchesStrictComparable', u'module', u'isKey', u'isStrictComparable', u'baseMatchesProperty', u'baseIsEqual'])
    @Js
    def PyJsHoisted_baseMatchesProperty_(path, srcValue, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'srcValue':srcValue, u'arguments':arguments}, var)
        var.registers([u'path', u'srcValue'])
        if (var.get(u'isKey')(var.get(u'path')) and var.get(u'isStrictComparable')(var.get(u'srcValue'))):
            return var.get(u'matchesStrictComparable')(var.get(u'toKey')(var.get(u'path')), var.get(u'srcValue'))
        @Js
        def PyJs_anonymous_3540_(object, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
            var.registers([u'object', u'objValue'])
            var.put(u'objValue', var.get(u'get')(var.get(u'object'), var.get(u'path')))
            return (var.get(u'hasIn')(var.get(u'object'), var.get(u'path')) if (PyJsStrictEq(var.get(u'objValue'),var.get(u'undefined')) and PyJsStrictEq(var.get(u'objValue'),var.get(u'srcValue'))) else var.get(u'baseIsEqual')(var.get(u'srcValue'), var.get(u'objValue'), var.get(u'undefined'), (var.get(u'UNORDERED_COMPARE_FLAG')|var.get(u'PARTIAL_COMPARE_FLAG'))))
        PyJs_anonymous_3540_._set_name(u'anonymous')
        return PyJs_anonymous_3540_
    PyJsHoisted_baseMatchesProperty_.func_name = u'baseMatchesProperty'
    var.put(u'baseMatchesProperty', PyJsHoisted_baseMatchesProperty_)
    var.put(u'baseIsEqual', var.get(u'require')(Js(u'./_baseIsEqual')))
    var.put(u'get', var.get(u'require')(Js(u'./get')))
    var.put(u'hasIn', var.get(u'require')(Js(u'./hasIn')))
    var.put(u'isKey', var.get(u'require')(Js(u'./_isKey')))
    var.put(u'isStrictComparable', var.get(u'require')(Js(u'./_isStrictComparable')))
    var.put(u'matchesStrictComparable', var.get(u'require')(Js(u'./_matchesStrictComparable')))
    var.put(u'toKey', var.get(u'require')(Js(u'./_toKey')))
    var.put(u'UNORDERED_COMPARE_FLAG', Js(1.0))
    var.put(u'PARTIAL_COMPARE_FLAG', Js(2.0))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseMatchesProperty'))
PyJs_anonymous_3539_._set_name(u'anonymous')
PyJs_Object_3541_ = Js({u'./_baseIsEqual':Js(327.0),u'./_isKey':Js(403.0),u'./_isStrictComparable':Js(407.0),u'./_matchesStrictComparable':Js(420.0),u'./_toKey':Js(433.0),u'./get':Js(452.0),u'./hasIn':Js(454.0)})
@Js
def PyJs_anonymous_3542_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'exports', u'arrayEach', u'require', u'baseMergeDeep', u'Stack', u'baseMerge', u'module', u'isTypedArray', u'assignMergeValue', u'keysIn', u'isObject'])
    @Js
    def PyJsHoisted_baseMerge_(object, source, srcIndex, customizer, stack, this, arguments, var=var):
        var = Scope({u'source':source, u'customizer':customizer, u'arguments':arguments, u'srcIndex':srcIndex, u'this':this, u'object':object, u'stack':stack}, var)
        var.registers([u'object', u'source', u'srcIndex', u'props', u'customizer', u'stack'])
        if PyJsStrictEq(var.get(u'object'),var.get(u'source')):
            return var.get('undefined')
        if (var.get(u'isArray')(var.get(u'source')) or var.get(u'isTypedArray')(var.get(u'source'))).neg():
            var.put(u'props', var.get(u'keysIn')(var.get(u'source')))
        @Js
        def PyJs_anonymous_3543_(srcValue, key, this, arguments, var=var):
            var = Scope({u'this':this, u'srcValue':srcValue, u'key':key, u'arguments':arguments}, var)
            var.registers([u'newValue', u'key', u'srcValue'])
            if var.get(u'props'):
                var.put(u'key', var.get(u'srcValue'))
                var.put(u'srcValue', var.get(u'source').get(var.get(u'key')))
            if var.get(u'isObject')(var.get(u'srcValue')):
                (var.get(u'stack') or var.put(u'stack', var.get(u'Stack').create()))
                var.get(u'baseMergeDeep')(var.get(u'object'), var.get(u'source'), var.get(u'key'), var.get(u'srcIndex'), var.get(u'baseMerge'), var.get(u'customizer'), var.get(u'stack'))
            else:
                var.put(u'newValue', (var.get(u'customizer')(var.get(u'object').get(var.get(u'key')), var.get(u'srcValue'), (var.get(u'key')+Js(u'')), var.get(u'object'), var.get(u'source'), var.get(u'stack')) if var.get(u'customizer') else var.get(u'undefined')))
                if PyJsStrictEq(var.get(u'newValue'),var.get(u'undefined')):
                    var.put(u'newValue', var.get(u'srcValue'))
                var.get(u'assignMergeValue')(var.get(u'object'), var.get(u'key'), var.get(u'newValue'))
        PyJs_anonymous_3543_._set_name(u'anonymous')
        var.get(u'arrayEach')((var.get(u'props') or var.get(u'source')), PyJs_anonymous_3543_)
    PyJsHoisted_baseMerge_.func_name = u'baseMerge'
    var.put(u'baseMerge', PyJsHoisted_baseMerge_)
    var.put(u'Stack', var.get(u'require')(Js(u'./_Stack')))
    var.put(u'arrayEach', var.get(u'require')(Js(u'./_arrayEach')))
    var.put(u'assignMergeValue', var.get(u'require')(Js(u'./_assignMergeValue')))
    var.put(u'baseMergeDeep', var.get(u'require')(Js(u'./_baseMergeDeep')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'isObject', var.get(u'require')(Js(u'./isObject')))
    var.put(u'isTypedArray', var.get(u'require')(Js(u'./isTypedArray')))
    var.put(u'keysIn', var.get(u'require')(Js(u'./keysIn')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseMerge'))
PyJs_anonymous_3542_._set_name(u'anonymous')
PyJs_Object_3544_ = Js({u'./_Stack':Js(294.0),u'./_arrayEach':Js(301.0),u'./_assignMergeValue':Js(309.0),u'./_baseMergeDeep':Js(338.0),u'./isArray':Js(458.0),u'./isObject':Js(467.0),u'./isTypedArray':Js(473.0),u'./keysIn':Js(475.0)})
@Js
def PyJs_anonymous_3545_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'exports', u'isPlainObject', u'module', u'require', u'baseMergeDeep', u'copyArray', u'toPlainObject', u'isArrayLikeObject', u'isTypedArray', u'assignMergeValue', u'isFunction', u'baseClone', u'isObject', u'isArguments'])
    @Js
    def PyJsHoisted_baseMergeDeep_(object, source, key, srcIndex, mergeFunc, customizer, stack, this, arguments, var=var):
        var = Scope({u'key':key, u'this':this, u'object':object, u'source':source, u'arguments':arguments, u'srcIndex':srcIndex, u'mergeFunc':mergeFunc, u'customizer':customizer, u'stack':stack}, var)
        var.registers([u'isCommon', u'stacked', u'key', u'object', u'stack', u'source', u'srcValue', u'objValue', u'mergeFunc', u'customizer', u'srcIndex', u'newValue'])
        var.put(u'objValue', var.get(u'object').get(var.get(u'key')))
        var.put(u'srcValue', var.get(u'source').get(var.get(u'key')))
        var.put(u'stacked', var.get(u'stack').callprop(u'get', var.get(u'srcValue')))
        if var.get(u'stacked'):
            var.get(u'assignMergeValue')(var.get(u'object'), var.get(u'key'), var.get(u'stacked'))
            return var.get('undefined')
        var.put(u'newValue', (var.get(u'customizer')(var.get(u'objValue'), var.get(u'srcValue'), (var.get(u'key')+Js(u'')), var.get(u'object'), var.get(u'source'), var.get(u'stack')) if var.get(u'customizer') else var.get(u'undefined')))
        var.put(u'isCommon', PyJsStrictEq(var.get(u'newValue'),var.get(u'undefined')))
        if var.get(u'isCommon'):
            var.put(u'newValue', var.get(u'srcValue'))
            if (var.get(u'isArray')(var.get(u'srcValue')) or var.get(u'isTypedArray')(var.get(u'srcValue'))):
                if var.get(u'isArray')(var.get(u'objValue')):
                    var.put(u'newValue', var.get(u'objValue'))
                else:
                    if var.get(u'isArrayLikeObject')(var.get(u'objValue')):
                        var.put(u'newValue', var.get(u'copyArray')(var.get(u'objValue')))
                    else:
                        var.put(u'isCommon', Js(False))
                        var.put(u'newValue', var.get(u'baseClone')(var.get(u'srcValue'), var.get(u'true')))
            else:
                if (var.get(u'isPlainObject')(var.get(u'srcValue')) or var.get(u'isArguments')(var.get(u'srcValue'))):
                    if var.get(u'isArguments')(var.get(u'objValue')):
                        var.put(u'newValue', var.get(u'toPlainObject')(var.get(u'objValue')))
                    else:
                        if (var.get(u'isObject')(var.get(u'objValue')).neg() or (var.get(u'srcIndex') and var.get(u'isFunction')(var.get(u'objValue')))):
                            var.put(u'isCommon', Js(False))
                            var.put(u'newValue', var.get(u'baseClone')(var.get(u'srcValue'), var.get(u'true')))
                        else:
                            var.put(u'newValue', var.get(u'objValue'))
                else:
                    var.put(u'isCommon', Js(False))
        var.get(u'stack').callprop(u'set', var.get(u'srcValue'), var.get(u'newValue'))
        if var.get(u'isCommon'):
            var.get(u'mergeFunc')(var.get(u'newValue'), var.get(u'srcValue'), var.get(u'srcIndex'), var.get(u'customizer'), var.get(u'stack'))
        var.get(u'stack').callprop(u'delete', var.get(u'srcValue'))
        var.get(u'assignMergeValue')(var.get(u'object'), var.get(u'key'), var.get(u'newValue'))
    PyJsHoisted_baseMergeDeep_.func_name = u'baseMergeDeep'
    var.put(u'baseMergeDeep', PyJsHoisted_baseMergeDeep_)
    var.put(u'assignMergeValue', var.get(u'require')(Js(u'./_assignMergeValue')))
    var.put(u'baseClone', var.get(u'require')(Js(u'./_baseClone')))
    var.put(u'copyArray', var.get(u'require')(Js(u'./_copyArray')))
    var.put(u'isArguments', var.get(u'require')(Js(u'./isArguments')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'isArrayLikeObject', var.get(u'require')(Js(u'./isArrayLikeObject')))
    var.put(u'isFunction', var.get(u'require')(Js(u'./isFunction')))
    var.put(u'isObject', var.get(u'require')(Js(u'./isObject')))
    var.put(u'isPlainObject', var.get(u'require')(Js(u'./isPlainObject')))
    var.put(u'isTypedArray', var.get(u'require')(Js(u'./isTypedArray')))
    var.put(u'toPlainObject', var.get(u'require')(Js(u'./toPlainObject')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseMergeDeep'))
PyJs_anonymous_3545_._set_name(u'anonymous')
PyJs_Object_3546_ = Js({u'./_assignMergeValue':Js(309.0),u'./_baseClone':Js(314.0),u'./_copyArray':Js(366.0),u'./isArguments':Js(457.0),u'./isArray':Js(458.0),u'./isArrayLikeObject':Js(460.0),u'./isFunction':Js(463.0),u'./isObject':Js(467.0),u'./isPlainObject':Js(469.0),u'./isTypedArray':Js(473.0),u'./toPlainObject':Js(492.0)})
@Js
def PyJs_anonymous_3547_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'arrayMap', u'baseIteratee', u'baseOrderBy', u'module', u'compareMultiple', u'baseUnary', u'baseSortBy', u'baseMap', u'identity'])
    @Js
    def PyJsHoisted_baseOrderBy_(collection, iteratees, orders, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'orders':orders, u'collection':collection, u'iteratees':iteratees}, var)
        var.registers([u'orders', u'index', u'result', u'collection', u'iteratees'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'iteratees', var.get(u'arrayMap')((var.get(u'iteratees') if var.get(u'iteratees').get(u'length') else Js([var.get(u'identity')])), var.get(u'baseUnary')(var.get(u'baseIteratee'))))
        @Js
        def PyJs_anonymous_3548_(value, key, collection, this, arguments, var=var):
            var = Scope({u'collection':collection, u'this':this, u'key':key, u'value':value, u'arguments':arguments}, var)
            var.registers([u'collection', u'key', u'value', u'criteria'])
            @Js
            def PyJs_anonymous_3549_(iteratee, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'iteratee':iteratee}, var)
                var.registers([u'iteratee'])
                return var.get(u'iteratee')(var.get(u'value'))
            PyJs_anonymous_3549_._set_name(u'anonymous')
            var.put(u'criteria', var.get(u'arrayMap')(var.get(u'iteratees'), PyJs_anonymous_3549_))
            PyJs_Object_3550_ = Js({u'criteria':var.get(u'criteria'),u'index':var.put(u'index',Js(var.get(u'index').to_number())+Js(1)),u'value':var.get(u'value')})
            return PyJs_Object_3550_
        PyJs_anonymous_3548_._set_name(u'anonymous')
        var.put(u'result', var.get(u'baseMap')(var.get(u'collection'), PyJs_anonymous_3548_))
        @Js
        def PyJs_anonymous_3551_(object, other, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'other':other, u'arguments':arguments}, var)
            var.registers([u'object', u'other'])
            return var.get(u'compareMultiple')(var.get(u'object'), var.get(u'other'), var.get(u'orders'))
        PyJs_anonymous_3551_._set_name(u'anonymous')
        return var.get(u'baseSortBy')(var.get(u'result'), PyJs_anonymous_3551_)
    PyJsHoisted_baseOrderBy_.func_name = u'baseOrderBy'
    var.put(u'baseOrderBy', PyJsHoisted_baseOrderBy_)
    var.put(u'arrayMap', var.get(u'require')(Js(u'./_arrayMap')))
    var.put(u'baseIteratee', var.get(u'require')(Js(u'./_baseIteratee')))
    var.put(u'baseMap', var.get(u'require')(Js(u'./_baseMap')))
    var.put(u'baseSortBy', var.get(u'require')(Js(u'./_baseSortBy')))
    var.put(u'baseUnary', var.get(u'require')(Js(u'./_baseUnary')))
    var.put(u'compareMultiple', var.get(u'require')(Js(u'./_compareMultiple')))
    var.put(u'identity', var.get(u'require')(Js(u'./identity')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseOrderBy'))
PyJs_anonymous_3547_._set_name(u'anonymous')
PyJs_Object_3552_ = Js({u'./_arrayMap':Js(304.0),u'./_baseIteratee':Js(331.0),u'./_baseMap':Js(334.0),u'./_baseSortBy':Js(345.0),u'./_baseUnary':Js(348.0),u'./_compareMultiple':Js(365.0),u'./identity':Js(455.0)})
@Js
def PyJs_anonymous_3553_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'baseProperty', u'exports', u'module'])
    @Js
    def PyJsHoisted_baseProperty_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        @Js
        def PyJs_anonymous_3554_(object, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
            var.registers([u'object'])
            return (var.get(u'undefined') if (var.get(u'object')==var.get(u"null")) else var.get(u'object').get(var.get(u'key')))
        PyJs_anonymous_3554_._set_name(u'anonymous')
        return PyJs_anonymous_3554_
    PyJsHoisted_baseProperty_.func_name = u'baseProperty'
    var.put(u'baseProperty', PyJsHoisted_baseProperty_)
    pass
    var.get(u'module').put(u'exports', var.get(u'baseProperty'))
PyJs_anonymous_3553_._set_name(u'anonymous')
PyJs_Object_3555_ = Js({})
@Js
def PyJs_anonymous_3556_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'baseGet', u'require', u'basePropertyDeep', u'module'])
    @Js
    def PyJsHoisted_basePropertyDeep_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
        var.registers([u'path'])
        @Js
        def PyJs_anonymous_3557_(object, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
            var.registers([u'object'])
            return var.get(u'baseGet')(var.get(u'object'), var.get(u'path'))
        PyJs_anonymous_3557_._set_name(u'anonymous')
        return PyJs_anonymous_3557_
    PyJsHoisted_basePropertyDeep_.func_name = u'basePropertyDeep'
    var.put(u'basePropertyDeep', PyJsHoisted_basePropertyDeep_)
    var.put(u'baseGet', var.get(u'require')(Js(u'./_baseGet')))
    pass
    var.get(u'module').put(u'exports', var.get(u'basePropertyDeep'))
PyJs_anonymous_3556_._set_name(u'anonymous')
PyJs_Object_3558_ = Js({u'./_baseGet':Js(321.0)})
@Js
def PyJs_anonymous_3559_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseIndexOf', u'exports', u'basePullAll', u'baseIndexOfWith', u'arrayProto', u'require', u'arrayMap', u'module', u'copyArray', u'splice', u'baseUnary'])
    @Js
    def PyJsHoisted_basePullAll_(array, values, iteratee, comparator, this, arguments, var=var):
        var = Scope({u'values':values, u'arguments':arguments, u'comparator':comparator, u'iteratee':iteratee, u'this':this, u'array':array}, var)
        var.registers([u'index', u'computed', u'comparator', u'indexOf', u'fromIndex', u'value', u'length', u'values', u'iteratee', u'seen', u'array'])
        var.put(u'indexOf', (var.get(u'baseIndexOfWith') if var.get(u'comparator') else var.get(u'baseIndexOf')))
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', var.get(u'values').get(u'length'))
        var.put(u'seen', var.get(u'array'))
        if PyJsStrictEq(var.get(u'array'),var.get(u'values')):
            var.put(u'values', var.get(u'copyArray')(var.get(u'values')))
        if var.get(u'iteratee'):
            var.put(u'seen', var.get(u'arrayMap')(var.get(u'array'), var.get(u'baseUnary')(var.get(u'iteratee'))))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.put(u'fromIndex', Js(0.0))
            var.put(u'value', var.get(u'values').get(var.get(u'index')))
            var.put(u'computed', (var.get(u'iteratee')(var.get(u'value')) if var.get(u'iteratee') else var.get(u'value')))
            while (var.put(u'fromIndex', var.get(u'indexOf')(var.get(u'seen'), var.get(u'computed'), var.get(u'fromIndex'), var.get(u'comparator')))>(-Js(1.0))):
                if PyJsStrictNeq(var.get(u'seen'),var.get(u'array')):
                    var.get(u'splice').callprop(u'call', var.get(u'seen'), var.get(u'fromIndex'), Js(1.0))
                var.get(u'splice').callprop(u'call', var.get(u'array'), var.get(u'fromIndex'), Js(1.0))
        return var.get(u'array')
    PyJsHoisted_basePullAll_.func_name = u'basePullAll'
    var.put(u'basePullAll', PyJsHoisted_basePullAll_)
    var.put(u'arrayMap', var.get(u'require')(Js(u'./_arrayMap')))
    var.put(u'baseIndexOf', var.get(u'require')(Js(u'./_baseIndexOf')))
    var.put(u'baseIndexOfWith', var.get(u'require')(Js(u'./_baseIndexOfWith')))
    var.put(u'baseUnary', var.get(u'require')(Js(u'./_baseUnary')))
    var.put(u'copyArray', var.get(u'require')(Js(u'./_copyArray')))
    var.put(u'arrayProto', var.get(u'Array').get(u'prototype'))
    var.put(u'splice', var.get(u'arrayProto').get(u'splice'))
    pass
    var.get(u'module').put(u'exports', var.get(u'basePullAll'))
PyJs_anonymous_3559_._set_name(u'anonymous')
PyJs_Object_3560_ = Js({u'./_arrayMap':Js(304.0),u'./_baseIndexOf':Js(325.0),u'./_baseIndexOfWith':Js(326.0),u'./_baseUnary':Js(348.0),u'./_copyArray':Js(366.0)})
@Js
def PyJs_anonymous_3561_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'MAX_SAFE_INTEGER', u'exports', u'baseRepeat', u'require', u'module', u'nativeFloor'])
    @Js
    def PyJsHoisted_baseRepeat_(string, n, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'string':string, u'n':n}, var)
        var.registers([u'n', u'result', u'string'])
        var.put(u'result', Js(u''))
        if ((var.get(u'string').neg() or (var.get(u'n')<Js(1.0))) or (var.get(u'n')>var.get(u'MAX_SAFE_INTEGER'))):
            return var.get(u'result')
        while 1:
            if (var.get(u'n')%Js(2.0)):
                var.put(u'result', var.get(u'string'), u'+')
            var.put(u'n', var.get(u'nativeFloor')((var.get(u'n')/Js(2.0))))
            if var.get(u'n'):
                var.put(u'string', var.get(u'string'), u'+')
            if not var.get(u'n'):
                break
        return var.get(u'result')
    PyJsHoisted_baseRepeat_.func_name = u'baseRepeat'
    var.put(u'baseRepeat', PyJsHoisted_baseRepeat_)
    var.put(u'MAX_SAFE_INTEGER', Js(9007199254740991.0))
    var.put(u'nativeFloor', var.get(u'Math').get(u'floor'))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseRepeat'))
PyJs_anonymous_3561_._set_name(u'anonymous')
PyJs_Object_3562_ = Js({})
@Js
def PyJs_anonymous_3563_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseSlice', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_baseSlice_(array, start, end, this, arguments, var=var):
        var = Scope({u'this':this, u'start':start, u'array':array, u'end':end, u'arguments':arguments}, var)
        var.registers([u'index', u'end', u'start', u'length', u'result', u'array'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', var.get(u'array').get(u'length'))
        if (var.get(u'start')<Js(0.0)):
            var.put(u'start', (Js(0.0) if ((-var.get(u'start'))>var.get(u'length')) else (var.get(u'length')+var.get(u'start'))))
        var.put(u'end', (var.get(u'length') if (var.get(u'end')>var.get(u'length')) else var.get(u'end')))
        if (var.get(u'end')<Js(0.0)):
            var.put(u'end', var.get(u'length'), u'+')
        var.put(u'length', (Js(0.0) if (var.get(u'start')>var.get(u'end')) else PyJsBshift((var.get(u'end')-var.get(u'start')),Js(0.0))))
        var.put(u'start', Js(0.0), u'>>>')
        var.put(u'result', var.get(u'Array')(var.get(u'length')))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.get(u'result').put(var.get(u'index'), var.get(u'array').get((var.get(u'index')+var.get(u'start'))))
        return var.get(u'result')
    PyJsHoisted_baseSlice_.func_name = u'baseSlice'
    var.put(u'baseSlice', PyJsHoisted_baseSlice_)
    pass
    var.get(u'module').put(u'exports', var.get(u'baseSlice'))
PyJs_anonymous_3563_._set_name(u'anonymous')
PyJs_Object_3564_ = Js({})
@Js
def PyJs_anonymous_3565_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseSortBy', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_baseSortBy_(array, comparer, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'comparer':comparer, u'arguments':arguments}, var)
        var.registers([u'length', u'array', u'comparer'])
        var.put(u'length', var.get(u'array').get(u'length'))
        var.get(u'array').callprop(u'sort', var.get(u'comparer'))
        while (var.put(u'length',Js(var.get(u'length').to_number())-Js(1))+Js(1)):
            var.get(u'array').put(var.get(u'length'), var.get(u'array').get(var.get(u'length')).get(u'value'))
        return var.get(u'array')
    PyJsHoisted_baseSortBy_.func_name = u'baseSortBy'
    var.put(u'baseSortBy', PyJsHoisted_baseSortBy_)
    pass
    var.get(u'module').put(u'exports', var.get(u'baseSortBy'))
PyJs_anonymous_3565_._set_name(u'anonymous')
PyJs_Object_3566_ = Js({})
@Js
def PyJs_anonymous_3567_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'baseTimes'])
    @Js
    def PyJsHoisted_baseTimes_(n, iteratee, this, arguments, var=var):
        var = Scope({u'this':this, u'iteratee':iteratee, u'arguments':arguments, u'n':n}, var)
        var.registers([u'index', u'iteratee', u'result', u'n'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'result', var.get(u'Array')(var.get(u'n')))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'n')):
            var.get(u'result').put(var.get(u'index'), var.get(u'iteratee')(var.get(u'index')))
        return var.get(u'result')
    PyJsHoisted_baseTimes_.func_name = u'baseTimes'
    var.put(u'baseTimes', PyJsHoisted_baseTimes_)
    pass
    var.get(u'module').put(u'exports', var.get(u'baseTimes'))
PyJs_anonymous_3567_._set_name(u'anonymous')
PyJs_Object_3568_ = Js({})
@Js
def PyJs_anonymous_3569_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'INFINITY', u'Symbol', u'baseToString', u'module', u'symbolProto', u'isSymbol', u'require', u'symbolToString'])
    @Js
    def PyJsHoisted_baseToString_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'result', u'value'])
        if (var.get(u'value',throw=False).typeof()==Js(u'string')):
            return var.get(u'value')
        if var.get(u'isSymbol')(var.get(u'value')):
            return (var.get(u'symbolToString').callprop(u'call', var.get(u'value')) if var.get(u'symbolToString') else Js(u''))
        var.put(u'result', (var.get(u'value')+Js(u'')))
        return (Js(u'-0') if ((var.get(u'result')==Js(u'0')) and ((Js(1.0)/var.get(u'value'))==(-var.get(u'INFINITY')))) else var.get(u'result'))
    PyJsHoisted_baseToString_.func_name = u'baseToString'
    var.put(u'baseToString', PyJsHoisted_baseToString_)
    var.put(u'Symbol', var.get(u'require')(Js(u'./_Symbol')))
    var.put(u'isSymbol', var.get(u'require')(Js(u'./isSymbol')))
    var.put(u'INFINITY', (Js(1.0)/Js(0.0)))
    var.put(u'symbolProto', (var.get(u'Symbol').get(u'prototype') if var.get(u'Symbol') else var.get(u'undefined')))
    var.put(u'symbolToString', (var.get(u'symbolProto').get(u'toString') if var.get(u'symbolProto') else var.get(u'undefined')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseToString'))
PyJs_anonymous_3569_._set_name(u'anonymous')
PyJs_Object_3570_ = Js({u'./_Symbol':Js(295.0),u'./isSymbol':Js(472.0)})
@Js
def PyJs_anonymous_3571_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseUnary', u'require', u'exports', u'module'])
    @Js
    def PyJsHoisted_baseUnary_(func, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'func':func}, var)
        var.registers([u'func'])
        @Js
        def PyJs_anonymous_3572_(value, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
            var.registers([u'value'])
            return var.get(u'func')(var.get(u'value'))
        PyJs_anonymous_3572_._set_name(u'anonymous')
        return PyJs_anonymous_3572_
    PyJsHoisted_baseUnary_.func_name = u'baseUnary'
    var.put(u'baseUnary', PyJsHoisted_baseUnary_)
    pass
    var.get(u'module').put(u'exports', var.get(u'baseUnary'))
PyJs_anonymous_3571_._set_name(u'anonymous')
PyJs_Object_3573_ = Js({})
@Js
def PyJs_anonymous_3574_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseUniq', u'exports', u'arrayIncludesWith', u'SetCache', u'require', u'setToArray', u'cacheHas', u'LARGE_ARRAY_SIZE', u'arrayIncludes', u'module', u'createSet'])
    @Js
    def PyJsHoisted_baseUniq_(array, iteratee, comparator, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'arguments':arguments, u'comparator':comparator, u'iteratee':iteratee}, var)
        var.registers([u'index', u'isCommon', u'computed', u'comparator', u'value', u'includes', u'length', u'set', u'result', u'seenIndex', u'iteratee', u'seen', u'array'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'includes', var.get(u'arrayIncludes'))
        var.put(u'length', var.get(u'array').get(u'length'))
        var.put(u'isCommon', var.get(u'true'))
        var.put(u'result', Js([]))
        var.put(u'seen', var.get(u'result'))
        if var.get(u'comparator'):
            var.put(u'isCommon', Js(False))
            var.put(u'includes', var.get(u'arrayIncludesWith'))
        else:
            if (var.get(u'length')>=var.get(u'LARGE_ARRAY_SIZE')):
                var.put(u'set', (var.get(u"null") if var.get(u'iteratee') else var.get(u'createSet')(var.get(u'array'))))
                if var.get(u'set'):
                    return var.get(u'setToArray')(var.get(u'set'))
                var.put(u'isCommon', Js(False))
                var.put(u'includes', var.get(u'cacheHas'))
                var.put(u'seen', var.get(u'SetCache').create())
            else:
                var.put(u'seen', (Js([]) if var.get(u'iteratee') else var.get(u'result')))
        class JS_CONTINUE_LABEL_6f75746572(Exception): pass
        class JS_BREAK_LABEL_6f75746572(Exception): pass
        try:
            while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
                try:
                    var.put(u'value', var.get(u'array').get(var.get(u'index')))
                    var.put(u'computed', (var.get(u'iteratee')(var.get(u'value')) if var.get(u'iteratee') else var.get(u'value')))
                    var.put(u'value', (var.get(u'value') if (var.get(u'comparator') or PyJsStrictNeq(var.get(u'value'),Js(0.0))) else Js(0.0)))
                    if (var.get(u'isCommon') and PyJsStrictEq(var.get(u'computed'),var.get(u'computed'))):
                        var.put(u'seenIndex', var.get(u'seen').get(u'length'))
                        while (var.put(u'seenIndex',Js(var.get(u'seenIndex').to_number())-Js(1))+Js(1)):
                            if PyJsStrictEq(var.get(u'seen').get(var.get(u'seenIndex')),var.get(u'computed')):
                                raise JS_CONTINUE_LABEL_6f75746572("Continued")
                        if var.get(u'iteratee'):
                            var.get(u'seen').callprop(u'push', var.get(u'computed'))
                        var.get(u'result').callprop(u'push', var.get(u'value'))
                    else:
                        if var.get(u'includes')(var.get(u'seen'), var.get(u'computed'), var.get(u'comparator')).neg():
                            if PyJsStrictNeq(var.get(u'seen'),var.get(u'result')):
                                var.get(u'seen').callprop(u'push', var.get(u'computed'))
                            var.get(u'result').callprop(u'push', var.get(u'value'))
                except JS_CONTINUE_LABEL_6f75746572:
                    pass
        except JS_BREAK_LABEL_6f75746572:
            pass
        return var.get(u'result')
    PyJsHoisted_baseUniq_.func_name = u'baseUniq'
    var.put(u'baseUniq', PyJsHoisted_baseUniq_)
    var.put(u'SetCache', var.get(u'require')(Js(u'./_SetCache')))
    var.put(u'arrayIncludes', var.get(u'require')(Js(u'./_arrayIncludes')))
    var.put(u'arrayIncludesWith', var.get(u'require')(Js(u'./_arrayIncludesWith')))
    var.put(u'cacheHas', var.get(u'require')(Js(u'./_cacheHas')))
    var.put(u'createSet', var.get(u'require')(Js(u'./_createSet')))
    var.put(u'setToArray', var.get(u'require')(Js(u'./_setToArray')))
    var.put(u'LARGE_ARRAY_SIZE', Js(200.0))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseUniq'))
PyJs_anonymous_3574_._set_name(u'anonymous')
PyJs_Object_3575_ = Js({u'./_SetCache':Js(293.0),u'./_arrayIncludes':Js(302.0),u'./_arrayIncludesWith':Js(303.0),u'./_cacheHas':Js(351.0),u'./_createSet':Js(374.0),u'./_setToArray':Js(425.0)})
@Js
def PyJs_anonymous_3576_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'arrayMap', u'exports', u'baseValues', u'module'])
    @Js
    def PyJsHoisted_baseValues_(object, props, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments, u'props':props}, var)
        var.registers([u'object', u'props'])
        @Js
        def PyJs_anonymous_3577_(key, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
            var.registers([u'key'])
            return var.get(u'object').get(var.get(u'key'))
        PyJs_anonymous_3577_._set_name(u'anonymous')
        return var.get(u'arrayMap')(var.get(u'props'), PyJs_anonymous_3577_)
    PyJsHoisted_baseValues_.func_name = u'baseValues'
    var.put(u'baseValues', PyJsHoisted_baseValues_)
    var.put(u'arrayMap', var.get(u'require')(Js(u'./_arrayMap')))
    pass
    var.get(u'module').put(u'exports', var.get(u'baseValues'))
PyJs_anonymous_3576_._set_name(u'anonymous')
PyJs_Object_3578_ = Js({u'./_arrayMap':Js(304.0)})
@Js
def PyJs_anonymous_3579_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'cacheHas'])
    @Js
    def PyJsHoisted_cacheHas_(cache, key, this, arguments, var=var):
        var = Scope({u'this':this, u'cache':cache, u'arguments':arguments, u'key':key}, var)
        var.registers([u'cache', u'key'])
        return var.get(u'cache').callprop(u'has', var.get(u'key'))
    PyJsHoisted_cacheHas_.func_name = u'cacheHas'
    var.put(u'cacheHas', PyJsHoisted_cacheHas_)
    pass
    var.get(u'module').put(u'exports', var.get(u'cacheHas'))
PyJs_anonymous_3579_._set_name(u'anonymous')
PyJs_Object_3580_ = Js({})
@Js
def PyJs_anonymous_3581_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'exports', u'stringToPath', u'require', u'module', u'castPath'])
    @Js
    def PyJsHoisted_castPath_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return (var.get(u'value') if var.get(u'isArray')(var.get(u'value')) else var.get(u'stringToPath')(var.get(u'value')))
    PyJsHoisted_castPath_.func_name = u'castPath'
    var.put(u'castPath', PyJsHoisted_castPath_)
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'stringToPath', var.get(u'require')(Js(u'./_stringToPath')))
    pass
    var.get(u'module').put(u'exports', var.get(u'castPath'))
PyJs_anonymous_3581_._set_name(u'anonymous')
PyJs_Object_3582_ = Js({u'./_stringToPath':Js(432.0),u'./isArray':Js(458.0)})
@Js
def PyJs_anonymous_3583_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'baseSlice', u'castSlice', u'require', u'module'])
    @Js
    def PyJsHoisted_castSlice_(array, start, end, this, arguments, var=var):
        var = Scope({u'this':this, u'start':start, u'array':array, u'end':end, u'arguments':arguments}, var)
        var.registers([u'start', u'length', u'end', u'array'])
        var.put(u'length', var.get(u'array').get(u'length'))
        var.put(u'end', (var.get(u'length') if PyJsStrictEq(var.get(u'end'),var.get(u'undefined')) else var.get(u'end')))
        return (var.get(u'array') if (var.get(u'start').neg() and (var.get(u'end')>=var.get(u'length'))) else var.get(u'baseSlice')(var.get(u'array'), var.get(u'start'), var.get(u'end')))
    PyJsHoisted_castSlice_.func_name = u'castSlice'
    var.put(u'castSlice', PyJsHoisted_castSlice_)
    var.put(u'baseSlice', var.get(u'require')(Js(u'./_baseSlice')))
    pass
    var.get(u'module').put(u'exports', var.get(u'castSlice'))
PyJs_anonymous_3583_._set_name(u'anonymous')
PyJs_Object_3584_ = Js({u'./_baseSlice':Js(344.0)})
@Js
def PyJs_anonymous_3585_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseIndexOf', u'require', u'exports', u'module', u'charsEndIndex'])
    @Js
    def PyJsHoisted_charsEndIndex_(strSymbols, chrSymbols, this, arguments, var=var):
        var = Scope({u'this':this, u'chrSymbols':chrSymbols, u'arguments':arguments, u'strSymbols':strSymbols}, var)
        var.registers([u'index', u'chrSymbols', u'strSymbols'])
        var.put(u'index', var.get(u'strSymbols').get(u'length'))
        while ((var.put(u'index',Js(var.get(u'index').to_number())-Js(1))+Js(1)) and (var.get(u'baseIndexOf')(var.get(u'chrSymbols'), var.get(u'strSymbols').get(var.get(u'index')), Js(0.0))>(-Js(1.0)))):
            pass
        return var.get(u'index')
    PyJsHoisted_charsEndIndex_.func_name = u'charsEndIndex'
    var.put(u'charsEndIndex', PyJsHoisted_charsEndIndex_)
    var.put(u'baseIndexOf', var.get(u'require')(Js(u'./_baseIndexOf')))
    pass
    var.get(u'module').put(u'exports', var.get(u'charsEndIndex'))
PyJs_anonymous_3585_._set_name(u'anonymous')
PyJs_Object_3586_ = Js({u'./_baseIndexOf':Js(325.0)})
@Js
def PyJs_anonymous_3587_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'checkGlobal'])
    @Js
    def PyJsHoisted_checkGlobal_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return (var.get(u'value') if (var.get(u'value') and PyJsStrictEq(var.get(u'value').get(u'Object'),var.get(u'Object'))) else var.get(u"null"))
    PyJsHoisted_checkGlobal_.func_name = u'checkGlobal'
    var.put(u'checkGlobal', PyJsHoisted_checkGlobal_)
    pass
    var.get(u'module').put(u'exports', var.get(u'checkGlobal'))
PyJs_anonymous_3587_._set_name(u'anonymous')
PyJs_Object_3588_ = Js({})
@Js
def PyJs_anonymous_3589_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'cloneArrayBuffer', u'require', u'exports', u'Uint8Array', u'module'])
    @Js
    def PyJsHoisted_cloneArrayBuffer_(arrayBuffer, this, arguments, var=var):
        var = Scope({u'this':this, u'arrayBuffer':arrayBuffer, u'arguments':arguments}, var)
        var.registers([u'arrayBuffer', u'result'])
        var.put(u'result', var.get(u'arrayBuffer').get(u'constructor').create(var.get(u'arrayBuffer').get(u'byteLength')))
        var.get(u'Uint8Array').create(var.get(u'result')).callprop(u'set', var.get(u'Uint8Array').create(var.get(u'arrayBuffer')))
        return var.get(u'result')
    PyJsHoisted_cloneArrayBuffer_.func_name = u'cloneArrayBuffer'
    var.put(u'cloneArrayBuffer', PyJsHoisted_cloneArrayBuffer_)
    var.put(u'Uint8Array', var.get(u'require')(Js(u'./_Uint8Array')))
    pass
    var.get(u'module').put(u'exports', var.get(u'cloneArrayBuffer'))
PyJs_anonymous_3589_._set_name(u'anonymous')
PyJs_Object_3590_ = Js({u'./_Uint8Array':Js(296.0)})
@Js
def PyJs_anonymous_3591_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'cloneBuffer', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_cloneBuffer_(buffer, isDeep, this, arguments, var=var):
        var = Scope({u'buffer':buffer, u'this':this, u'isDeep':isDeep, u'arguments':arguments}, var)
        var.registers([u'buffer', u'isDeep', u'result'])
        if var.get(u'isDeep'):
            return var.get(u'buffer').callprop(u'slice')
        var.put(u'result', var.get(u'buffer').get(u'constructor').create(var.get(u'buffer').get(u'length')))
        var.get(u'buffer').callprop(u'copy', var.get(u'result'))
        return var.get(u'result')
    PyJsHoisted_cloneBuffer_.func_name = u'cloneBuffer'
    var.put(u'cloneBuffer', PyJsHoisted_cloneBuffer_)
    pass
    var.get(u'module').put(u'exports', var.get(u'cloneBuffer'))
PyJs_anonymous_3591_._set_name(u'anonymous')
PyJs_Object_3592_ = Js({})
@Js
def PyJs_anonymous_3593_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'cloneArrayBuffer', u'require', u'exports', u'cloneDataView', u'module'])
    @Js
    def PyJsHoisted_cloneDataView_(dataView, isDeep, this, arguments, var=var):
        var = Scope({u'this':this, u'dataView':dataView, u'isDeep':isDeep, u'arguments':arguments}, var)
        var.registers([u'buffer', u'dataView', u'isDeep'])
        var.put(u'buffer', (var.get(u'cloneArrayBuffer')(var.get(u'dataView').get(u'buffer')) if var.get(u'isDeep') else var.get(u'dataView').get(u'buffer')))
        return var.get(u'dataView').get(u'constructor').create(var.get(u'buffer'), var.get(u'dataView').get(u'byteOffset'), var.get(u'dataView').get(u'byteLength'))
    PyJsHoisted_cloneDataView_.func_name = u'cloneDataView'
    var.put(u'cloneDataView', PyJsHoisted_cloneDataView_)
    var.put(u'cloneArrayBuffer', var.get(u'require')(Js(u'./_cloneArrayBuffer')))
    pass
    var.get(u'module').put(u'exports', var.get(u'cloneDataView'))
PyJs_anonymous_3593_._set_name(u'anonymous')
PyJs_Object_3594_ = Js({u'./_cloneArrayBuffer':Js(356.0)})
@Js
def PyJs_anonymous_3595_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'addMapEntry', u'require', u'module', u'arrayReduce', u'mapToArray', u'cloneMap'])
    @Js
    def PyJsHoisted_cloneMap_(map, isDeep, cloneFunc, this, arguments, var=var):
        var = Scope({u'this':this, u'map':map, u'isDeep':isDeep, u'arguments':arguments, u'cloneFunc':cloneFunc}, var)
        var.registers([u'map', u'array', u'isDeep', u'cloneFunc'])
        var.put(u'array', (var.get(u'cloneFunc')(var.get(u'mapToArray')(var.get(u'map')), var.get(u'true')) if var.get(u'isDeep') else var.get(u'mapToArray')(var.get(u'map'))))
        return var.get(u'arrayReduce')(var.get(u'array'), var.get(u'addMapEntry'), var.get(u'map').get(u'constructor').create())
    PyJsHoisted_cloneMap_.func_name = u'cloneMap'
    var.put(u'cloneMap', PyJsHoisted_cloneMap_)
    var.put(u'addMapEntry', var.get(u'require')(Js(u'./_addMapEntry')))
    var.put(u'arrayReduce', var.get(u'require')(Js(u'./_arrayReduce')))
    var.put(u'mapToArray', var.get(u'require')(Js(u'./_mapToArray')))
    pass
    var.get(u'module').put(u'exports', var.get(u'cloneMap'))
PyJs_anonymous_3595_._set_name(u'anonymous')
PyJs_Object_3596_ = Js({u'./_addMapEntry':Js(298.0),u'./_arrayReduce':Js(306.0),u'./_mapToArray':Js(419.0)})
@Js
def PyJs_anonymous_3597_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'cloneRegExp', u'exports', u'module', u'reFlags'])
    @Js
    def PyJsHoisted_cloneRegExp_(regexp, this, arguments, var=var):
        var = Scope({u'this':this, u'regexp':regexp, u'arguments':arguments}, var)
        var.registers([u'regexp', u'result'])
        var.put(u'result', var.get(u'regexp').get(u'constructor').create(var.get(u'regexp').get(u'source'), var.get(u'reFlags').callprop(u'exec', var.get(u'regexp'))))
        var.get(u'result').put(u'lastIndex', var.get(u'regexp').get(u'lastIndex'))
        return var.get(u'result')
    PyJsHoisted_cloneRegExp_.func_name = u'cloneRegExp'
    var.put(u'cloneRegExp', PyJsHoisted_cloneRegExp_)
    var.put(u'reFlags', JsRegExp(u'/\\w*$/'))
    pass
    var.get(u'module').put(u'exports', var.get(u'cloneRegExp'))
PyJs_anonymous_3597_._set_name(u'anonymous')
PyJs_Object_3598_ = Js({})
@Js
def PyJs_anonymous_3599_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'cloneSet', u'exports', u'require', u'setToArray', u'addSetEntry', u'module', u'arrayReduce'])
    @Js
    def PyJsHoisted_cloneSet_(set, isDeep, cloneFunc, this, arguments, var=var):
        var = Scope({u'this':this, u'cloneFunc':cloneFunc, u'set':set, u'isDeep':isDeep, u'arguments':arguments}, var)
        var.registers([u'cloneFunc', u'array', u'set', u'isDeep'])
        var.put(u'array', (var.get(u'cloneFunc')(var.get(u'setToArray')(var.get(u'set')), var.get(u'true')) if var.get(u'isDeep') else var.get(u'setToArray')(var.get(u'set'))))
        return var.get(u'arrayReduce')(var.get(u'array'), var.get(u'addSetEntry'), var.get(u'set').get(u'constructor').create())
    PyJsHoisted_cloneSet_.func_name = u'cloneSet'
    var.put(u'cloneSet', PyJsHoisted_cloneSet_)
    var.put(u'addSetEntry', var.get(u'require')(Js(u'./_addSetEntry')))
    var.put(u'arrayReduce', var.get(u'require')(Js(u'./_arrayReduce')))
    var.put(u'setToArray', var.get(u'require')(Js(u'./_setToArray')))
    pass
    var.get(u'module').put(u'exports', var.get(u'cloneSet'))
PyJs_anonymous_3599_._set_name(u'anonymous')
PyJs_Object_3600_ = Js({u'./_addSetEntry':Js(299.0),u'./_arrayReduce':Js(306.0),u'./_setToArray':Js(425.0)})
@Js
def PyJs_anonymous_3601_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'cloneSymbol', u'Symbol', u'symbolValueOf', u'module', u'symbolProto', u'require'])
    @Js
    def PyJsHoisted_cloneSymbol_(symbol, this, arguments, var=var):
        var = Scope({u'this':this, u'symbol':symbol, u'arguments':arguments}, var)
        var.registers([u'symbol'])
        PyJs_Object_3602_ = Js({})
        return (var.get(u'Object')(var.get(u'symbolValueOf').callprop(u'call', var.get(u'symbol'))) if var.get(u'symbolValueOf') else PyJs_Object_3602_)
    PyJsHoisted_cloneSymbol_.func_name = u'cloneSymbol'
    var.put(u'cloneSymbol', PyJsHoisted_cloneSymbol_)
    var.put(u'Symbol', var.get(u'require')(Js(u'./_Symbol')))
    var.put(u'symbolProto', (var.get(u'Symbol').get(u'prototype') if var.get(u'Symbol') else var.get(u'undefined')))
    var.put(u'symbolValueOf', (var.get(u'symbolProto').get(u'valueOf') if var.get(u'symbolProto') else var.get(u'undefined')))
    pass
    var.get(u'module').put(u'exports', var.get(u'cloneSymbol'))
PyJs_anonymous_3601_._set_name(u'anonymous')
PyJs_Object_3603_ = Js({u'./_Symbol':Js(295.0)})
@Js
def PyJs_anonymous_3604_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'cloneArrayBuffer', u'require', u'exports', u'module', u'cloneTypedArray'])
    @Js
    def PyJsHoisted_cloneTypedArray_(typedArray, isDeep, this, arguments, var=var):
        var = Scope({u'this':this, u'typedArray':typedArray, u'isDeep':isDeep, u'arguments':arguments}, var)
        var.registers([u'buffer', u'typedArray', u'isDeep'])
        var.put(u'buffer', (var.get(u'cloneArrayBuffer')(var.get(u'typedArray').get(u'buffer')) if var.get(u'isDeep') else var.get(u'typedArray').get(u'buffer')))
        return var.get(u'typedArray').get(u'constructor').create(var.get(u'buffer'), var.get(u'typedArray').get(u'byteOffset'), var.get(u'typedArray').get(u'length'))
    PyJsHoisted_cloneTypedArray_.func_name = u'cloneTypedArray'
    var.put(u'cloneTypedArray', PyJsHoisted_cloneTypedArray_)
    var.put(u'cloneArrayBuffer', var.get(u'require')(Js(u'./_cloneArrayBuffer')))
    pass
    var.get(u'module').put(u'exports', var.get(u'cloneTypedArray'))
PyJs_anonymous_3604_._set_name(u'anonymous')
PyJs_Object_3605_ = Js({u'./_cloneArrayBuffer':Js(356.0)})
@Js
def PyJs_anonymous_3606_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'compareAscending', u'require', u'isSymbol', u'exports', u'module'])
    @Js
    def PyJsHoisted_compareAscending_(value, other, this, arguments, var=var):
        var = Scope({u'this':this, u'other':other, u'arguments':arguments, u'value':value}, var)
        var.registers([u'valIsSymbol', u'valIsNull', u'value', u'valIsDefined', u'othIsNull', u'othIsReflexive', u'othIsSymbol', u'othIsDefined', u'other', u'valIsReflexive'])
        if PyJsStrictNeq(var.get(u'value'),var.get(u'other')):
            var.put(u'valIsDefined', PyJsStrictNeq(var.get(u'value'),var.get(u'undefined')))
            var.put(u'valIsNull', PyJsStrictEq(var.get(u'value'),var.get(u"null")))
            var.put(u'valIsReflexive', PyJsStrictEq(var.get(u'value'),var.get(u'value')))
            var.put(u'valIsSymbol', var.get(u'isSymbol')(var.get(u'value')))
            var.put(u'othIsDefined', PyJsStrictNeq(var.get(u'other'),var.get(u'undefined')))
            var.put(u'othIsNull', PyJsStrictEq(var.get(u'other'),var.get(u"null")))
            var.put(u'othIsReflexive', PyJsStrictEq(var.get(u'other'),var.get(u'other')))
            var.put(u'othIsSymbol', var.get(u'isSymbol')(var.get(u'other')))
            def PyJs_LONG_3607_(var=var):
                return ((((((var.get(u'othIsNull').neg() and var.get(u'othIsSymbol').neg()) and var.get(u'valIsSymbol').neg()) and (var.get(u'value')>var.get(u'other'))) or ((((var.get(u'valIsSymbol') and var.get(u'othIsDefined')) and var.get(u'othIsReflexive')) and var.get(u'othIsNull').neg()) and var.get(u'othIsSymbol').neg())) or ((var.get(u'valIsNull') and var.get(u'othIsDefined')) and var.get(u'othIsReflexive'))) or (var.get(u'valIsDefined').neg() and var.get(u'othIsReflexive')))
            if (PyJs_LONG_3607_() or var.get(u'valIsReflexive').neg()):
                return Js(1.0)
            def PyJs_LONG_3608_(var=var):
                return ((((((var.get(u'valIsNull').neg() and var.get(u'valIsSymbol').neg()) and var.get(u'othIsSymbol').neg()) and (var.get(u'value')<var.get(u'other'))) or ((((var.get(u'othIsSymbol') and var.get(u'valIsDefined')) and var.get(u'valIsReflexive')) and var.get(u'valIsNull').neg()) and var.get(u'valIsSymbol').neg())) or ((var.get(u'othIsNull') and var.get(u'valIsDefined')) and var.get(u'valIsReflexive'))) or (var.get(u'othIsDefined').neg() and var.get(u'valIsReflexive')))
            if (PyJs_LONG_3608_() or var.get(u'othIsReflexive').neg()):
                return (-Js(1.0))
        return Js(0.0)
    PyJsHoisted_compareAscending_.func_name = u'compareAscending'
    var.put(u'compareAscending', PyJsHoisted_compareAscending_)
    var.put(u'isSymbol', var.get(u'require')(Js(u'./isSymbol')))
    pass
    var.get(u'module').put(u'exports', var.get(u'compareAscending'))
PyJs_anonymous_3606_._set_name(u'anonymous')
PyJs_Object_3609_ = Js({u'./isSymbol':Js(472.0)})
@Js
def PyJs_anonymous_3610_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'compareAscending', u'require', u'exports', u'module', u'compareMultiple'])
    @Js
    def PyJsHoisted_compareMultiple_(object, other, orders, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'object':object, u'other':other, u'orders':orders}, var)
        var.registers([u'index', u'orders', u'object', u'ordersLength', u'length', u'other', u'result', u'othCriteria', u'order', u'objCriteria'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'objCriteria', var.get(u'object').get(u'criteria'))
        var.put(u'othCriteria', var.get(u'other').get(u'criteria'))
        var.put(u'length', var.get(u'objCriteria').get(u'length'))
        var.put(u'ordersLength', var.get(u'orders').get(u'length'))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.put(u'result', var.get(u'compareAscending')(var.get(u'objCriteria').get(var.get(u'index')), var.get(u'othCriteria').get(var.get(u'index'))))
            if var.get(u'result'):
                if (var.get(u'index')>=var.get(u'ordersLength')):
                    return var.get(u'result')
                var.put(u'order', var.get(u'orders').get(var.get(u'index')))
                return (var.get(u'result')*((-Js(1.0)) if (var.get(u'order')==Js(u'desc')) else Js(1.0)))
        return (var.get(u'object').get(u'index')-var.get(u'other').get(u'index'))
    PyJsHoisted_compareMultiple_.func_name = u'compareMultiple'
    var.put(u'compareMultiple', PyJsHoisted_compareMultiple_)
    var.put(u'compareAscending', var.get(u'require')(Js(u'./_compareAscending')))
    pass
    var.get(u'module').put(u'exports', var.get(u'compareMultiple'))
PyJs_anonymous_3610_._set_name(u'anonymous')
PyJs_Object_3611_ = Js({u'./_compareAscending':Js(364.0)})
@Js
def PyJs_anonymous_3612_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'copyArray', u'exports', u'module'])
    @Js
    def PyJsHoisted_copyArray_(source, array, this, arguments, var=var):
        var = Scope({u'this':this, u'source':source, u'array':array, u'arguments':arguments}, var)
        var.registers([u'index', u'length', u'array', u'source'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', var.get(u'source').get(u'length'))
        (var.get(u'array') or var.put(u'array', var.get(u'Array')(var.get(u'length'))))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.get(u'array').put(var.get(u'index'), var.get(u'source').get(var.get(u'index')))
        return var.get(u'array')
    PyJsHoisted_copyArray_.func_name = u'copyArray'
    var.put(u'copyArray', PyJsHoisted_copyArray_)
    pass
    var.get(u'module').put(u'exports', var.get(u'copyArray'))
PyJs_anonymous_3612_._set_name(u'anonymous')
PyJs_Object_3613_ = Js({})
@Js
def PyJs_anonymous_3614_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'assignValue', u'require', u'copyObject', u'exports', u'module'])
    @Js
    def PyJsHoisted_copyObject_(source, props, object, customizer, this, arguments, var=var):
        var = Scope({u'source':source, u'customizer':customizer, u'arguments':arguments, u'props':props, u'this':this, u'object':object}, var)
        var.registers([u'index', u'object', u'source', u'length', u'key', u'props', u'customizer', u'newValue'])
        PyJs_Object_3615_ = Js({})
        (var.get(u'object') or var.put(u'object', PyJs_Object_3615_))
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', var.get(u'props').get(u'length'))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.put(u'key', var.get(u'props').get(var.get(u'index')))
            var.put(u'newValue', (var.get(u'customizer')(var.get(u'object').get(var.get(u'key')), var.get(u'source').get(var.get(u'key')), var.get(u'key'), var.get(u'object'), var.get(u'source')) if var.get(u'customizer') else var.get(u'source').get(var.get(u'key'))))
            var.get(u'assignValue')(var.get(u'object'), var.get(u'key'), var.get(u'newValue'))
        return var.get(u'object')
    PyJsHoisted_copyObject_.func_name = u'copyObject'
    var.put(u'copyObject', PyJsHoisted_copyObject_)
    var.put(u'assignValue', var.get(u'require')(Js(u'./_assignValue')))
    pass
    var.get(u'module').put(u'exports', var.get(u'copyObject'))
PyJs_anonymous_3614_._set_name(u'anonymous')
PyJs_Object_3616_ = Js({u'./_assignValue':Js(310.0)})
@Js
def PyJs_anonymous_3617_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'getSymbols', u'exports', u'copySymbols', u'require', u'module', u'copyObject'])
    @Js
    def PyJsHoisted_copySymbols_(source, object, this, arguments, var=var):
        var = Scope({u'this':this, u'source':source, u'object':object, u'arguments':arguments}, var)
        var.registers([u'source', u'object'])
        return var.get(u'copyObject')(var.get(u'source'), var.get(u'getSymbols')(var.get(u'source')), var.get(u'object'))
    PyJsHoisted_copySymbols_.func_name = u'copySymbols'
    var.put(u'copySymbols', PyJsHoisted_copySymbols_)
    var.put(u'copyObject', var.get(u'require')(Js(u'./_copyObject')))
    var.put(u'getSymbols', var.get(u'require')(Js(u'./_getSymbols')))
    pass
    var.get(u'module').put(u'exports', var.get(u'copySymbols'))
PyJs_anonymous_3617_._set_name(u'anonymous')
PyJs_Object_3618_ = Js({u'./_copyObject':Js(367.0),u'./_getSymbols':Js(384.0)})
@Js
def PyJs_anonymous_3619_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'root', u'module', u'coreJsData'])
    var.put(u'root', var.get(u'require')(Js(u'./_root')))
    var.put(u'coreJsData', var.get(u'root').get(u'__core-js_shared__'))
    var.get(u'module').put(u'exports', var.get(u'coreJsData'))
PyJs_anonymous_3619_._set_name(u'anonymous')
PyJs_Object_3620_ = Js({u'./_root':Js(422.0)})
@Js
def PyJs_anonymous_3621_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'rest', u'createAssigner', u'isIterateeCall'])
    @Js
    def PyJsHoisted_createAssigner_(assigner, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'assigner':assigner}, var)
        var.registers([u'assigner'])
        @Js
        def PyJs_anonymous_3622_(object, sources, this, arguments, var=var):
            var = Scope({u'this':this, u'sources':sources, u'object':object, u'arguments':arguments}, var)
            var.registers([u'index', u'sources', u'object', u'guard', u'source', u'length', u'customizer'])
            var.put(u'index', (-Js(1.0)))
            var.put(u'length', var.get(u'sources').get(u'length'))
            var.put(u'customizer', (var.get(u'sources').get((var.get(u'length')-Js(1.0))) if (var.get(u'length')>Js(1.0)) else var.get(u'undefined')))
            var.put(u'guard', (var.get(u'sources').get(u'2') if (var.get(u'length')>Js(2.0)) else var.get(u'undefined')))
            var.put(u'customizer', (PyJsComma((var.put(u'length',Js(var.get(u'length').to_number())-Js(1))+Js(1)),var.get(u'customizer')) if ((var.get(u'assigner').get(u'length')>Js(3.0)) and (var.get(u'customizer',throw=False).typeof()==Js(u'function'))) else var.get(u'undefined')))
            if (var.get(u'guard') and var.get(u'isIterateeCall')(var.get(u'sources').get(u'0'), var.get(u'sources').get(u'1'), var.get(u'guard'))):
                var.put(u'customizer', (var.get(u'undefined') if (var.get(u'length')<Js(3.0)) else var.get(u'customizer')))
                var.put(u'length', Js(1.0))
            var.put(u'object', var.get(u'Object')(var.get(u'object')))
            while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
                var.put(u'source', var.get(u'sources').get(var.get(u'index')))
                if var.get(u'source'):
                    var.get(u'assigner')(var.get(u'object'), var.get(u'source'), var.get(u'index'), var.get(u'customizer'))
            return var.get(u'object')
        PyJs_anonymous_3622_._set_name(u'anonymous')
        return var.get(u'rest')(PyJs_anonymous_3622_)
    PyJsHoisted_createAssigner_.func_name = u'createAssigner'
    var.put(u'createAssigner', PyJsHoisted_createAssigner_)
    var.put(u'isIterateeCall', var.get(u'require')(Js(u'./_isIterateeCall')))
    var.put(u'rest', var.get(u'require')(Js(u'./rest')))
    pass
    var.get(u'module').put(u'exports', var.get(u'createAssigner'))
PyJs_anonymous_3621_._set_name(u'anonymous')
PyJs_Object_3623_ = Js({u'./_isIterateeCall':Js(402.0),u'./rest':Js(484.0)})
@Js
def PyJs_anonymous_3624_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArrayLike', u'createBaseEach', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_createBaseEach_(eachFunc, fromRight, this, arguments, var=var):
        var = Scope({u'this':this, u'eachFunc':eachFunc, u'arguments':arguments, u'fromRight':fromRight}, var)
        var.registers([u'eachFunc', u'fromRight'])
        @Js
        def PyJs_anonymous_3625_(collection, iteratee, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'collection':collection, u'iteratee':iteratee}, var)
            var.registers([u'index', u'length', u'collection', u'iterable', u'iteratee'])
            if (var.get(u'collection')==var.get(u"null")):
                return var.get(u'collection')
            if var.get(u'isArrayLike')(var.get(u'collection')).neg():
                return var.get(u'eachFunc')(var.get(u'collection'), var.get(u'iteratee'))
            var.put(u'length', var.get(u'collection').get(u'length'))
            var.put(u'index', (var.get(u'length') if var.get(u'fromRight') else (-Js(1.0))))
            var.put(u'iterable', var.get(u'Object')(var.get(u'collection')))
            while ((var.put(u'index',Js(var.get(u'index').to_number())-Js(1))+Js(1)) if var.get(u'fromRight') else (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length'))):
                if PyJsStrictEq(var.get(u'iteratee')(var.get(u'iterable').get(var.get(u'index')), var.get(u'index'), var.get(u'iterable')),Js(False)):
                    break
            return var.get(u'collection')
        PyJs_anonymous_3625_._set_name(u'anonymous')
        return PyJs_anonymous_3625_
    PyJsHoisted_createBaseEach_.func_name = u'createBaseEach'
    var.put(u'createBaseEach', PyJsHoisted_createBaseEach_)
    var.put(u'isArrayLike', var.get(u'require')(Js(u'./isArrayLike')))
    pass
    var.get(u'module').put(u'exports', var.get(u'createBaseEach'))
PyJs_anonymous_3624_._set_name(u'anonymous')
PyJs_Object_3626_ = Js({u'./isArrayLike':Js(459.0)})
@Js
def PyJs_anonymous_3627_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'createBaseFor', u'require', u'exports', u'module'])
    @Js
    def PyJsHoisted_createBaseFor_(fromRight, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'fromRight':fromRight}, var)
        var.registers([u'fromRight'])
        @Js
        def PyJs_anonymous_3628_(object, iteratee, keysFunc, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments, u'keysFunc':keysFunc, u'iteratee':iteratee}, var)
            var.registers([u'index', u'object', u'keysFunc', u'length', u'iteratee', u'key', u'props', u'iterable'])
            var.put(u'index', (-Js(1.0)))
            var.put(u'iterable', var.get(u'Object')(var.get(u'object')))
            var.put(u'props', var.get(u'keysFunc')(var.get(u'object')))
            var.put(u'length', var.get(u'props').get(u'length'))
            while (var.put(u'length',Js(var.get(u'length').to_number())-Js(1))+Js(1)):
                var.put(u'key', var.get(u'props').get((var.get(u'length') if var.get(u'fromRight') else var.put(u'index',Js(var.get(u'index').to_number())+Js(1)))))
                if PyJsStrictEq(var.get(u'iteratee')(var.get(u'iterable').get(var.get(u'key')), var.get(u'key'), var.get(u'iterable')),Js(False)):
                    break
            return var.get(u'object')
        PyJs_anonymous_3628_._set_name(u'anonymous')
        return PyJs_anonymous_3628_
    PyJsHoisted_createBaseFor_.func_name = u'createBaseFor'
    var.put(u'createBaseFor', PyJsHoisted_createBaseFor_)
    pass
    var.get(u'module').put(u'exports', var.get(u'createBaseFor'))
PyJs_anonymous_3627_._set_name(u'anonymous')
PyJs_Object_3629_ = Js({})
@Js
def PyJs_anonymous_3630_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'createFind', u'keys', u'isArrayLike', u'require', u'baseIteratee', u'module'])
    @Js
    def PyJsHoisted_createFind_(findIndexFunc, this, arguments, var=var):
        var = Scope({u'this':this, u'findIndexFunc':findIndexFunc, u'arguments':arguments}, var)
        var.registers([u'findIndexFunc'])
        @Js
        def PyJs_anonymous_3631_(collection, predicate, fromIndex, this, arguments, var=var):
            var = Scope({u'this':this, u'predicate':predicate, u'fromIndex':fromIndex, u'collection':collection, u'arguments':arguments}, var)
            var.registers([u'index', u'predicate', u'fromIndex', u'collection', u'props', u'iterable'])
            var.put(u'iterable', var.get(u'Object')(var.get(u'collection')))
            var.put(u'predicate', var.get(u'baseIteratee')(var.get(u'predicate'), Js(3.0)))
            if var.get(u'isArrayLike')(var.get(u'collection')).neg():
                var.put(u'props', var.get(u'keys')(var.get(u'collection')))
            @Js
            def PyJs_anonymous_3632_(value, key, this, arguments, var=var):
                var = Scope({u'this':this, u'key':key, u'value':value, u'arguments':arguments}, var)
                var.registers([u'key', u'value'])
                if var.get(u'props'):
                    var.put(u'key', var.get(u'value'))
                    var.put(u'value', var.get(u'iterable').get(var.get(u'key')))
                return var.get(u'predicate')(var.get(u'value'), var.get(u'key'), var.get(u'iterable'))
            PyJs_anonymous_3632_._set_name(u'anonymous')
            var.put(u'index', var.get(u'findIndexFunc')((var.get(u'props') or var.get(u'collection')), PyJs_anonymous_3632_, var.get(u'fromIndex')))
            return (var.get(u'collection').get((var.get(u'props').get(var.get(u'index')) if var.get(u'props') else var.get(u'index'))) if (var.get(u'index')>(-Js(1.0))) else var.get(u'undefined'))
        PyJs_anonymous_3631_._set_name(u'anonymous')
        return PyJs_anonymous_3631_
    PyJsHoisted_createFind_.func_name = u'createFind'
    var.put(u'createFind', PyJsHoisted_createFind_)
    var.put(u'baseIteratee', var.get(u'require')(Js(u'./_baseIteratee')))
    var.put(u'isArrayLike', var.get(u'require')(Js(u'./isArrayLike')))
    var.put(u'keys', var.get(u'require')(Js(u'./keys')))
    pass
    var.get(u'module').put(u'exports', var.get(u'createFind'))
PyJs_anonymous_3630_._set_name(u'anonymous')
PyJs_Object_3633_ = Js({u'./_baseIteratee':Js(331.0),u'./isArrayLike':Js(459.0),u'./keys':Js(474.0)})
@Js
def PyJs_anonymous_3634_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'Set', u'INFINITY', u'require', u'setToArray', u'module', u'noop', u'createSet'])
    var.put(u'Set', var.get(u'require')(Js(u'./_Set')))
    var.put(u'noop', var.get(u'require')(Js(u'./noop')))
    var.put(u'setToArray', var.get(u'require')(Js(u'./_setToArray')))
    var.put(u'INFINITY', (Js(1.0)/Js(0.0)))
    @Js
    def PyJs_anonymous_3635_(values, this, arguments, var=var):
        var = Scope({u'this':this, u'values':values, u'arguments':arguments}, var)
        var.registers([u'values'])
        return var.get(u'Set').create(var.get(u'values'))
    PyJs_anonymous_3635_._set_name(u'anonymous')
    var.put(u'createSet', (var.get(u'noop') if (var.get(u'Set') and ((Js(1.0)/var.get(u'setToArray')(var.get(u'Set').create(Js([None, (-Js(0.0))]))).get(u'1'))==var.get(u'INFINITY'))).neg() else PyJs_anonymous_3635_))
    var.get(u'module').put(u'exports', var.get(u'createSet'))
PyJs_anonymous_3634_._set_name(u'anonymous')
PyJs_Object_3636_ = Js({u'./_Set':Js(292.0),u'./_setToArray':Js(425.0),u'./noop':Js(479.0)})
@Js
def PyJs_anonymous_3637_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'PARTIAL_COMPARE_FLAG', u'exports', u'SetCache', u'arraySome', u'UNORDERED_COMPARE_FLAG', u'equalArrays', u'module', u'require'])
    @Js
    def PyJsHoisted_equalArrays_(array, other, equalFunc, customizer, bitmask, stack, this, arguments, var=var):
        var = Scope({u'equalFunc':equalFunc, u'this':this, u'bitmask':bitmask, u'other':other, u'arguments':arguments, u'array':array, u'customizer':customizer, u'stack':stack}, var)
        var.registers([u'index', u'compared', u'stacked', u'arrValue', u'equalFunc', u'othLength', u'stack', u'arrLength', u'isPartial', u'other', u'result', u'bitmask', u'seen', u'othValue', u'customizer', u'array'])
        var.put(u'isPartial', (var.get(u'bitmask')&var.get(u'PARTIAL_COMPARE_FLAG')))
        var.put(u'arrLength', var.get(u'array').get(u'length'))
        var.put(u'othLength', var.get(u'other').get(u'length'))
        if ((var.get(u'arrLength')!=var.get(u'othLength')) and (var.get(u'isPartial') and (var.get(u'othLength')>var.get(u'arrLength'))).neg()):
            return Js(False)
        var.put(u'stacked', var.get(u'stack').callprop(u'get', var.get(u'array')))
        if var.get(u'stacked'):
            return (var.get(u'stacked')==var.get(u'other'))
        var.put(u'index', (-Js(1.0)))
        var.put(u'result', var.get(u'true'))
        var.put(u'seen', (var.get(u'SetCache').create() if (var.get(u'bitmask')&var.get(u'UNORDERED_COMPARE_FLAG')) else var.get(u'undefined')))
        var.get(u'stack').callprop(u'set', var.get(u'array'), var.get(u'other'))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'arrLength')):
            var.put(u'arrValue', var.get(u'array').get(var.get(u'index')))
            var.put(u'othValue', var.get(u'other').get(var.get(u'index')))
            if var.get(u'customizer'):
                var.put(u'compared', (var.get(u'customizer')(var.get(u'othValue'), var.get(u'arrValue'), var.get(u'index'), var.get(u'other'), var.get(u'array'), var.get(u'stack')) if var.get(u'isPartial') else var.get(u'customizer')(var.get(u'arrValue'), var.get(u'othValue'), var.get(u'index'), var.get(u'array'), var.get(u'other'), var.get(u'stack'))))
            if PyJsStrictNeq(var.get(u'compared'),var.get(u'undefined')):
                if var.get(u'compared'):
                    continue
                var.put(u'result', Js(False))
                break
            if var.get(u'seen'):
                @Js
                def PyJs_anonymous_3638_(othValue, othIndex, this, arguments, var=var):
                    var = Scope({u'this':this, u'othValue':othValue, u'othIndex':othIndex, u'arguments':arguments}, var)
                    var.registers([u'othValue', u'othIndex'])
                    if (var.get(u'seen').callprop(u'has', var.get(u'othIndex')).neg() and (PyJsStrictEq(var.get(u'arrValue'),var.get(u'othValue')) or var.get(u'equalFunc')(var.get(u'arrValue'), var.get(u'othValue'), var.get(u'customizer'), var.get(u'bitmask'), var.get(u'stack')))):
                        return var.get(u'seen').callprop(u'add', var.get(u'othIndex'))
                PyJs_anonymous_3638_._set_name(u'anonymous')
                if var.get(u'arraySome')(var.get(u'other'), PyJs_anonymous_3638_).neg():
                    var.put(u'result', Js(False))
                    break
            else:
                if (PyJsStrictEq(var.get(u'arrValue'),var.get(u'othValue')) or var.get(u'equalFunc')(var.get(u'arrValue'), var.get(u'othValue'), var.get(u'customizer'), var.get(u'bitmask'), var.get(u'stack'))).neg():
                    var.put(u'result', Js(False))
                    break
        var.get(u'stack').callprop(u'delete', var.get(u'array'))
        return var.get(u'result')
    PyJsHoisted_equalArrays_.func_name = u'equalArrays'
    var.put(u'equalArrays', PyJsHoisted_equalArrays_)
    var.put(u'SetCache', var.get(u'require')(Js(u'./_SetCache')))
    var.put(u'arraySome', var.get(u'require')(Js(u'./_arraySome')))
    var.put(u'UNORDERED_COMPARE_FLAG', Js(1.0))
    var.put(u'PARTIAL_COMPARE_FLAG', Js(2.0))
    pass
    var.get(u'module').put(u'exports', var.get(u'equalArrays'))
PyJs_anonymous_3637_._set_name(u'anonymous')
PyJs_Object_3639_ = Js({u'./_SetCache':Js(293.0),u'./_arraySome':Js(307.0)})
@Js
def PyJs_anonymous_3640_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'PARTIAL_COMPARE_FLAG', u'arrayBufferTag', u'setToArray', u'equalArrays', u'dataViewTag', u'errorTag', u'equalByTag', u'mapTag', u'boolTag', u'Symbol', u'Uint8Array', u'symbolProto', u'regexpTag', u'exports', u'dateTag', u'UNORDERED_COMPARE_FLAG', u'stringTag', u'numberTag', u'module', u'require', u'symbolValueOf', u'setTag', u'mapToArray', u'symbolTag'])
    @Js
    def PyJsHoisted_equalByTag_(object, other, tag, equalFunc, customizer, bitmask, stack, this, arguments, var=var):
        var = Scope({u'equalFunc':equalFunc, u'this':this, u'object':object, u'stack':stack, u'bitmask':bitmask, u'tag':tag, u'arguments':arguments, u'customizer':customizer, u'other':other}, var)
        var.registers([u'convert', u'equalFunc', u'stacked', u'object', u'tag', u'bitmask', u'isPartial', u'other', u'customizer', u'stack'])
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'tag'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'dataViewTag')):
                SWITCHED = True
                if ((var.get(u'object').get(u'byteLength')!=var.get(u'other').get(u'byteLength')) or (var.get(u'object').get(u'byteOffset')!=var.get(u'other').get(u'byteOffset'))):
                    return Js(False)
                var.put(u'object', var.get(u'object').get(u'buffer'))
                var.put(u'other', var.get(u'other').get(u'buffer'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'arrayBufferTag')):
                SWITCHED = True
                if ((var.get(u'object').get(u'byteLength')!=var.get(u'other').get(u'byteLength')) or var.get(u'equalFunc')(var.get(u'Uint8Array').create(var.get(u'object')), var.get(u'Uint8Array').create(var.get(u'other'))).neg()):
                    return Js(False)
                return var.get(u'true')
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'boolTag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'dateTag')):
                SWITCHED = True
                return ((+var.get(u'object'))==(+var.get(u'other')))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'errorTag')):
                SWITCHED = True
                return ((var.get(u'object').get(u'name')==var.get(u'other').get(u'name')) and (var.get(u'object').get(u'message')==var.get(u'other').get(u'message')))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'numberTag')):
                SWITCHED = True
                return ((var.get(u'other')!=(+var.get(u'other'))) if (var.get(u'object')!=(+var.get(u'object'))) else (var.get(u'object')==(+var.get(u'other'))))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'regexpTag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'stringTag')):
                SWITCHED = True
                return (var.get(u'object')==(var.get(u'other')+Js(u'')))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'mapTag')):
                SWITCHED = True
                var.put(u'convert', var.get(u'mapToArray'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'setTag')):
                SWITCHED = True
                var.put(u'isPartial', (var.get(u'bitmask')&var.get(u'PARTIAL_COMPARE_FLAG')))
                (var.get(u'convert') or var.put(u'convert', var.get(u'setToArray')))
                if ((var.get(u'object').get(u'size')!=var.get(u'other').get(u'size')) and var.get(u'isPartial').neg()):
                    return Js(False)
                var.put(u'stacked', var.get(u'stack').callprop(u'get', var.get(u'object')))
                if var.get(u'stacked'):
                    return (var.get(u'stacked')==var.get(u'other'))
                var.put(u'bitmask', var.get(u'UNORDERED_COMPARE_FLAG'), u'|')
                var.get(u'stack').callprop(u'set', var.get(u'object'), var.get(u'other'))
                return var.get(u'equalArrays')(var.get(u'convert')(var.get(u'object')), var.get(u'convert')(var.get(u'other')), var.get(u'equalFunc'), var.get(u'customizer'), var.get(u'bitmask'), var.get(u'stack'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'symbolTag')):
                SWITCHED = True
                if var.get(u'symbolValueOf'):
                    return (var.get(u'symbolValueOf').callprop(u'call', var.get(u'object'))==var.get(u'symbolValueOf').callprop(u'call', var.get(u'other')))
            SWITCHED = True
            break
        return Js(False)
    PyJsHoisted_equalByTag_.func_name = u'equalByTag'
    var.put(u'equalByTag', PyJsHoisted_equalByTag_)
    var.put(u'Symbol', var.get(u'require')(Js(u'./_Symbol')))
    var.put(u'Uint8Array', var.get(u'require')(Js(u'./_Uint8Array')))
    var.put(u'equalArrays', var.get(u'require')(Js(u'./_equalArrays')))
    var.put(u'mapToArray', var.get(u'require')(Js(u'./_mapToArray')))
    var.put(u'setToArray', var.get(u'require')(Js(u'./_setToArray')))
    var.put(u'UNORDERED_COMPARE_FLAG', Js(1.0))
    var.put(u'PARTIAL_COMPARE_FLAG', Js(2.0))
    var.put(u'boolTag', Js(u'[object Boolean]'))
    var.put(u'dateTag', Js(u'[object Date]'))
    var.put(u'errorTag', Js(u'[object Error]'))
    var.put(u'mapTag', Js(u'[object Map]'))
    var.put(u'numberTag', Js(u'[object Number]'))
    var.put(u'regexpTag', Js(u'[object RegExp]'))
    var.put(u'setTag', Js(u'[object Set]'))
    var.put(u'stringTag', Js(u'[object String]'))
    var.put(u'symbolTag', Js(u'[object Symbol]'))
    var.put(u'arrayBufferTag', Js(u'[object ArrayBuffer]'))
    var.put(u'dataViewTag', Js(u'[object DataView]'))
    var.put(u'symbolProto', (var.get(u'Symbol').get(u'prototype') if var.get(u'Symbol') else var.get(u'undefined')))
    var.put(u'symbolValueOf', (var.get(u'symbolProto').get(u'valueOf') if var.get(u'symbolProto') else var.get(u'undefined')))
    pass
    var.get(u'module').put(u'exports', var.get(u'equalByTag'))
PyJs_anonymous_3640_._set_name(u'anonymous')
PyJs_Object_3641_ = Js({u'./_Symbol':Js(295.0),u'./_Uint8Array':Js(296.0),u'./_equalArrays':Js(375.0),u'./_mapToArray':Js(419.0),u'./_setToArray':Js(425.0)})
@Js
def PyJs_anonymous_3642_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'PARTIAL_COMPARE_FLAG', u'equalObjects', u'exports', u'baseHas', u'keys', u'require', u'module'])
    @Js
    def PyJsHoisted_equalObjects_(object, other, equalFunc, customizer, bitmask, stack, this, arguments, var=var):
        var = Scope({u'equalFunc':equalFunc, u'this':this, u'object':object, u'bitmask':bitmask, u'other':other, u'arguments':arguments, u'customizer':customizer, u'stack':stack}, var)
        var.registers([u'index', u'compared', u'stacked', u'objValue', u'othCtor', u'stack', u'objCtor', u'object', u'othLength', u'othProps', u'bitmask', u'isPartial', u'objProps', u'result', u'key', u'equalFunc', u'othValue', u'skipCtor', u'other', u'objLength', u'customizer'])
        var.put(u'isPartial', (var.get(u'bitmask')&var.get(u'PARTIAL_COMPARE_FLAG')))
        var.put(u'objProps', var.get(u'keys')(var.get(u'object')))
        var.put(u'objLength', var.get(u'objProps').get(u'length'))
        var.put(u'othProps', var.get(u'keys')(var.get(u'other')))
        var.put(u'othLength', var.get(u'othProps').get(u'length'))
        if ((var.get(u'objLength')!=var.get(u'othLength')) and var.get(u'isPartial').neg()):
            return Js(False)
        var.put(u'index', var.get(u'objLength'))
        while (var.put(u'index',Js(var.get(u'index').to_number())-Js(1))+Js(1)):
            var.put(u'key', var.get(u'objProps').get(var.get(u'index')))
            if (var.get(u'other').contains(var.get(u'key')) if var.get(u'isPartial') else var.get(u'baseHas')(var.get(u'other'), var.get(u'key'))).neg():
                return Js(False)
        var.put(u'stacked', var.get(u'stack').callprop(u'get', var.get(u'object')))
        if var.get(u'stacked'):
            return (var.get(u'stacked')==var.get(u'other'))
        var.put(u'result', var.get(u'true'))
        var.get(u'stack').callprop(u'set', var.get(u'object'), var.get(u'other'))
        var.put(u'skipCtor', var.get(u'isPartial'))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'objLength')):
            var.put(u'key', var.get(u'objProps').get(var.get(u'index')))
            var.put(u'objValue', var.get(u'object').get(var.get(u'key')))
            var.put(u'othValue', var.get(u'other').get(var.get(u'key')))
            if var.get(u'customizer'):
                var.put(u'compared', (var.get(u'customizer')(var.get(u'othValue'), var.get(u'objValue'), var.get(u'key'), var.get(u'other'), var.get(u'object'), var.get(u'stack')) if var.get(u'isPartial') else var.get(u'customizer')(var.get(u'objValue'), var.get(u'othValue'), var.get(u'key'), var.get(u'object'), var.get(u'other'), var.get(u'stack'))))
            if ((PyJsStrictEq(var.get(u'objValue'),var.get(u'othValue')) or var.get(u'equalFunc')(var.get(u'objValue'), var.get(u'othValue'), var.get(u'customizer'), var.get(u'bitmask'), var.get(u'stack'))) if PyJsStrictEq(var.get(u'compared'),var.get(u'undefined')) else var.get(u'compared')).neg():
                var.put(u'result', Js(False))
                break
            (var.get(u'skipCtor') or var.put(u'skipCtor', (var.get(u'key')==Js(u'constructor'))))
        if (var.get(u'result') and var.get(u'skipCtor').neg()):
            var.put(u'objCtor', var.get(u'object').get(u'constructor'))
            var.put(u'othCtor', var.get(u'other').get(u'constructor'))
            def PyJs_LONG_3643_(var=var):
                return (((var.get(u'objCtor')!=var.get(u'othCtor')) and (var.get(u'object').contains(Js(u'constructor')) and var.get(u'other').contains(Js(u'constructor')))) and ((((var.get(u'objCtor',throw=False).typeof()==Js(u'function')) and var.get(u'objCtor').instanceof(var.get(u'objCtor'))) and (var.get(u'othCtor',throw=False).typeof()==Js(u'function'))) and var.get(u'othCtor').instanceof(var.get(u'othCtor'))).neg())
            if PyJs_LONG_3643_():
                var.put(u'result', Js(False))
        var.get(u'stack').callprop(u'delete', var.get(u'object'))
        return var.get(u'result')
    PyJsHoisted_equalObjects_.func_name = u'equalObjects'
    var.put(u'equalObjects', PyJsHoisted_equalObjects_)
    var.put(u'baseHas', var.get(u'require')(Js(u'./_baseHas')))
    var.put(u'keys', var.get(u'require')(Js(u'./keys')))
    var.put(u'PARTIAL_COMPARE_FLAG', Js(2.0))
    pass
    var.get(u'module').put(u'exports', var.get(u'equalObjects'))
PyJs_anonymous_3642_._set_name(u'anonymous')
PyJs_Object_3644_ = Js({u'./_baseHas':Js(323.0),u'./keys':Js(474.0)})
@Js
def PyJs_anonymous_3645_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'getSymbols', u'exports', u'baseGetAllKeys', u'keys', u'require', u'module', u'getAllKeys'])
    @Js
    def PyJsHoisted_getAllKeys_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'object'])
        return var.get(u'baseGetAllKeys')(var.get(u'object'), var.get(u'keys'), var.get(u'getSymbols'))
    PyJsHoisted_getAllKeys_.func_name = u'getAllKeys'
    var.put(u'getAllKeys', PyJsHoisted_getAllKeys_)
    var.put(u'baseGetAllKeys', var.get(u'require')(Js(u'./_baseGetAllKeys')))
    var.put(u'getSymbols', var.get(u'require')(Js(u'./_getSymbols')))
    var.put(u'keys', var.get(u'require')(Js(u'./keys')))
    pass
    var.get(u'module').put(u'exports', var.get(u'getAllKeys'))
PyJs_anonymous_3645_._set_name(u'anonymous')
PyJs_Object_3646_ = Js({u'./_baseGetAllKeys':Js(322.0),u'./_getSymbols':Js(384.0),u'./keys':Js(474.0)})
@Js
def PyJs_anonymous_3647_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'getLength', u'require', u'baseProperty', u'exports', u'module'])
    var.put(u'baseProperty', var.get(u'require')(Js(u'./_baseProperty')))
    var.put(u'getLength', var.get(u'baseProperty')(Js(u'length')))
    var.get(u'module').put(u'exports', var.get(u'getLength'))
PyJs_anonymous_3647_._set_name(u'anonymous')
PyJs_Object_3648_ = Js({u'./_baseProperty':Js(340.0)})
@Js
def PyJs_anonymous_3649_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isKeyable', u'require', u'getMapData', u'exports', u'module'])
    @Js
    def PyJsHoisted_getMapData_(map, key, this, arguments, var=var):
        var = Scope({u'this':this, u'map':map, u'arguments':arguments, u'key':key}, var)
        var.registers([u'map', u'data', u'key'])
        var.put(u'data', var.get(u'map').get(u'__data__'))
        return (var.get(u'data').get((Js(u'string') if (var.get(u'key',throw=False).typeof()==Js(u'string')) else Js(u'hash'))) if var.get(u'isKeyable')(var.get(u'key')) else var.get(u'data').get(u'map'))
    PyJsHoisted_getMapData_.func_name = u'getMapData'
    var.put(u'getMapData', PyJsHoisted_getMapData_)
    var.put(u'isKeyable', var.get(u'require')(Js(u'./_isKeyable')))
    pass
    var.get(u'module').put(u'exports', var.get(u'getMapData'))
PyJs_anonymous_3649_._set_name(u'anonymous')
PyJs_Object_3650_ = Js({u'./_isKeyable':Js(404.0)})
@Js
def PyJs_anonymous_3651_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'keys', u'require', u'module', u'isStrictComparable', u'getMatchData'])
    @Js
    def PyJsHoisted_getMatchData_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'value', u'length', u'object', u'result', u'key'])
        var.put(u'result', var.get(u'keys')(var.get(u'object')))
        var.put(u'length', var.get(u'result').get(u'length'))
        while (var.put(u'length',Js(var.get(u'length').to_number())-Js(1))+Js(1)):
            var.put(u'key', var.get(u'result').get(var.get(u'length')))
            var.put(u'value', var.get(u'object').get(var.get(u'key')))
            var.get(u'result').put(var.get(u'length'), Js([var.get(u'key'), var.get(u'value'), var.get(u'isStrictComparable')(var.get(u'value'))]))
        return var.get(u'result')
    PyJsHoisted_getMatchData_.func_name = u'getMatchData'
    var.put(u'getMatchData', PyJsHoisted_getMatchData_)
    var.put(u'isStrictComparable', var.get(u'require')(Js(u'./_isStrictComparable')))
    var.put(u'keys', var.get(u'require')(Js(u'./keys')))
    pass
    var.get(u'module').put(u'exports', var.get(u'getMatchData'))
PyJs_anonymous_3651_._set_name(u'anonymous')
PyJs_Object_3652_ = Js({u'./_isStrictComparable':Js(407.0),u'./keys':Js(474.0)})
@Js
def PyJs_anonymous_3653_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'getValue', u'baseIsNative', u'getNative'])
    @Js
    def PyJsHoisted_getNative_(object, key, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments, u'key':key}, var)
        var.registers([u'object', u'key', u'value'])
        var.put(u'value', var.get(u'getValue')(var.get(u'object'), var.get(u'key')))
        return (var.get(u'value') if var.get(u'baseIsNative')(var.get(u'value')) else var.get(u'undefined'))
    PyJsHoisted_getNative_.func_name = u'getNative'
    var.put(u'getNative', PyJsHoisted_getNative_)
    var.put(u'baseIsNative', var.get(u'require')(Js(u'./_baseIsNative')))
    var.put(u'getValue', var.get(u'require')(Js(u'./_getValue')))
    pass
    var.get(u'module').put(u'exports', var.get(u'getNative'))
PyJs_anonymous_3653_._set_name(u'anonymous')
PyJs_Object_3654_ = Js({u'./_baseIsNative':Js(330.0),u'./_getValue':Js(386.0)})
@Js
def PyJs_anonymous_3655_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'nativeGetPrototype', u'getPrototype', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_getPrototype_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return var.get(u'nativeGetPrototype')(var.get(u'Object')(var.get(u'value')))
    PyJsHoisted_getPrototype_.func_name = u'getPrototype'
    var.put(u'getPrototype', PyJsHoisted_getPrototype_)
    var.put(u'nativeGetPrototype', var.get(u'Object').get(u'getPrototypeOf'))
    pass
    var.get(u'module').put(u'exports', var.get(u'getPrototype'))
PyJs_anonymous_3655_._set_name(u'anonymous')
PyJs_Object_3656_ = Js({})
@Js
def PyJs_anonymous_3657_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'getSymbols', u'exports', u'require', u'module', u'stubArray', u'getOwnPropertySymbols'])
    @Js
    def PyJsHoisted_getSymbols_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'object'])
        return var.get(u'getOwnPropertySymbols')(var.get(u'Object')(var.get(u'object')))
    PyJsHoisted_getSymbols_.func_name = u'getSymbols'
    var.put(u'getSymbols', PyJsHoisted_getSymbols_)
    var.put(u'stubArray', var.get(u'require')(Js(u'./stubArray')))
    var.put(u'getOwnPropertySymbols', var.get(u'Object').get(u'getOwnPropertySymbols'))
    pass
    if var.get(u'getOwnPropertySymbols').neg():
        var.put(u'getSymbols', var.get(u'stubArray'))
    var.get(u'module').put(u'exports', var.get(u'getSymbols'))
PyJs_anonymous_3657_._set_name(u'anonymous')
PyJs_Object_3658_ = Js({u'./stubArray':Js(487.0)})
@Js
def PyJs_anonymous_3659_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'objectTag', u'dataViewTag', u'setCtorString', u'promiseTag', u'Map', u'mapTag', u'objectToString', u'DataView', u'weakMapCtorString', u'dataViewCtorString', u'exports', u'promiseCtorString', u'toSource', u'mapCtorString', u'WeakMap', u'module', u'getTag', u'Set', u'require', u'weakMapTag', u'Promise', u'setTag', u'objectProto'])
    @Js
    def PyJsHoisted_getTag_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return var.get(u'objectToString').callprop(u'call', var.get(u'value'))
    PyJsHoisted_getTag_.func_name = u'getTag'
    var.put(u'getTag', PyJsHoisted_getTag_)
    var.put(u'DataView', var.get(u'require')(Js(u'./_DataView')))
    var.put(u'Map', var.get(u'require')(Js(u'./_Map')))
    var.put(u'Promise', var.get(u'require')(Js(u'./_Promise')))
    var.put(u'Set', var.get(u'require')(Js(u'./_Set')))
    var.put(u'WeakMap', var.get(u'require')(Js(u'./_WeakMap')))
    var.put(u'toSource', var.get(u'require')(Js(u'./_toSource')))
    var.put(u'mapTag', Js(u'[object Map]'))
    var.put(u'objectTag', Js(u'[object Object]'))
    var.put(u'promiseTag', Js(u'[object Promise]'))
    var.put(u'setTag', Js(u'[object Set]'))
    var.put(u'weakMapTag', Js(u'[object WeakMap]'))
    var.put(u'dataViewTag', Js(u'[object DataView]'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'objectToString', var.get(u'objectProto').get(u'toString'))
    var.put(u'dataViewCtorString', var.get(u'toSource')(var.get(u'DataView')))
    var.put(u'mapCtorString', var.get(u'toSource')(var.get(u'Map')))
    var.put(u'promiseCtorString', var.get(u'toSource')(var.get(u'Promise')))
    var.put(u'setCtorString', var.get(u'toSource')(var.get(u'Set')))
    var.put(u'weakMapCtorString', var.get(u'toSource')(var.get(u'WeakMap')))
    pass
    def PyJs_LONG_3660_(var=var):
        return ((((var.get(u'DataView') and (var.get(u'getTag')(var.get(u'DataView').create(var.get(u'ArrayBuffer').create(Js(1.0))))!=var.get(u'dataViewTag'))) or (var.get(u'Map') and (var.get(u'getTag')(var.get(u'Map').create())!=var.get(u'mapTag')))) or (var.get(u'Promise') and (var.get(u'getTag')(var.get(u'Promise').callprop(u'resolve'))!=var.get(u'promiseTag')))) or (var.get(u'Set') and (var.get(u'getTag')(var.get(u'Set').create())!=var.get(u'setTag'))))
    if (PyJs_LONG_3660_() or (var.get(u'WeakMap') and (var.get(u'getTag')(var.get(u'WeakMap').create())!=var.get(u'weakMapTag')))):
        @Js
        def PyJs_anonymous_3661_(value, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
            var.registers([u'value', u'result', u'Ctor', u'ctorString'])
            var.put(u'result', var.get(u'objectToString').callprop(u'call', var.get(u'value')))
            var.put(u'Ctor', (var.get(u'value').get(u'constructor') if (var.get(u'result')==var.get(u'objectTag')) else var.get(u'undefined')))
            var.put(u'ctorString', (var.get(u'toSource')(var.get(u'Ctor')) if var.get(u'Ctor') else var.get(u'undefined')))
            if var.get(u'ctorString'):
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'ctorString'))
                    if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'dataViewCtorString')):
                        SWITCHED = True
                        return var.get(u'dataViewTag')
                    if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'mapCtorString')):
                        SWITCHED = True
                        return var.get(u'mapTag')
                    if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'promiseCtorString')):
                        SWITCHED = True
                        return var.get(u'promiseTag')
                    if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'setCtorString')):
                        SWITCHED = True
                        return var.get(u'setTag')
                    if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'weakMapCtorString')):
                        SWITCHED = True
                        return var.get(u'weakMapTag')
                    SWITCHED = True
                    break
            return var.get(u'result')
        PyJs_anonymous_3661_._set_name(u'anonymous')
        var.put(u'getTag', PyJs_anonymous_3661_)
    var.get(u'module').put(u'exports', var.get(u'getTag'))
PyJs_anonymous_3659_._set_name(u'anonymous')
PyJs_Object_3662_ = Js({u'./_DataView':Js(285.0),u'./_Map':Js(288.0),u'./_Promise':Js(290.0),u'./_Set':Js(292.0),u'./_WeakMap':Js(297.0),u'./_toSource':Js(434.0)})
@Js
def PyJs_anonymous_3663_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'getValue'])
    @Js
    def PyJsHoisted_getValue_(object, key, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments, u'key':key}, var)
        var.registers([u'object', u'key'])
        return (var.get(u'undefined') if (var.get(u'object')==var.get(u"null")) else var.get(u'object').get(var.get(u'key')))
    PyJsHoisted_getValue_.func_name = u'getValue'
    var.put(u'getValue', PyJsHoisted_getValue_)
    pass
    var.get(u'module').put(u'exports', var.get(u'getValue'))
PyJs_anonymous_3663_._set_name(u'anonymous')
PyJs_Object_3664_ = Js({})
@Js
def PyJs_anonymous_3665_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'hasPath', u'isString', u'isLength', u'toKey', u'isKey', u'require', u'isIndex', u'exports', u'module', u'castPath', u'isArguments'])
    @Js
    def PyJsHoisted_hasPath_(object, path, hasFunc, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'object':object, u'hasFunc':hasFunc, u'arguments':arguments}, var)
        var.registers([u'index', u'object', u'length', u'result', u'key', u'path', u'hasFunc'])
        var.put(u'path', (Js([var.get(u'path')]) if var.get(u'isKey')(var.get(u'path'), var.get(u'object')) else var.get(u'castPath')(var.get(u'path'))))
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', var.get(u'path').get(u'length'))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.put(u'key', var.get(u'toKey')(var.get(u'path').get(var.get(u'index'))))
            if var.put(u'result', ((var.get(u'object')!=var.get(u"null")) and var.get(u'hasFunc')(var.get(u'object'), var.get(u'key')))).neg():
                break
            var.put(u'object', var.get(u'object').get(var.get(u'key')))
        if var.get(u'result'):
            return var.get(u'result')
        var.put(u'length', (var.get(u'object').get(u'length') if var.get(u'object') else Js(0.0)))
        return (((var.get(u'length').neg().neg() and var.get(u'isLength')(var.get(u'length'))) and var.get(u'isIndex')(var.get(u'key'), var.get(u'length'))) and ((var.get(u'isArray')(var.get(u'object')) or var.get(u'isString')(var.get(u'object'))) or var.get(u'isArguments')(var.get(u'object'))))
    PyJsHoisted_hasPath_.func_name = u'hasPath'
    var.put(u'hasPath', PyJsHoisted_hasPath_)
    var.put(u'castPath', var.get(u'require')(Js(u'./_castPath')))
    var.put(u'isArguments', var.get(u'require')(Js(u'./isArguments')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'isIndex', var.get(u'require')(Js(u'./_isIndex')))
    var.put(u'isKey', var.get(u'require')(Js(u'./_isKey')))
    var.put(u'isLength', var.get(u'require')(Js(u'./isLength')))
    var.put(u'isString', var.get(u'require')(Js(u'./isString')))
    var.put(u'toKey', var.get(u'require')(Js(u'./_toKey')))
    pass
    var.get(u'module').put(u'exports', var.get(u'hasPath'))
PyJs_anonymous_3665_._set_name(u'anonymous')
PyJs_Object_3666_ = Js({u'./_castPath':Js(352.0),u'./_isIndex':Js(401.0),u'./_isKey':Js(403.0),u'./_toKey':Js(433.0),u'./isArguments':Js(457.0),u'./isArray':Js(458.0),u'./isLength':Js(465.0),u'./isString':Js(471.0)})
@Js
def PyJs_anonymous_3667_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'module', u'require', u'exports', u'nativeCreate', u'hashClear'])
    @Js
    def PyJsHoisted_hashClear_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        PyJs_Object_3668_ = Js({})
        var.get(u"this").put(u'__data__', (var.get(u'nativeCreate')(var.get(u"null")) if var.get(u'nativeCreate') else PyJs_Object_3668_))
    PyJsHoisted_hashClear_.func_name = u'hashClear'
    var.put(u'hashClear', PyJsHoisted_hashClear_)
    var.put(u'nativeCreate', var.get(u'require')(Js(u'./_nativeCreate')))
    pass
    var.get(u'module').put(u'exports', var.get(u'hashClear'))
PyJs_anonymous_3667_._set_name(u'anonymous')
PyJs_Object_3669_ = Js({u'./_nativeCreate':Js(421.0)})
@Js
def PyJs_anonymous_3670_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'hashDelete', u'exports', u'module'])
    @Js
    def PyJsHoisted_hashDelete_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return (var.get(u"this").callprop(u'has', var.get(u'key')) and var.get(u"this").get(u'__data__').delete(var.get(u'key')))
    PyJsHoisted_hashDelete_.func_name = u'hashDelete'
    var.put(u'hashDelete', PyJsHoisted_hashDelete_)
    pass
    var.get(u'module').put(u'exports', var.get(u'hashDelete'))
PyJs_anonymous_3670_._set_name(u'anonymous')
PyJs_Object_3671_ = Js({})
@Js
def PyJs_anonymous_3672_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'hashGet', u'nativeCreate', u'HASH_UNDEFINED', u'require', u'module', u'hasOwnProperty', u'objectProto'])
    @Js
    def PyJsHoisted_hashGet_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'data', u'result', u'key'])
        var.put(u'data', var.get(u"this").get(u'__data__'))
        if var.get(u'nativeCreate'):
            var.put(u'result', var.get(u'data').get(var.get(u'key')))
            return (var.get(u'undefined') if PyJsStrictEq(var.get(u'result'),var.get(u'HASH_UNDEFINED')) else var.get(u'result'))
        return (var.get(u'data').get(var.get(u'key')) if var.get(u'hasOwnProperty').callprop(u'call', var.get(u'data'), var.get(u'key')) else var.get(u'undefined'))
    PyJsHoisted_hashGet_.func_name = u'hashGet'
    var.put(u'hashGet', PyJsHoisted_hashGet_)
    var.put(u'nativeCreate', var.get(u'require')(Js(u'./_nativeCreate')))
    var.put(u'HASH_UNDEFINED', Js(u'__lodash_hash_undefined__'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    pass
    var.get(u'module').put(u'exports', var.get(u'hashGet'))
PyJs_anonymous_3672_._set_name(u'anonymous')
PyJs_Object_3673_ = Js({u'./_nativeCreate':Js(421.0)})
@Js
def PyJs_anonymous_3674_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'nativeCreate', u'require', u'module', u'hasOwnProperty', u'objectProto', u'hashHas'])
    @Js
    def PyJsHoisted_hashHas_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'data', u'key'])
        var.put(u'data', var.get(u"this").get(u'__data__'))
        return (PyJsStrictNeq(var.get(u'data').get(var.get(u'key')),var.get(u'undefined')) if var.get(u'nativeCreate') else var.get(u'hasOwnProperty').callprop(u'call', var.get(u'data'), var.get(u'key')))
    PyJsHoisted_hashHas_.func_name = u'hashHas'
    var.put(u'hashHas', PyJsHoisted_hashHas_)
    var.put(u'nativeCreate', var.get(u'require')(Js(u'./_nativeCreate')))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    pass
    var.get(u'module').put(u'exports', var.get(u'hashHas'))
PyJs_anonymous_3674_._set_name(u'anonymous')
PyJs_Object_3675_ = Js({u'./_nativeCreate':Js(421.0)})
@Js
def PyJs_anonymous_3676_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'nativeCreate', u'hashSet', u'require', u'HASH_UNDEFINED', u'module'])
    @Js
    def PyJsHoisted_hashSet_(key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'data', u'value', u'key'])
        var.put(u'data', var.get(u"this").get(u'__data__'))
        var.get(u'data').put(var.get(u'key'), (var.get(u'HASH_UNDEFINED') if (var.get(u'nativeCreate') and PyJsStrictEq(var.get(u'value'),var.get(u'undefined'))) else var.get(u'value')))
        return var.get(u"this")
    PyJsHoisted_hashSet_.func_name = u'hashSet'
    var.put(u'hashSet', PyJsHoisted_hashSet_)
    var.put(u'nativeCreate', var.get(u'require')(Js(u'./_nativeCreate')))
    var.put(u'HASH_UNDEFINED', Js(u'__lodash_hash_undefined__'))
    pass
    var.get(u'module').put(u'exports', var.get(u'hashSet'))
PyJs_anonymous_3676_._set_name(u'anonymous')
PyJs_Object_3677_ = Js({u'./_nativeCreate':Js(421.0)})
@Js
def PyJs_anonymous_3678_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'indexKeys', u'exports', u'isString', u'isLength', u'require', u'module', u'baseTimes', u'isArguments'])
    @Js
    def PyJsHoisted_indexKeys_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'length', u'object'])
        var.put(u'length', (var.get(u'object').get(u'length') if var.get(u'object') else var.get(u'undefined')))
        if (var.get(u'isLength')(var.get(u'length')) and ((var.get(u'isArray')(var.get(u'object')) or var.get(u'isString')(var.get(u'object'))) or var.get(u'isArguments')(var.get(u'object')))):
            return var.get(u'baseTimes')(var.get(u'length'), var.get(u'String'))
        return var.get(u"null")
    PyJsHoisted_indexKeys_.func_name = u'indexKeys'
    var.put(u'indexKeys', PyJsHoisted_indexKeys_)
    var.put(u'baseTimes', var.get(u'require')(Js(u'./_baseTimes')))
    var.put(u'isArguments', var.get(u'require')(Js(u'./isArguments')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'isLength', var.get(u'require')(Js(u'./isLength')))
    var.put(u'isString', var.get(u'require')(Js(u'./isString')))
    pass
    var.get(u'module').put(u'exports', var.get(u'indexKeys'))
PyJs_anonymous_3678_._set_name(u'anonymous')
PyJs_Object_3679_ = Js({u'./_baseTimes':Js(346.0),u'./isArguments':Js(457.0),u'./isArray':Js(458.0),u'./isLength':Js(465.0),u'./isString':Js(471.0)})
@Js
def PyJs_anonymous_3680_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'indexOfNaN', u'exports', u'module'])
    @Js
    def PyJsHoisted_indexOfNaN_(array, fromIndex, fromRight, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'array':array, u'fromIndex':fromIndex, u'fromRight':fromRight}, var)
        var.registers([u'index', u'fromIndex', u'fromRight', u'length', u'other', u'array'])
        var.put(u'length', var.get(u'array').get(u'length'))
        var.put(u'index', (var.get(u'fromIndex')+(Js(1.0) if var.get(u'fromRight') else (-Js(1.0)))))
        while ((var.put(u'index',Js(var.get(u'index').to_number())-Js(1))+Js(1)) if var.get(u'fromRight') else (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length'))):
            var.put(u'other', var.get(u'array').get(var.get(u'index')))
            if PyJsStrictNeq(var.get(u'other'),var.get(u'other')):
                return var.get(u'index')
        return (-Js(1.0))
    PyJsHoisted_indexOfNaN_.func_name = u'indexOfNaN'
    var.put(u'indexOfNaN', PyJsHoisted_indexOfNaN_)
    pass
    var.get(u'module').put(u'exports', var.get(u'indexOfNaN'))
PyJs_anonymous_3680_._set_name(u'anonymous')
PyJs_Object_3681_ = Js({})
@Js
def PyJs_anonymous_3682_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'initCloneArray', u'module', u'hasOwnProperty', u'objectProto'])
    @Js
    def PyJsHoisted_initCloneArray_(array, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'arguments':arguments}, var)
        var.registers([u'length', u'array', u'result'])
        var.put(u'length', var.get(u'array').get(u'length'))
        var.put(u'result', var.get(u'array').callprop(u'constructor', var.get(u'length')))
        if ((var.get(u'length') and (var.get(u'array').get(u'0').typeof()==Js(u'string'))) and var.get(u'hasOwnProperty').callprop(u'call', var.get(u'array'), Js(u'index'))):
            var.get(u'result').put(u'index', var.get(u'array').get(u'index'))
            var.get(u'result').put(u'input', var.get(u'array').get(u'input'))
        return var.get(u'result')
    PyJsHoisted_initCloneArray_.func_name = u'initCloneArray'
    var.put(u'initCloneArray', PyJsHoisted_initCloneArray_)
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    pass
    var.get(u'module').put(u'exports', var.get(u'initCloneArray'))
PyJs_anonymous_3682_._set_name(u'anonymous')
PyJs_Object_3683_ = Js({})
@Js
def PyJs_anonymous_3684_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'uint32Tag', u'arrayBufferTag', u'uint8ClampedTag', u'dataViewTag', u'int8Tag', u'float64Tag', u'cloneRegExp', u'mapTag', u'boolTag', u'initCloneByTag', u'cloneTypedArray', u'float32Tag', u'regexpTag', u'exports', u'dateTag', u'setTag', u'stringTag', u'int32Tag', u'module', u'uint8Tag', u'cloneSet', u'cloneSymbol', u'require', u'uint16Tag', u'cloneDataView', u'int16Tag', u'cloneArrayBuffer', u'numberTag', u'cloneMap', u'symbolTag'])
    @Js
    def PyJsHoisted_initCloneByTag_(object, tag, cloneFunc, isDeep, this, arguments, var=var):
        var = Scope({u'tag':tag, u'isDeep':isDeep, u'arguments':arguments, u'this':this, u'object':object, u'cloneFunc':cloneFunc}, var)
        var.registers([u'cloneFunc', u'isDeep', u'object', u'tag', u'Ctor'])
        var.put(u'Ctor', var.get(u'object').get(u'constructor'))
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'tag'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'arrayBufferTag')):
                SWITCHED = True
                return var.get(u'cloneArrayBuffer')(var.get(u'object'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'boolTag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'dateTag')):
                SWITCHED = True
                return var.get(u'Ctor').create((+var.get(u'object')))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'dataViewTag')):
                SWITCHED = True
                return var.get(u'cloneDataView')(var.get(u'object'), var.get(u'isDeep'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'float32Tag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'float64Tag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'int8Tag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'int16Tag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'int32Tag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'uint8Tag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'uint8ClampedTag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'uint16Tag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'uint32Tag')):
                SWITCHED = True
                return var.get(u'cloneTypedArray')(var.get(u'object'), var.get(u'isDeep'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'mapTag')):
                SWITCHED = True
                return var.get(u'cloneMap')(var.get(u'object'), var.get(u'isDeep'), var.get(u'cloneFunc'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'numberTag')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'stringTag')):
                SWITCHED = True
                return var.get(u'Ctor').create(var.get(u'object'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'regexpTag')):
                SWITCHED = True
                return var.get(u'cloneRegExp')(var.get(u'object'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'setTag')):
                SWITCHED = True
                return var.get(u'cloneSet')(var.get(u'object'), var.get(u'isDeep'), var.get(u'cloneFunc'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'symbolTag')):
                SWITCHED = True
                return var.get(u'cloneSymbol')(var.get(u'object'))
            SWITCHED = True
            break
    PyJsHoisted_initCloneByTag_.func_name = u'initCloneByTag'
    var.put(u'initCloneByTag', PyJsHoisted_initCloneByTag_)
    var.put(u'cloneArrayBuffer', var.get(u'require')(Js(u'./_cloneArrayBuffer')))
    var.put(u'cloneDataView', var.get(u'require')(Js(u'./_cloneDataView')))
    var.put(u'cloneMap', var.get(u'require')(Js(u'./_cloneMap')))
    var.put(u'cloneRegExp', var.get(u'require')(Js(u'./_cloneRegExp')))
    var.put(u'cloneSet', var.get(u'require')(Js(u'./_cloneSet')))
    var.put(u'cloneSymbol', var.get(u'require')(Js(u'./_cloneSymbol')))
    var.put(u'cloneTypedArray', var.get(u'require')(Js(u'./_cloneTypedArray')))
    var.put(u'boolTag', Js(u'[object Boolean]'))
    var.put(u'dateTag', Js(u'[object Date]'))
    var.put(u'mapTag', Js(u'[object Map]'))
    var.put(u'numberTag', Js(u'[object Number]'))
    var.put(u'regexpTag', Js(u'[object RegExp]'))
    var.put(u'setTag', Js(u'[object Set]'))
    var.put(u'stringTag', Js(u'[object String]'))
    var.put(u'symbolTag', Js(u'[object Symbol]'))
    var.put(u'arrayBufferTag', Js(u'[object ArrayBuffer]'))
    var.put(u'dataViewTag', Js(u'[object DataView]'))
    var.put(u'float32Tag', Js(u'[object Float32Array]'))
    var.put(u'float64Tag', Js(u'[object Float64Array]'))
    var.put(u'int8Tag', Js(u'[object Int8Array]'))
    var.put(u'int16Tag', Js(u'[object Int16Array]'))
    var.put(u'int32Tag', Js(u'[object Int32Array]'))
    var.put(u'uint8Tag', Js(u'[object Uint8Array]'))
    var.put(u'uint8ClampedTag', Js(u'[object Uint8ClampedArray]'))
    var.put(u'uint16Tag', Js(u'[object Uint16Array]'))
    var.put(u'uint32Tag', Js(u'[object Uint32Array]'))
    pass
    var.get(u'module').put(u'exports', var.get(u'initCloneByTag'))
PyJs_anonymous_3684_._set_name(u'anonymous')
PyJs_Object_3685_ = Js({u'./_cloneArrayBuffer':Js(356.0),u'./_cloneDataView':Js(358.0),u'./_cloneMap':Js(359.0),u'./_cloneRegExp':Js(360.0),u'./_cloneSet':Js(361.0),u'./_cloneSymbol':Js(362.0),u'./_cloneTypedArray':Js(363.0)})
@Js
def PyJs_anonymous_3686_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'initCloneObject', u'require', u'module', u'isPrototype', u'baseCreate', u'getPrototype'])
    @Js
    def PyJsHoisted_initCloneObject_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'object'])
        PyJs_Object_3687_ = Js({})
        return (var.get(u'baseCreate')(var.get(u'getPrototype')(var.get(u'object'))) if ((var.get(u'object').get(u'constructor').typeof()==Js(u'function')) and var.get(u'isPrototype')(var.get(u'object')).neg()) else PyJs_Object_3687_)
    PyJsHoisted_initCloneObject_.func_name = u'initCloneObject'
    var.put(u'initCloneObject', PyJsHoisted_initCloneObject_)
    var.put(u'baseCreate', var.get(u'require')(Js(u'./_baseCreate')))
    var.put(u'getPrototype', var.get(u'require')(Js(u'./_getPrototype')))
    var.put(u'isPrototype', var.get(u'require')(Js(u'./_isPrototype')))
    pass
    var.get(u'module').put(u'exports', var.get(u'initCloneObject'))
PyJs_anonymous_3686_._set_name(u'anonymous')
PyJs_Object_3688_ = Js({u'./_baseCreate':Js(315.0),u'./_getPrototype':Js(383.0),u'./_isPrototype':Js(406.0)})
@Js
def PyJs_anonymous_3689_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'exports', u'require', u'module', u'isFlattenable', u'isArguments'])
    @Js
    def PyJsHoisted_isFlattenable_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return (var.get(u'isArray')(var.get(u'value')) or var.get(u'isArguments')(var.get(u'value')))
    PyJsHoisted_isFlattenable_.func_name = u'isFlattenable'
    var.put(u'isFlattenable', PyJsHoisted_isFlattenable_)
    var.put(u'isArguments', var.get(u'require')(Js(u'./isArguments')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    pass
    var.get(u'module').put(u'exports', var.get(u'isFlattenable'))
PyJs_anonymous_3689_._set_name(u'anonymous')
PyJs_Object_3690_ = Js({u'./isArguments':Js(457.0),u'./isArray':Js(458.0)})
@Js
def PyJs_anonymous_3691_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'exports', u'require', u'module', u'isFunction', u'isFlattenableIteratee'])
    @Js
    def PyJsHoisted_isFlattenableIteratee_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return (var.get(u'isArray')(var.get(u'value')) and ((var.get(u'value').get(u'length')==Js(2.0)) and var.get(u'isFunction')(var.get(u'value').get(u'0')).neg()).neg())
    PyJsHoisted_isFlattenableIteratee_.func_name = u'isFlattenableIteratee'
    var.put(u'isFlattenableIteratee', PyJsHoisted_isFlattenableIteratee_)
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'isFunction', var.get(u'require')(Js(u'./isFunction')))
    pass
    var.get(u'module').put(u'exports', var.get(u'isFlattenableIteratee'))
PyJs_anonymous_3691_._set_name(u'anonymous')
PyJs_Object_3692_ = Js({u'./isArray':Js(458.0),u'./isFunction':Js(463.0)})
@Js
def PyJs_anonymous_3693_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'isHostObject'])
    @Js
    def PyJsHoisted_isHostObject_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'result', u'value'])
        var.put(u'result', Js(False))
        if ((var.get(u'value')!=var.get(u"null")) and (var.get(u'value').get(u'toString').typeof()!=Js(u'function'))):
            try:
                var.put(u'result', (var.get(u'value')+Js(u'')).neg().neg())
            except PyJsException as PyJsTempException:
                PyJsHolder_65_43263878 = var.own.get(u'e')
                var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
                try:
                    pass
                finally:
                    if PyJsHolder_65_43263878 is not None:
                        var.own[u'e'] = PyJsHolder_65_43263878
                    else:
                        del var.own[u'e']
                    del PyJsHolder_65_43263878
        return var.get(u'result')
    PyJsHoisted_isHostObject_.func_name = u'isHostObject'
    var.put(u'isHostObject', PyJsHoisted_isHostObject_)
    pass
    var.get(u'module').put(u'exports', var.get(u'isHostObject'))
PyJs_anonymous_3693_._set_name(u'anonymous')
PyJs_Object_3694_ = Js({})
@Js
def PyJs_anonymous_3695_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'MAX_SAFE_INTEGER', u'exports', u'require', u'isIndex', u'module', u'reIsUint'])
    @Js
    def PyJsHoisted_isIndex_(value, length, this, arguments, var=var):
        var = Scope({u'this':this, u'length':length, u'arguments':arguments, u'value':value}, var)
        var.registers([u'length', u'value'])
        var.put(u'length', (var.get(u'MAX_SAFE_INTEGER') if (var.get(u'length')==var.get(u"null")) else var.get(u'length')))
        return ((var.get(u'length').neg().neg() and ((var.get(u'value',throw=False).typeof()==Js(u'number')) or var.get(u'reIsUint').callprop(u'test', var.get(u'value')))) and (((var.get(u'value')>(-Js(1.0))) and ((var.get(u'value')%Js(1.0))==Js(0.0))) and (var.get(u'value')<var.get(u'length'))))
    PyJsHoisted_isIndex_.func_name = u'isIndex'
    var.put(u'isIndex', PyJsHoisted_isIndex_)
    var.put(u'MAX_SAFE_INTEGER', Js(9007199254740991.0))
    var.put(u'reIsUint', JsRegExp(u'/^(?:0|[1-9]\\d*)$/'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isIndex'))
PyJs_anonymous_3695_._set_name(u'anonymous')
PyJs_Object_3696_ = Js({})
@Js
def PyJs_anonymous_3697_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'isArrayLike', u'require', u'isIndex', u'module', u'isIterateeCall', u'eq', u'isObject'])
    @Js
    def PyJsHoisted_isIterateeCall_(value, index, object, this, arguments, var=var):
        var = Scope({u'this':this, u'index':index, u'object':object, u'arguments':arguments, u'value':value}, var)
        var.registers([u'index', u'object', u'type', u'value'])
        if var.get(u'isObject')(var.get(u'object')).neg():
            return Js(False)
        var.put(u'type', var.get(u'index',throw=False).typeof())
        if ((var.get(u'isArrayLike')(var.get(u'object')) and var.get(u'isIndex')(var.get(u'index'), var.get(u'object').get(u'length'))) if (var.get(u'type')==Js(u'number')) else ((var.get(u'type')==Js(u'string')) and var.get(u'object').contains(var.get(u'index')))):
            return var.get(u'eq')(var.get(u'object').get(var.get(u'index')), var.get(u'value'))
        return Js(False)
    PyJsHoisted_isIterateeCall_.func_name = u'isIterateeCall'
    var.put(u'isIterateeCall', PyJsHoisted_isIterateeCall_)
    var.put(u'eq', var.get(u'require')(Js(u'./eq')))
    var.put(u'isArrayLike', var.get(u'require')(Js(u'./isArrayLike')))
    var.put(u'isIndex', var.get(u'require')(Js(u'./_isIndex')))
    var.put(u'isObject', var.get(u'require')(Js(u'./isObject')))
    pass
    var.get(u'module').put(u'exports', var.get(u'isIterateeCall'))
PyJs_anonymous_3697_._set_name(u'anonymous')
PyJs_Object_3698_ = Js({u'./_isIndex':Js(401.0),u'./eq':Js(444.0),u'./isArrayLike':Js(459.0),u'./isObject':Js(467.0)})
@Js
def PyJs_anonymous_3699_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'exports', u'reIsPlainProp', u'isKey', u'require', u'reIsDeepProp', u'module', u'isSymbol'])
    @Js
    def PyJsHoisted_isKey_(value, object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments, u'value':value}, var)
        var.registers([u'object', u'type', u'value'])
        if var.get(u'isArray')(var.get(u'value')):
            return Js(False)
        var.put(u'type', var.get(u'value',throw=False).typeof())
        if (((((var.get(u'type')==Js(u'number')) or (var.get(u'type')==Js(u'symbol'))) or (var.get(u'type')==Js(u'boolean'))) or (var.get(u'value')==var.get(u"null"))) or var.get(u'isSymbol')(var.get(u'value'))):
            return var.get(u'true')
        return ((var.get(u'reIsPlainProp').callprop(u'test', var.get(u'value')) or var.get(u'reIsDeepProp').callprop(u'test', var.get(u'value')).neg()) or ((var.get(u'object')!=var.get(u"null")) and var.get(u'Object')(var.get(u'object')).contains(var.get(u'value'))))
    PyJsHoisted_isKey_.func_name = u'isKey'
    var.put(u'isKey', PyJsHoisted_isKey_)
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'isSymbol', var.get(u'require')(Js(u'./isSymbol')))
    var.put(u'reIsDeepProp', JsRegExp(u'/\\.|\\[(?:[^[\\]]*|(["\'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/'))
    var.put(u'reIsPlainProp', JsRegExp(u'/^\\w*$/'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isKey'))
PyJs_anonymous_3699_._set_name(u'anonymous')
PyJs_Object_3700_ = Js({u'./isArray':Js(458.0),u'./isSymbol':Js(472.0)})
@Js
def PyJs_anonymous_3701_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isKeyable', u'require', u'exports', u'module'])
    @Js
    def PyJsHoisted_isKeyable_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'type', u'value'])
        var.put(u'type', var.get(u'value',throw=False).typeof())
        return (PyJsStrictNeq(var.get(u'value'),Js(u'__proto__')) if ((((var.get(u'type')==Js(u'string')) or (var.get(u'type')==Js(u'number'))) or (var.get(u'type')==Js(u'symbol'))) or (var.get(u'type')==Js(u'boolean'))) else PyJsStrictEq(var.get(u'value'),var.get(u"null")))
    PyJsHoisted_isKeyable_.func_name = u'isKeyable'
    var.put(u'isKeyable', PyJsHoisted_isKeyable_)
    pass
    var.get(u'module').put(u'exports', var.get(u'isKeyable'))
PyJs_anonymous_3701_._set_name(u'anonymous')
PyJs_Object_3702_ = Js({})
@Js
def PyJs_anonymous_3703_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'maskSrcKey', u'module', u'isMasked', u'coreJsData'])
    @Js
    def PyJsHoisted_isMasked_(func, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'func':func}, var)
        var.registers([u'func'])
        return (var.get(u'maskSrcKey').neg().neg() and var.get(u'func').contains(var.get(u'maskSrcKey')))
    PyJsHoisted_isMasked_.func_name = u'isMasked'
    var.put(u'isMasked', PyJsHoisted_isMasked_)
    var.put(u'coreJsData', var.get(u'require')(Js(u'./_coreJsData')))
    @Js
    def PyJs_anonymous_3704_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'uid'])
        var.put(u'uid', JsRegExp(u'/[^.]+$/').callprop(u'exec', (((var.get(u'coreJsData') and var.get(u'coreJsData').get(u'keys')) and var.get(u'coreJsData').get(u'keys').get(u'IE_PROTO')) or Js(u''))))
        return ((Js(u'Symbol(src)_1.')+var.get(u'uid')) if var.get(u'uid') else Js(u''))
    PyJs_anonymous_3704_._set_name(u'anonymous')
    var.put(u'maskSrcKey', PyJs_anonymous_3704_())
    pass
    var.get(u'module').put(u'exports', var.get(u'isMasked'))
PyJs_anonymous_3703_._set_name(u'anonymous')
PyJs_Object_3705_ = Js({u'./_coreJsData':Js(369.0)})
@Js
def PyJs_anonymous_3706_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isPrototype', u'objectProto', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_isPrototype_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value', u'Ctor', u'proto'])
        var.put(u'Ctor', (var.get(u'value') and var.get(u'value').get(u'constructor')))
        var.put(u'proto', (((var.get(u'Ctor',throw=False).typeof()==Js(u'function')) and var.get(u'Ctor').get(u'prototype')) or var.get(u'objectProto')))
        return PyJsStrictEq(var.get(u'value'),var.get(u'proto'))
    PyJsHoisted_isPrototype_.func_name = u'isPrototype'
    var.put(u'isPrototype', PyJsHoisted_isPrototype_)
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isPrototype'))
PyJs_anonymous_3706_._set_name(u'anonymous')
PyJs_Object_3707_ = Js({})
@Js
def PyJs_anonymous_3708_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isStrictComparable', u'require', u'exports', u'isObject', u'module'])
    @Js
    def PyJsHoisted_isStrictComparable_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return (PyJsStrictEq(var.get(u'value'),var.get(u'value')) and var.get(u'isObject')(var.get(u'value')).neg())
    PyJsHoisted_isStrictComparable_.func_name = u'isStrictComparable'
    var.put(u'isStrictComparable', PyJsHoisted_isStrictComparable_)
    var.put(u'isObject', var.get(u'require')(Js(u'./isObject')))
    pass
    var.get(u'module').put(u'exports', var.get(u'isStrictComparable'))
PyJs_anonymous_3708_._set_name(u'anonymous')
PyJs_Object_3709_ = Js({u'./isObject':Js(467.0)})
@Js
def PyJs_anonymous_3710_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'iteratorToArray', u'exports', u'module'])
    @Js
    def PyJsHoisted_iteratorToArray_(iterator, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'iterator':iterator}, var)
        var.registers([u'data', u'result', u'iterator'])
        var.put(u'result', Js([]))
        while var.put(u'data', var.get(u'iterator').callprop(u'next')).get(u'done').neg():
            var.get(u'result').callprop(u'push', var.get(u'data').get(u'value'))
        return var.get(u'result')
    PyJsHoisted_iteratorToArray_.func_name = u'iteratorToArray'
    var.put(u'iteratorToArray', PyJsHoisted_iteratorToArray_)
    pass
    var.get(u'module').put(u'exports', var.get(u'iteratorToArray'))
PyJs_anonymous_3710_._set_name(u'anonymous')
PyJs_Object_3711_ = Js({})
@Js
def PyJs_anonymous_3712_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'listCacheClear'])
    @Js
    def PyJsHoisted_listCacheClear_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").put(u'__data__', Js([]))
    PyJsHoisted_listCacheClear_.func_name = u'listCacheClear'
    var.put(u'listCacheClear', PyJsHoisted_listCacheClear_)
    pass
    var.get(u'module').put(u'exports', var.get(u'listCacheClear'))
PyJs_anonymous_3712_._set_name(u'anonymous')
PyJs_Object_3713_ = Js({})
@Js
def PyJs_anonymous_3714_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'listCacheDelete', u'exports', u'arrayProto', u'require', u'module', u'splice', u'assocIndexOf'])
    @Js
    def PyJsHoisted_listCacheDelete_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'index', u'data', u'lastIndex', u'key'])
        var.put(u'data', var.get(u"this").get(u'__data__'))
        var.put(u'index', var.get(u'assocIndexOf')(var.get(u'data'), var.get(u'key')))
        if (var.get(u'index')<Js(0.0)):
            return Js(False)
        var.put(u'lastIndex', (var.get(u'data').get(u'length')-Js(1.0)))
        if (var.get(u'index')==var.get(u'lastIndex')):
            var.get(u'data').callprop(u'pop')
        else:
            var.get(u'splice').callprop(u'call', var.get(u'data'), var.get(u'index'), Js(1.0))
        return var.get(u'true')
    PyJsHoisted_listCacheDelete_.func_name = u'listCacheDelete'
    var.put(u'listCacheDelete', PyJsHoisted_listCacheDelete_)
    var.put(u'assocIndexOf', var.get(u'require')(Js(u'./_assocIndexOf')))
    var.put(u'arrayProto', var.get(u'Array').get(u'prototype'))
    var.put(u'splice', var.get(u'arrayProto').get(u'splice'))
    pass
    var.get(u'module').put(u'exports', var.get(u'listCacheDelete'))
PyJs_anonymous_3714_._set_name(u'anonymous')
PyJs_Object_3715_ = Js({u'./_assocIndexOf':Js(311.0)})
@Js
def PyJs_anonymous_3716_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'assocIndexOf', u'require', u'exports', u'module', u'listCacheGet'])
    @Js
    def PyJsHoisted_listCacheGet_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'index', u'data', u'key'])
        var.put(u'data', var.get(u"this").get(u'__data__'))
        var.put(u'index', var.get(u'assocIndexOf')(var.get(u'data'), var.get(u'key')))
        return (var.get(u'undefined') if (var.get(u'index')<Js(0.0)) else var.get(u'data').get(var.get(u'index')).get(u'1'))
    PyJsHoisted_listCacheGet_.func_name = u'listCacheGet'
    var.put(u'listCacheGet', PyJsHoisted_listCacheGet_)
    var.put(u'assocIndexOf', var.get(u'require')(Js(u'./_assocIndexOf')))
    pass
    var.get(u'module').put(u'exports', var.get(u'listCacheGet'))
PyJs_anonymous_3716_._set_name(u'anonymous')
PyJs_Object_3717_ = Js({u'./_assocIndexOf':Js(311.0)})
@Js
def PyJs_anonymous_3718_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'assocIndexOf', u'listCacheHas', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_listCacheHas_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return (var.get(u'assocIndexOf')(var.get(u"this").get(u'__data__'), var.get(u'key'))>(-Js(1.0)))
    PyJsHoisted_listCacheHas_.func_name = u'listCacheHas'
    var.put(u'listCacheHas', PyJsHoisted_listCacheHas_)
    var.put(u'assocIndexOf', var.get(u'require')(Js(u'./_assocIndexOf')))
    pass
    var.get(u'module').put(u'exports', var.get(u'listCacheHas'))
PyJs_anonymous_3718_._set_name(u'anonymous')
PyJs_Object_3719_ = Js({u'./_assocIndexOf':Js(311.0)})
@Js
def PyJs_anonymous_3720_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'assocIndexOf', u'listCacheSet', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_listCacheSet_(key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'index', u'data', u'value', u'key'])
        var.put(u'data', var.get(u"this").get(u'__data__'))
        var.put(u'index', var.get(u'assocIndexOf')(var.get(u'data'), var.get(u'key')))
        if (var.get(u'index')<Js(0.0)):
            var.get(u'data').callprop(u'push', Js([var.get(u'key'), var.get(u'value')]))
        else:
            var.get(u'data').get(var.get(u'index')).put(u'1', var.get(u'value'))
        return var.get(u"this")
    PyJsHoisted_listCacheSet_.func_name = u'listCacheSet'
    var.put(u'listCacheSet', PyJsHoisted_listCacheSet_)
    var.put(u'assocIndexOf', var.get(u'require')(Js(u'./_assocIndexOf')))
    pass
    var.get(u'module').put(u'exports', var.get(u'listCacheSet'))
PyJs_anonymous_3720_._set_name(u'anonymous')
PyJs_Object_3721_ = Js({u'./_assocIndexOf':Js(311.0)})
@Js
def PyJs_anonymous_3722_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'Map', u'exports', u'Hash', u'require', u'module', u'mapCacheClear', u'ListCache'])
    @Js
    def PyJsHoisted_mapCacheClear_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        PyJs_Object_3723_ = Js({u'hash':var.get(u'Hash').create(),u'map':(var.get(u'Map') or var.get(u'ListCache')).create(),u'string':var.get(u'Hash').create()})
        var.get(u"this").put(u'__data__', PyJs_Object_3723_)
    PyJsHoisted_mapCacheClear_.func_name = u'mapCacheClear'
    var.put(u'mapCacheClear', PyJsHoisted_mapCacheClear_)
    var.put(u'Hash', var.get(u'require')(Js(u'./_Hash')))
    var.put(u'ListCache', var.get(u'require')(Js(u'./_ListCache')))
    var.put(u'Map', var.get(u'require')(Js(u'./_Map')))
    pass
    var.get(u'module').put(u'exports', var.get(u'mapCacheClear'))
PyJs_anonymous_3722_._set_name(u'anonymous')
PyJs_Object_3724_ = Js({u'./_Hash':Js(286.0),u'./_ListCache':Js(287.0),u'./_Map':Js(288.0)})
@Js
def PyJs_anonymous_3725_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'mapCacheDelete', u'getMapData', u'exports', u'module'])
    @Js
    def PyJsHoisted_mapCacheDelete_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return var.get(u'getMapData')(var.get(u"this"), var.get(u'key')).callprop(u'delete', var.get(u'key'))
    PyJsHoisted_mapCacheDelete_.func_name = u'mapCacheDelete'
    var.put(u'mapCacheDelete', PyJsHoisted_mapCacheDelete_)
    var.put(u'getMapData', var.get(u'require')(Js(u'./_getMapData')))
    pass
    var.get(u'module').put(u'exports', var.get(u'mapCacheDelete'))
PyJs_anonymous_3725_._set_name(u'anonymous')
PyJs_Object_3726_ = Js({u'./_getMapData':Js(380.0)})
@Js
def PyJs_anonymous_3727_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'mapCacheGet', u'getMapData', u'exports', u'module'])
    @Js
    def PyJsHoisted_mapCacheGet_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return var.get(u'getMapData')(var.get(u"this"), var.get(u'key')).callprop(u'get', var.get(u'key'))
    PyJsHoisted_mapCacheGet_.func_name = u'mapCacheGet'
    var.put(u'mapCacheGet', PyJsHoisted_mapCacheGet_)
    var.put(u'getMapData', var.get(u'require')(Js(u'./_getMapData')))
    pass
    var.get(u'module').put(u'exports', var.get(u'mapCacheGet'))
PyJs_anonymous_3727_._set_name(u'anonymous')
PyJs_Object_3728_ = Js({u'./_getMapData':Js(380.0)})
@Js
def PyJs_anonymous_3729_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'getMapData', u'exports', u'module', u'mapCacheHas'])
    @Js
    def PyJsHoisted_mapCacheHas_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return var.get(u'getMapData')(var.get(u"this"), var.get(u'key')).callprop(u'has', var.get(u'key'))
    PyJsHoisted_mapCacheHas_.func_name = u'mapCacheHas'
    var.put(u'mapCacheHas', PyJsHoisted_mapCacheHas_)
    var.put(u'getMapData', var.get(u'require')(Js(u'./_getMapData')))
    pass
    var.get(u'module').put(u'exports', var.get(u'mapCacheHas'))
PyJs_anonymous_3729_._set_name(u'anonymous')
PyJs_Object_3730_ = Js({u'./_getMapData':Js(380.0)})
@Js
def PyJs_anonymous_3731_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'getMapData', u'exports', u'module', u'mapCacheSet'])
    @Js
    def PyJsHoisted_mapCacheSet_(key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'value', u'key'])
        var.get(u'getMapData')(var.get(u"this"), var.get(u'key')).callprop(u'set', var.get(u'key'), var.get(u'value'))
        return var.get(u"this")
    PyJsHoisted_mapCacheSet_.func_name = u'mapCacheSet'
    var.put(u'mapCacheSet', PyJsHoisted_mapCacheSet_)
    var.put(u'getMapData', var.get(u'require')(Js(u'./_getMapData')))
    pass
    var.get(u'module').put(u'exports', var.get(u'mapCacheSet'))
PyJs_anonymous_3731_._set_name(u'anonymous')
PyJs_Object_3732_ = Js({u'./_getMapData':Js(380.0)})
@Js
def PyJs_anonymous_3733_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'mapToArray', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_mapToArray_(map, this, arguments, var=var):
        var = Scope({u'this':this, u'map':map, u'arguments':arguments}, var)
        var.registers([u'index', u'result', u'map'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'result', var.get(u'Array')(var.get(u'map').get(u'size')))
        @Js
        def PyJs_anonymous_3734_(value, key, this, arguments, var=var):
            var = Scope({u'this':this, u'key':key, u'value':value, u'arguments':arguments}, var)
            var.registers([u'key', u'value'])
            var.get(u'result').put(var.put(u'index',Js(var.get(u'index').to_number())+Js(1)), Js([var.get(u'key'), var.get(u'value')]))
        PyJs_anonymous_3734_._set_name(u'anonymous')
        var.get(u'map').callprop(u'forEach', PyJs_anonymous_3734_)
        return var.get(u'result')
    PyJsHoisted_mapToArray_.func_name = u'mapToArray'
    var.put(u'mapToArray', PyJsHoisted_mapToArray_)
    pass
    var.get(u'module').put(u'exports', var.get(u'mapToArray'))
PyJs_anonymous_3733_._set_name(u'anonymous')
PyJs_Object_3735_ = Js({})
@Js
def PyJs_anonymous_3736_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'matchesStrictComparable', u'exports', u'module'])
    @Js
    def PyJsHoisted_matchesStrictComparable_(key, srcValue, this, arguments, var=var):
        var = Scope({u'this':this, u'srcValue':srcValue, u'key':key, u'arguments':arguments}, var)
        var.registers([u'srcValue', u'key'])
        @Js
        def PyJs_anonymous_3737_(object, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
            var.registers([u'object'])
            if (var.get(u'object')==var.get(u"null")):
                return Js(False)
            return (PyJsStrictEq(var.get(u'object').get(var.get(u'key')),var.get(u'srcValue')) and (PyJsStrictNeq(var.get(u'srcValue'),var.get(u'undefined')) or var.get(u'Object')(var.get(u'object')).contains(var.get(u'key'))))
        PyJs_anonymous_3737_._set_name(u'anonymous')
        return PyJs_anonymous_3737_
    PyJsHoisted_matchesStrictComparable_.func_name = u'matchesStrictComparable'
    var.put(u'matchesStrictComparable', PyJsHoisted_matchesStrictComparable_)
    pass
    var.get(u'module').put(u'exports', var.get(u'matchesStrictComparable'))
PyJs_anonymous_3736_._set_name(u'anonymous')
PyJs_Object_3738_ = Js({})
@Js
def PyJs_anonymous_3739_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'getNative', u'nativeCreate', u'module'])
    var.put(u'getNative', var.get(u'require')(Js(u'./_getNative')))
    var.put(u'nativeCreate', var.get(u'getNative')(var.get(u'Object'), Js(u'create')))
    var.get(u'module').put(u'exports', var.get(u'nativeCreate'))
PyJs_anonymous_3739_._set_name(u'anonymous')
PyJs_Object_3740_ = Js({u'./_getNative':Js(382.0)})
@Js
def PyJs_anonymous_3741_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_3742_ = Js({})
    @Js
    def PyJs_anonymous_3743_(PyJsArg_676c6f62616c_, this, arguments, var=var):
        var = Scope({u'this':this, u'global':PyJsArg_676c6f62616c_, u'arguments':arguments}, var)
        var.registers([u'freeGlobal', u'global', u'freeSelf', u'thisGlobal', u'root', u'checkGlobal'])
        var.put(u'checkGlobal', var.get(u'require')(Js(u'./_checkGlobal')))
        var.put(u'freeGlobal', var.get(u'checkGlobal')(((var.get(u'global',throw=False).typeof()==Js(u'object')) and var.get(u'global'))))
        var.put(u'freeSelf', var.get(u'checkGlobal')(((var.get(u'self',throw=False).typeof()==Js(u'object')) and var.get(u'self'))))
        var.put(u'thisGlobal', var.get(u'checkGlobal')(((var.get(u"this",throw=False).typeof()==Js(u'object')) and var.get(u"this"))))
        var.put(u'root', (((var.get(u'freeGlobal') or var.get(u'freeSelf')) or var.get(u'thisGlobal')) or var.get(u'Function')(Js(u'return this'))()))
        var.get(u'module').put(u'exports', var.get(u'root'))
    PyJs_anonymous_3743_._set_name(u'anonymous')
    PyJs_anonymous_3743_.callprop(u'call', var.get(u"this"), (var.get(u'global') if PyJsStrictNeq(var.get(u'global',throw=False).typeof(),Js(u'undefined')) else (var.get(u'self') if PyJsStrictNeq(var.get(u'self',throw=False).typeof(),Js(u'undefined')) else (var.get(u'window') if PyJsStrictNeq(var.get(u'window',throw=False).typeof(),Js(u'undefined')) else PyJs_Object_3742_))))
PyJs_anonymous_3741_._set_name(u'anonymous')
PyJs_Object_3744_ = Js({u'./_checkGlobal':Js(355.0)})
@Js
def PyJs_anonymous_3745_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'setCacheAdd', u'require', u'exports', u'module', u'HASH_UNDEFINED'])
    @Js
    def PyJsHoisted_setCacheAdd_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        var.get(u"this").get(u'__data__').callprop(u'set', var.get(u'value'), var.get(u'HASH_UNDEFINED'))
        return var.get(u"this")
    PyJsHoisted_setCacheAdd_.func_name = u'setCacheAdd'
    var.put(u'setCacheAdd', PyJsHoisted_setCacheAdd_)
    var.put(u'HASH_UNDEFINED', Js(u'__lodash_hash_undefined__'))
    pass
    var.get(u'module').put(u'exports', var.get(u'setCacheAdd'))
PyJs_anonymous_3745_._set_name(u'anonymous')
PyJs_Object_3746_ = Js({})
@Js
def PyJs_anonymous_3747_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'setCacheHas', u'module'])
    @Js
    def PyJsHoisted_setCacheHas_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return var.get(u"this").get(u'__data__').callprop(u'has', var.get(u'value'))
    PyJsHoisted_setCacheHas_.func_name = u'setCacheHas'
    var.put(u'setCacheHas', PyJsHoisted_setCacheHas_)
    pass
    var.get(u'module').put(u'exports', var.get(u'setCacheHas'))
PyJs_anonymous_3747_._set_name(u'anonymous')
PyJs_Object_3748_ = Js({})
@Js
def PyJs_anonymous_3749_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'setToArray', u'exports', u'module'])
    @Js
    def PyJsHoisted_setToArray_(set, this, arguments, var=var):
        var = Scope({u'this':this, u'set':set, u'arguments':arguments}, var)
        var.registers([u'index', u'set', u'result'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'result', var.get(u'Array')(var.get(u'set').get(u'size')))
        @Js
        def PyJs_anonymous_3750_(value, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
            var.registers([u'value'])
            var.get(u'result').put(var.put(u'index',Js(var.get(u'index').to_number())+Js(1)), var.get(u'value'))
        PyJs_anonymous_3750_._set_name(u'anonymous')
        var.get(u'set').callprop(u'forEach', PyJs_anonymous_3750_)
        return var.get(u'result')
    PyJsHoisted_setToArray_.func_name = u'setToArray'
    var.put(u'setToArray', PyJsHoisted_setToArray_)
    pass
    var.get(u'module').put(u'exports', var.get(u'setToArray'))
PyJs_anonymous_3749_._set_name(u'anonymous')
PyJs_Object_3751_ = Js({})
@Js
def PyJs_anonymous_3752_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'stackClear', u'module', u'ListCache'])
    @Js
    def PyJsHoisted_stackClear_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").put(u'__data__', var.get(u'ListCache').create())
    PyJsHoisted_stackClear_.func_name = u'stackClear'
    var.put(u'stackClear', PyJsHoisted_stackClear_)
    var.put(u'ListCache', var.get(u'require')(Js(u'./_ListCache')))
    pass
    var.get(u'module').put(u'exports', var.get(u'stackClear'))
PyJs_anonymous_3752_._set_name(u'anonymous')
PyJs_Object_3753_ = Js({u'./_ListCache':Js(287.0)})
@Js
def PyJs_anonymous_3754_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'stackDelete', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_stackDelete_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return var.get(u"this").get(u'__data__').callprop(u'delete', var.get(u'key'))
    PyJsHoisted_stackDelete_.func_name = u'stackDelete'
    var.put(u'stackDelete', PyJsHoisted_stackDelete_)
    pass
    var.get(u'module').put(u'exports', var.get(u'stackDelete'))
PyJs_anonymous_3754_._set_name(u'anonymous')
PyJs_Object_3755_ = Js({})
@Js
def PyJs_anonymous_3756_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'stackGet', u'exports', u'module'])
    @Js
    def PyJsHoisted_stackGet_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return var.get(u"this").get(u'__data__').callprop(u'get', var.get(u'key'))
    PyJsHoisted_stackGet_.func_name = u'stackGet'
    var.put(u'stackGet', PyJsHoisted_stackGet_)
    pass
    var.get(u'module').put(u'exports', var.get(u'stackGet'))
PyJs_anonymous_3756_._set_name(u'anonymous')
PyJs_Object_3757_ = Js({})
@Js
def PyJs_anonymous_3758_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'stackHas', u'require', u'exports', u'module'])
    @Js
    def PyJsHoisted_stackHas_(key, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
        var.registers([u'key'])
        return var.get(u"this").get(u'__data__').callprop(u'has', var.get(u'key'))
    PyJsHoisted_stackHas_.func_name = u'stackHas'
    var.put(u'stackHas', PyJsHoisted_stackHas_)
    pass
    var.get(u'module').put(u'exports', var.get(u'stackHas'))
PyJs_anonymous_3758_._set_name(u'anonymous')
PyJs_Object_3759_ = Js({})
@Js
def PyJs_anonymous_3760_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'stackSet', u'exports', u'require', u'module', u'MapCache', u'LARGE_ARRAY_SIZE', u'ListCache'])
    @Js
    def PyJsHoisted_stackSet_(key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'cache', u'value', u'key'])
        var.put(u'cache', var.get(u"this").get(u'__data__'))
        if (var.get(u'cache').instanceof(var.get(u'ListCache')) and (var.get(u'cache').get(u'__data__').get(u'length')==var.get(u'LARGE_ARRAY_SIZE'))):
            var.put(u'cache', var.get(u"this").put(u'__data__', var.get(u'MapCache').create(var.get(u'cache').get(u'__data__'))))
        var.get(u'cache').callprop(u'set', var.get(u'key'), var.get(u'value'))
        return var.get(u"this")
    PyJsHoisted_stackSet_.func_name = u'stackSet'
    var.put(u'stackSet', PyJsHoisted_stackSet_)
    var.put(u'ListCache', var.get(u'require')(Js(u'./_ListCache')))
    var.put(u'MapCache', var.get(u'require')(Js(u'./_MapCache')))
    var.put(u'LARGE_ARRAY_SIZE', Js(200.0))
    pass
    var.get(u'module').put(u'exports', var.get(u'stackSet'))
PyJs_anonymous_3760_._set_name(u'anonymous')
PyJs_Object_3761_ = Js({u'./_ListCache':Js(287.0),u'./_MapCache':Js(289.0)})
@Js
def PyJs_anonymous_3762_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'rsSeq', u'rsModifier', u'rsNonAstral', u'module', u'rsAstralRange', u'rsZWJ', u'rsComboSymbolsRange', u'reOptMod', u'rsRegional', u'rsFitz', u'rsSurrPair', u'rsOptJoin', u'rsAstral', u'exports', u'rsComboMarksRange', u'rsCombo', u'reComplexSymbol', u'require', u'rsSymbol', u'rsOptVar', u'rsVarRange', u'stringToArray'])
    @Js
    def PyJsHoisted_stringToArray_(string, this, arguments, var=var):
        var = Scope({u'this':this, u'string':string, u'arguments':arguments}, var)
        var.registers([u'string'])
        return var.get(u'string').callprop(u'match', var.get(u'reComplexSymbol'))
    PyJsHoisted_stringToArray_.func_name = u'stringToArray'
    var.put(u'stringToArray', PyJsHoisted_stringToArray_)
    var.put(u'rsAstralRange', Js(u'\\ud800-\\udfff'))
    var.put(u'rsComboMarksRange', Js(u'\\u0300-\\u036f\\ufe20-\\ufe23'))
    var.put(u'rsComboSymbolsRange', Js(u'\\u20d0-\\u20f0'))
    var.put(u'rsVarRange', Js(u'\\ufe0e\\ufe0f'))
    var.put(u'rsAstral', ((Js(u'[')+var.get(u'rsAstralRange'))+Js(u']')))
    var.put(u'rsCombo', (((Js(u'[')+var.get(u'rsComboMarksRange'))+var.get(u'rsComboSymbolsRange'))+Js(u']')))
    var.put(u'rsFitz', Js(u'\\ud83c[\\udffb-\\udfff]'))
    var.put(u'rsModifier', ((((Js(u'(?:')+var.get(u'rsCombo'))+Js(u'|'))+var.get(u'rsFitz'))+Js(u')')))
    var.put(u'rsNonAstral', ((Js(u'[^')+var.get(u'rsAstralRange'))+Js(u']')))
    var.put(u'rsRegional', Js(u'(?:\\ud83c[\\udde6-\\uddff]){2}'))
    var.put(u'rsSurrPair', Js(u'[\\ud800-\\udbff][\\udc00-\\udfff]'))
    var.put(u'rsZWJ', Js(u'\\u200d'))
    var.put(u'reOptMod', (var.get(u'rsModifier')+Js(u'?')))
    var.put(u'rsOptVar', ((Js(u'[')+var.get(u'rsVarRange'))+Js(u']?')))
    var.put(u'rsOptJoin', (((((((Js(u'(?:')+var.get(u'rsZWJ'))+Js(u'(?:'))+Js([var.get(u'rsNonAstral'), var.get(u'rsRegional'), var.get(u'rsSurrPair')]).callprop(u'join', Js(u'|')))+Js(u')'))+var.get(u'rsOptVar'))+var.get(u'reOptMod'))+Js(u')*')))
    var.put(u'rsSeq', ((var.get(u'rsOptVar')+var.get(u'reOptMod'))+var.get(u'rsOptJoin')))
    var.put(u'rsSymbol', ((Js(u'(?:')+Js([((var.get(u'rsNonAstral')+var.get(u'rsCombo'))+Js(u'?')), var.get(u'rsCombo'), var.get(u'rsRegional'), var.get(u'rsSurrPair'), var.get(u'rsAstral')]).callprop(u'join', Js(u'|')))+Js(u')')))
    var.put(u'reComplexSymbol', var.get(u'RegExp')((((((var.get(u'rsFitz')+Js(u'(?='))+var.get(u'rsFitz'))+Js(u')|'))+var.get(u'rsSymbol'))+var.get(u'rsSeq')), Js(u'g')))
    pass
    var.get(u'module').put(u'exports', var.get(u'stringToArray'))
PyJs_anonymous_3762_._set_name(u'anonymous')
PyJs_Object_3763_ = Js({})
@Js
def PyJs_anonymous_3764_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'stringToPath', u'require', u'module', u'toString', u'reEscapeChar', u'memoize', u'rePropName'])
    var.put(u'memoize', var.get(u'require')(Js(u'./memoize')))
    var.put(u'toString', var.get(u'require')(Js(u'./toString')))
    var.put(u'rePropName', JsRegExp(u'/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|(["\'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(\\.|\\[\\])(?:\\4|$))/g'))
    var.put(u'reEscapeChar', JsRegExp(u'/\\\\(\\\\)?/g'))
    @Js
    def PyJs_anonymous_3765_(string, this, arguments, var=var):
        var = Scope({u'this':this, u'string':string, u'arguments':arguments}, var)
        var.registers([u'result', u'string'])
        var.put(u'result', Js([]))
        @Js
        def PyJs_anonymous_3766_(match, number, quote, string, this, arguments, var=var):
            var = Scope({u'string':string, u'this':this, u'quote':quote, u'number':number, u'match':match, u'arguments':arguments}, var)
            var.registers([u'quote', u'number', u'match', u'string'])
            var.get(u'result').callprop(u'push', (var.get(u'string').callprop(u'replace', var.get(u'reEscapeChar'), Js(u'$1')) if var.get(u'quote') else (var.get(u'number') or var.get(u'match'))))
        PyJs_anonymous_3766_._set_name(u'anonymous')
        var.get(u'toString')(var.get(u'string')).callprop(u'replace', var.get(u'rePropName'), PyJs_anonymous_3766_)
        return var.get(u'result')
    PyJs_anonymous_3765_._set_name(u'anonymous')
    var.put(u'stringToPath', var.get(u'memoize')(PyJs_anonymous_3765_))
    var.get(u'module').put(u'exports', var.get(u'stringToPath'))
PyJs_anonymous_3764_._set_name(u'anonymous')
PyJs_Object_3767_ = Js({u'./memoize':Js(477.0),u'./toString':Js(493.0)})
@Js
def PyJs_anonymous_3768_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'INFINITY', u'toKey', u'require', u'module', u'isSymbol'])
    @Js
    def PyJsHoisted_toKey_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'result', u'value'])
        if ((var.get(u'value',throw=False).typeof()==Js(u'string')) or var.get(u'isSymbol')(var.get(u'value'))):
            return var.get(u'value')
        var.put(u'result', (var.get(u'value')+Js(u'')))
        return (Js(u'-0') if ((var.get(u'result')==Js(u'0')) and ((Js(1.0)/var.get(u'value'))==(-var.get(u'INFINITY')))) else var.get(u'result'))
    PyJsHoisted_toKey_.func_name = u'toKey'
    var.put(u'toKey', PyJsHoisted_toKey_)
    var.put(u'isSymbol', var.get(u'require')(Js(u'./isSymbol')))
    var.put(u'INFINITY', (Js(1.0)/Js(0.0)))
    pass
    var.get(u'module').put(u'exports', var.get(u'toKey'))
PyJs_anonymous_3768_._set_name(u'anonymous')
PyJs_Object_3769_ = Js({u'./isSymbol':Js(472.0)})
@Js
def PyJs_anonymous_3770_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'toSource', u'module', u'funcToString'])
    @Js
    def PyJsHoisted_toSource_(func, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'func':func}, var)
        var.registers([u'func'])
        if (var.get(u'func')!=var.get(u"null")):
            try:
                return var.get(u'funcToString').callprop(u'call', var.get(u'func'))
            except PyJsException as PyJsTempException:
                PyJsHolder_65_72408585 = var.own.get(u'e')
                var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
                try:
                    pass
                finally:
                    if PyJsHolder_65_72408585 is not None:
                        var.own[u'e'] = PyJsHolder_65_72408585
                    else:
                        del var.own[u'e']
                    del PyJsHolder_65_72408585
            try:
                return (var.get(u'func')+Js(u''))
            except PyJsException as PyJsTempException:
                PyJsHolder_65_77429111 = var.own.get(u'e')
                var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
                try:
                    pass
                finally:
                    if PyJsHolder_65_77429111 is not None:
                        var.own[u'e'] = PyJsHolder_65_77429111
                    else:
                        del var.own[u'e']
                    del PyJsHolder_65_77429111
        return Js(u'')
    PyJsHoisted_toSource_.func_name = u'toSource'
    var.put(u'toSource', PyJsHoisted_toSource_)
    var.put(u'funcToString', var.get(u'Function').get(u'prototype').get(u'toString'))
    pass
    var.get(u'module').put(u'exports', var.get(u'toSource'))
PyJs_anonymous_3770_._set_name(u'anonymous')
PyJs_Object_3771_ = Js({})
@Js
def PyJs_anonymous_3772_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'assignValue', u'exports', u'propertyIsEnumerable', u'keys', u'copyObject', u'require', u'module', u'nonEnumShadows', u'isPrototype', u'hasOwnProperty', u'isArrayLike', u'objectProto', u'createAssigner', u'assign'])
    var.put(u'assignValue', var.get(u'require')(Js(u'./_assignValue')))
    var.put(u'copyObject', var.get(u'require')(Js(u'./_copyObject')))
    var.put(u'createAssigner', var.get(u'require')(Js(u'./_createAssigner')))
    var.put(u'isArrayLike', var.get(u'require')(Js(u'./isArrayLike')))
    var.put(u'isPrototype', var.get(u'require')(Js(u'./_isPrototype')))
    var.put(u'keys', var.get(u'require')(Js(u'./keys')))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    var.put(u'propertyIsEnumerable', var.get(u'objectProto').get(u'propertyIsEnumerable'))
    PyJs_Object_3773_ = Js({u'valueOf':Js(1.0)})
    var.put(u'nonEnumShadows', var.get(u'propertyIsEnumerable').callprop(u'call', PyJs_Object_3773_, Js(u'valueOf')).neg())
    @Js
    def PyJs_anonymous_3774_(object, source, this, arguments, var=var):
        var = Scope({u'this':this, u'source':source, u'object':object, u'arguments':arguments}, var)
        var.registers([u'source', u'object', u'key'])
        if ((var.get(u'nonEnumShadows') or var.get(u'isPrototype')(var.get(u'source'))) or var.get(u'isArrayLike')(var.get(u'source'))):
            var.get(u'copyObject')(var.get(u'source'), var.get(u'keys')(var.get(u'source')), var.get(u'object'))
            return var.get('undefined')
        for PyJsTemp in var.get(u'source'):
            var.put(u'key', PyJsTemp)
            if var.get(u'hasOwnProperty').callprop(u'call', var.get(u'source'), var.get(u'key')):
                var.get(u'assignValue')(var.get(u'object'), var.get(u'key'), var.get(u'source').get(var.get(u'key')))
    PyJs_anonymous_3774_._set_name(u'anonymous')
    var.put(u'assign', var.get(u'createAssigner')(PyJs_anonymous_3774_))
    var.get(u'module').put(u'exports', var.get(u'assign'))
PyJs_anonymous_3772_._set_name(u'anonymous')
PyJs_Object_3775_ = Js({u'./_assignValue':Js(310.0),u'./_copyObject':Js(367.0),u'./_createAssigner':Js(370.0),u'./_isPrototype':Js(406.0),u'./isArrayLike':Js(459.0),u'./keys':Js(474.0)})
@Js
def PyJs_anonymous_3776_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'assignValue', u'exports', u'propertyIsEnumerable', u'copyObject', u'require', u'assignIn', u'keysIn', u'isPrototype', u'module', u'isArrayLike', u'objectProto', u'nonEnumShadows', u'createAssigner'])
    var.put(u'assignValue', var.get(u'require')(Js(u'./_assignValue')))
    var.put(u'copyObject', var.get(u'require')(Js(u'./_copyObject')))
    var.put(u'createAssigner', var.get(u'require')(Js(u'./_createAssigner')))
    var.put(u'isArrayLike', var.get(u'require')(Js(u'./isArrayLike')))
    var.put(u'isPrototype', var.get(u'require')(Js(u'./_isPrototype')))
    var.put(u'keysIn', var.get(u'require')(Js(u'./keysIn')))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'propertyIsEnumerable', var.get(u'objectProto').get(u'propertyIsEnumerable'))
    PyJs_Object_3777_ = Js({u'valueOf':Js(1.0)})
    var.put(u'nonEnumShadows', var.get(u'propertyIsEnumerable').callprop(u'call', PyJs_Object_3777_, Js(u'valueOf')).neg())
    @Js
    def PyJs_anonymous_3778_(object, source, this, arguments, var=var):
        var = Scope({u'this':this, u'source':source, u'object':object, u'arguments':arguments}, var)
        var.registers([u'source', u'object', u'key'])
        if ((var.get(u'nonEnumShadows') or var.get(u'isPrototype')(var.get(u'source'))) or var.get(u'isArrayLike')(var.get(u'source'))):
            var.get(u'copyObject')(var.get(u'source'), var.get(u'keysIn')(var.get(u'source')), var.get(u'object'))
            return var.get('undefined')
        for PyJsTemp in var.get(u'source'):
            var.put(u'key', PyJsTemp)
            var.get(u'assignValue')(var.get(u'object'), var.get(u'key'), var.get(u'source').get(var.get(u'key')))
    PyJs_anonymous_3778_._set_name(u'anonymous')
    var.put(u'assignIn', var.get(u'createAssigner')(PyJs_anonymous_3778_))
    var.get(u'module').put(u'exports', var.get(u'assignIn'))
PyJs_anonymous_3776_._set_name(u'anonymous')
PyJs_Object_3779_ = Js({u'./_assignValue':Js(310.0),u'./_copyObject':Js(367.0),u'./_createAssigner':Js(370.0),u'./_isPrototype':Js(406.0),u'./isArrayLike':Js(459.0),u'./keysIn':Js(475.0)})
@Js
def PyJs_anonymous_3780_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'copyObject', u'require', u'module', u'keysIn', u'assignInWith', u'createAssigner'])
    var.put(u'copyObject', var.get(u'require')(Js(u'./_copyObject')))
    var.put(u'createAssigner', var.get(u'require')(Js(u'./_createAssigner')))
    var.put(u'keysIn', var.get(u'require')(Js(u'./keysIn')))
    @Js
    def PyJs_anonymous_3781_(object, source, srcIndex, customizer, this, arguments, var=var):
        var = Scope({u'source':source, u'customizer':customizer, u'arguments':arguments, u'srcIndex':srcIndex, u'this':this, u'object':object}, var)
        var.registers([u'source', u'object', u'srcIndex', u'customizer'])
        var.get(u'copyObject')(var.get(u'source'), var.get(u'keysIn')(var.get(u'source')), var.get(u'object'), var.get(u'customizer'))
    PyJs_anonymous_3781_._set_name(u'anonymous')
    var.put(u'assignInWith', var.get(u'createAssigner')(PyJs_anonymous_3781_))
    var.get(u'module').put(u'exports', var.get(u'assignInWith'))
PyJs_anonymous_3780_._set_name(u'anonymous')
PyJs_Object_3782_ = Js({u'./_copyObject':Js(367.0),u'./_createAssigner':Js(370.0),u'./keysIn':Js(475.0)})
@Js
def PyJs_anonymous_3783_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'clone', u'exports', u'require', u'module', u'baseClone'])
    @Js
    def PyJsHoisted_clone_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return var.get(u'baseClone')(var.get(u'value'), Js(False), var.get(u'true'))
    PyJsHoisted_clone_.func_name = u'clone'
    var.put(u'clone', PyJsHoisted_clone_)
    var.put(u'baseClone', var.get(u'require')(Js(u'./_baseClone')))
    pass
    var.get(u'module').put(u'exports', var.get(u'clone'))
PyJs_anonymous_3783_._set_name(u'anonymous')
PyJs_Object_3784_ = Js({u'./_baseClone':Js(314.0)})
@Js
def PyJs_anonymous_3785_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'cloneDeep', u'exports', u'module', u'baseClone'])
    @Js
    def PyJsHoisted_cloneDeep_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return var.get(u'baseClone')(var.get(u'value'), var.get(u'true'), var.get(u'true'))
    PyJsHoisted_cloneDeep_.func_name = u'cloneDeep'
    var.put(u'cloneDeep', PyJsHoisted_cloneDeep_)
    var.put(u'baseClone', var.get(u'require')(Js(u'./_baseClone')))
    pass
    var.get(u'module').put(u'exports', var.get(u'cloneDeep'))
PyJs_anonymous_3785_._set_name(u'anonymous')
PyJs_Object_3786_ = Js({u'./_baseClone':Js(314.0)})
@Js
def PyJs_anonymous_3787_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'cloneDeepWith', u'require', u'exports', u'module', u'baseClone'])
    @Js
    def PyJsHoisted_cloneDeepWith_(value, customizer, this, arguments, var=var):
        var = Scope({u'this':this, u'customizer':customizer, u'arguments':arguments, u'value':value}, var)
        var.registers([u'customizer', u'value'])
        return var.get(u'baseClone')(var.get(u'value'), var.get(u'true'), var.get(u'true'), var.get(u'customizer'))
    PyJsHoisted_cloneDeepWith_.func_name = u'cloneDeepWith'
    var.put(u'cloneDeepWith', PyJsHoisted_cloneDeepWith_)
    var.put(u'baseClone', var.get(u'require')(Js(u'./_baseClone')))
    pass
    var.get(u'module').put(u'exports', var.get(u'cloneDeepWith'))
PyJs_anonymous_3787_._set_name(u'anonymous')
PyJs_Object_3788_ = Js({u'./_baseClone':Js(314.0)})
@Js
def PyJs_anonymous_3789_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'compact', u'require', u'exports', u'module'])
    @Js
    def PyJsHoisted_compact_(array, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'arguments':arguments}, var)
        var.registers([u'index', u'resIndex', u'value', u'length', u'result', u'array'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'length', (var.get(u'array').get(u'length') if var.get(u'array') else Js(0.0)))
        var.put(u'resIndex', Js(0.0))
        var.put(u'result', Js([]))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
            var.put(u'value', var.get(u'array').get(var.get(u'index')))
            if var.get(u'value'):
                var.get(u'result').put((var.put(u'resIndex',Js(var.get(u'resIndex').to_number())+Js(1))-Js(1)), var.get(u'value'))
        return var.get(u'result')
    PyJsHoisted_compact_.func_name = u'compact'
    var.put(u'compact', PyJsHoisted_compact_)
    pass
    var.get(u'module').put(u'exports', var.get(u'compact'))
PyJs_anonymous_3789_._set_name(u'anonymous')
PyJs_Object_3790_ = Js({})
@Js
def PyJs_anonymous_3791_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'defaults', u'require', u'assignInDefaults', u'rest', u'module', u'assignInWith', u'apply'])
    var.put(u'apply', var.get(u'require')(Js(u'./_apply')))
    var.put(u'assignInDefaults', var.get(u'require')(Js(u'./_assignInDefaults')))
    var.put(u'assignInWith', var.get(u'require')(Js(u'./assignInWith')))
    var.put(u'rest', var.get(u'require')(Js(u'./rest')))
    @Js
    def PyJs_anonymous_3792_(args, this, arguments, var=var):
        var = Scope({u'this':this, u'args':args, u'arguments':arguments}, var)
        var.registers([u'args'])
        var.get(u'args').callprop(u'push', var.get(u'undefined'), var.get(u'assignInDefaults'))
        return var.get(u'apply')(var.get(u'assignInWith'), var.get(u'undefined'), var.get(u'args'))
    PyJs_anonymous_3792_._set_name(u'anonymous')
    var.put(u'defaults', var.get(u'rest')(PyJs_anonymous_3792_))
    var.get(u'module').put(u'exports', var.get(u'defaults'))
PyJs_anonymous_3791_._set_name(u'anonymous')
PyJs_Object_3793_ = Js({u'./_apply':Js(300.0),u'./_assignInDefaults':Js(308.0),u'./assignInWith':Js(437.0),u'./rest':Js(484.0)})
@Js
def PyJs_anonymous_3794_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./forEach')))
PyJs_anonymous_3794_._set_name(u'anonymous')
PyJs_Object_3795_ = Js({u'./forEach':Js(451.0)})
@Js
def PyJs_anonymous_3796_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'eq', u'exports', u'module'])
    @Js
    def PyJsHoisted_eq_(value, other, this, arguments, var=var):
        var = Scope({u'this':this, u'other':other, u'arguments':arguments, u'value':value}, var)
        var.registers([u'other', u'value'])
        return (PyJsStrictEq(var.get(u'value'),var.get(u'other')) or (PyJsStrictNeq(var.get(u'value'),var.get(u'value')) and PyJsStrictNeq(var.get(u'other'),var.get(u'other'))))
    PyJsHoisted_eq_.func_name = u'eq'
    var.put(u'eq', PyJsHoisted_eq_)
    pass
    var.get(u'module').put(u'exports', var.get(u'eq'))
PyJs_anonymous_3796_._set_name(u'anonymous')
PyJs_Object_3797_ = Js({})
@Js
def PyJs_anonymous_3798_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'reHasRegExpChar', u'require', u'module', u'toString', u'reRegExpChar', u'escapeRegExp'])
    @Js
    def PyJsHoisted_escapeRegExp_(string, this, arguments, var=var):
        var = Scope({u'this':this, u'string':string, u'arguments':arguments}, var)
        var.registers([u'string'])
        var.put(u'string', var.get(u'toString')(var.get(u'string')))
        return (var.get(u'string').callprop(u'replace', var.get(u'reRegExpChar'), Js(u'\\$&')) if (var.get(u'string') and var.get(u'reHasRegExpChar').callprop(u'test', var.get(u'string'))) else var.get(u'string'))
    PyJsHoisted_escapeRegExp_.func_name = u'escapeRegExp'
    var.put(u'escapeRegExp', PyJsHoisted_escapeRegExp_)
    var.put(u'toString', var.get(u'require')(Js(u'./toString')))
    var.put(u'reRegExpChar', JsRegExp(u'/[\\\\^$.*+?()[\\]{}|]/g'))
    var.put(u'reHasRegExpChar', var.get(u'RegExp')(var.get(u'reRegExpChar').get(u'source')))
    pass
    var.get(u'module').put(u'exports', var.get(u'escapeRegExp'))
PyJs_anonymous_3798_._set_name(u'anonymous')
PyJs_Object_3799_ = Js({u'./toString':Js(493.0)})
@Js
def PyJs_anonymous_3800_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'module').put(u'exports', var.get(u'require')(Js(u'./assignIn')))
PyJs_anonymous_3800_._set_name(u'anonymous')
PyJs_Object_3801_ = Js({u'./assignIn':Js(436.0)})
@Js
def PyJs_anonymous_3802_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'createFind', u'require', u'findIndex', u'module', u'find'])
    var.put(u'createFind', var.get(u'require')(Js(u'./_createFind')))
    var.put(u'findIndex', var.get(u'require')(Js(u'./findIndex')))
    var.put(u'find', var.get(u'createFind')(var.get(u'findIndex')))
    var.get(u'module').put(u'exports', var.get(u'find'))
PyJs_anonymous_3802_._set_name(u'anonymous')
PyJs_Object_3803_ = Js({u'./_createFind':Js(373.0),u'./findIndex':Js(448.0)})
@Js
def PyJs_anonymous_3804_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'findIndex', u'nativeMax', u'toInteger', u'baseIteratee', u'exports', u'module', u'baseFindIndex', u'require'])
    @Js
    def PyJsHoisted_findIndex_(array, predicate, fromIndex, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'array':array, u'predicate':predicate, u'fromIndex':fromIndex}, var)
        var.registers([u'index', u'length', u'predicate', u'array', u'fromIndex'])
        var.put(u'length', (var.get(u'array').get(u'length') if var.get(u'array') else Js(0.0)))
        if var.get(u'length').neg():
            return (-Js(1.0))
        var.put(u'index', (Js(0.0) if (var.get(u'fromIndex')==var.get(u"null")) else var.get(u'toInteger')(var.get(u'fromIndex'))))
        if (var.get(u'index')<Js(0.0)):
            var.put(u'index', var.get(u'nativeMax')((var.get(u'length')+var.get(u'index')), Js(0.0)))
        return var.get(u'baseFindIndex')(var.get(u'array'), var.get(u'baseIteratee')(var.get(u'predicate'), Js(3.0)), var.get(u'index'))
    PyJsHoisted_findIndex_.func_name = u'findIndex'
    var.put(u'findIndex', PyJsHoisted_findIndex_)
    var.put(u'baseFindIndex', var.get(u'require')(Js(u'./_baseFindIndex')))
    var.put(u'baseIteratee', var.get(u'require')(Js(u'./_baseIteratee')))
    var.put(u'toInteger', var.get(u'require')(Js(u'./toInteger')))
    var.put(u'nativeMax', var.get(u'Math').get(u'max'))
    pass
    var.get(u'module').put(u'exports', var.get(u'findIndex'))
PyJs_anonymous_3804_._set_name(u'anonymous')
PyJs_Object_3805_ = Js({u'./_baseFindIndex':Js(317.0),u'./_baseIteratee':Js(331.0),u'./toInteger':Js(490.0)})
@Js
def PyJs_anonymous_3806_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'findLastIndex', u'createFind', u'require', u'module', u'findLast'])
    var.put(u'createFind', var.get(u'require')(Js(u'./_createFind')))
    var.put(u'findLastIndex', var.get(u'require')(Js(u'./findLastIndex')))
    var.put(u'findLast', var.get(u'createFind')(var.get(u'findLastIndex')))
    var.get(u'module').put(u'exports', var.get(u'findLast'))
PyJs_anonymous_3806_._set_name(u'anonymous')
PyJs_Object_3807_ = Js({u'./_createFind':Js(373.0),u'./findLastIndex':Js(450.0)})
@Js
def PyJs_anonymous_3808_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'findLastIndex', u'nativeMax', u'toInteger', u'baseIteratee', u'module', u'nativeMin', u'baseFindIndex', u'require'])
    @Js
    def PyJsHoisted_findLastIndex_(array, predicate, fromIndex, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'array':array, u'predicate':predicate, u'fromIndex':fromIndex}, var)
        var.registers([u'index', u'length', u'predicate', u'array', u'fromIndex'])
        var.put(u'length', (var.get(u'array').get(u'length') if var.get(u'array') else Js(0.0)))
        if var.get(u'length').neg():
            return (-Js(1.0))
        var.put(u'index', (var.get(u'length')-Js(1.0)))
        if PyJsStrictNeq(var.get(u'fromIndex'),var.get(u'undefined')):
            var.put(u'index', var.get(u'toInteger')(var.get(u'fromIndex')))
            var.put(u'index', (var.get(u'nativeMax')((var.get(u'length')+var.get(u'index')), Js(0.0)) if (var.get(u'fromIndex')<Js(0.0)) else var.get(u'nativeMin')(var.get(u'index'), (var.get(u'length')-Js(1.0)))))
        return var.get(u'baseFindIndex')(var.get(u'array'), var.get(u'baseIteratee')(var.get(u'predicate'), Js(3.0)), var.get(u'index'), var.get(u'true'))
    PyJsHoisted_findLastIndex_.func_name = u'findLastIndex'
    var.put(u'findLastIndex', PyJsHoisted_findLastIndex_)
    var.put(u'baseFindIndex', var.get(u'require')(Js(u'./_baseFindIndex')))
    var.put(u'baseIteratee', var.get(u'require')(Js(u'./_baseIteratee')))
    var.put(u'toInteger', var.get(u'require')(Js(u'./toInteger')))
    var.put(u'nativeMax', var.get(u'Math').get(u'max'))
    var.put(u'nativeMin', var.get(u'Math').get(u'min'))
    pass
    var.get(u'module').put(u'exports', var.get(u'findLastIndex'))
PyJs_anonymous_3808_._set_name(u'anonymous')
PyJs_Object_3809_ = Js({u'./_baseFindIndex':Js(317.0),u'./_baseIteratee':Js(331.0),u'./toInteger':Js(490.0)})
@Js
def PyJs_anonymous_3810_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseEach', u'isArray', u'exports', u'arrayEach', u'require', u'baseIteratee', u'module', u'forEach'])
    @Js
    def PyJsHoisted_forEach_(collection, iteratee, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'collection':collection, u'iteratee':iteratee}, var)
        var.registers([u'collection', u'func', u'iteratee'])
        var.put(u'func', (var.get(u'arrayEach') if var.get(u'isArray')(var.get(u'collection')) else var.get(u'baseEach')))
        return var.get(u'func')(var.get(u'collection'), var.get(u'baseIteratee')(var.get(u'iteratee'), Js(3.0)))
    PyJsHoisted_forEach_.func_name = u'forEach'
    var.put(u'forEach', PyJsHoisted_forEach_)
    var.put(u'arrayEach', var.get(u'require')(Js(u'./_arrayEach')))
    var.put(u'baseEach', var.get(u'require')(Js(u'./_baseEach')))
    var.put(u'baseIteratee', var.get(u'require')(Js(u'./_baseIteratee')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    pass
    var.get(u'module').put(u'exports', var.get(u'forEach'))
PyJs_anonymous_3810_._set_name(u'anonymous')
PyJs_Object_3811_ = Js({u'./_arrayEach':Js(301.0),u'./_baseEach':Js(316.0),u'./_baseIteratee':Js(331.0),u'./isArray':Js(458.0)})
@Js
def PyJs_anonymous_3812_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseGet', u'exports', u'require', u'module', u'get'])
    @Js
    def PyJsHoisted_get_(object, path, defaultValue, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'defaultValue':defaultValue, u'object':object, u'arguments':arguments}, var)
        var.registers([u'path', u'defaultValue', u'object', u'result'])
        var.put(u'result', (var.get(u'undefined') if (var.get(u'object')==var.get(u"null")) else var.get(u'baseGet')(var.get(u'object'), var.get(u'path'))))
        return (var.get(u'defaultValue') if PyJsStrictEq(var.get(u'result'),var.get(u'undefined')) else var.get(u'result'))
    PyJsHoisted_get_.func_name = u'get'
    var.put(u'get', PyJsHoisted_get_)
    var.put(u'baseGet', var.get(u'require')(Js(u'./_baseGet')))
    pass
    var.get(u'module').put(u'exports', var.get(u'get'))
PyJs_anonymous_3812_._set_name(u'anonymous')
PyJs_Object_3813_ = Js({u'./_baseGet':Js(321.0)})
@Js
def PyJs_anonymous_3814_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'hasPath', u'baseHas', u'require', u'exports', u'module', u'has'])
    @Js
    def PyJsHoisted_has_(object, path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'object':object, u'arguments':arguments}, var)
        var.registers([u'path', u'object'])
        return ((var.get(u'object')!=var.get(u"null")) and var.get(u'hasPath')(var.get(u'object'), var.get(u'path'), var.get(u'baseHas')))
    PyJsHoisted_has_.func_name = u'has'
    var.put(u'has', PyJsHoisted_has_)
    var.put(u'baseHas', var.get(u'require')(Js(u'./_baseHas')))
    var.put(u'hasPath', var.get(u'require')(Js(u'./_hasPath')))
    pass
    var.get(u'module').put(u'exports', var.get(u'has'))
PyJs_anonymous_3814_._set_name(u'anonymous')
PyJs_Object_3815_ = Js({u'./_baseHas':Js(323.0),u'./_hasPath':Js(387.0)})
@Js
def PyJs_anonymous_3816_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'hasPath', u'hasIn', u'require', u'exports', u'module', u'baseHasIn'])
    @Js
    def PyJsHoisted_hasIn_(object, path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'object':object, u'arguments':arguments}, var)
        var.registers([u'path', u'object'])
        return ((var.get(u'object')!=var.get(u"null")) and var.get(u'hasPath')(var.get(u'object'), var.get(u'path'), var.get(u'baseHasIn')))
    PyJsHoisted_hasIn_.func_name = u'hasIn'
    var.put(u'hasIn', PyJsHoisted_hasIn_)
    var.put(u'baseHasIn', var.get(u'require')(Js(u'./_baseHasIn')))
    var.put(u'hasPath', var.get(u'require')(Js(u'./_hasPath')))
    pass
    var.get(u'module').put(u'exports', var.get(u'hasIn'))
PyJs_anonymous_3816_._set_name(u'anonymous')
PyJs_Object_3817_ = Js({u'./_baseHasIn':Js(324.0),u'./_hasPath':Js(387.0)})
@Js
def PyJs_anonymous_3818_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'identity'])
    @Js
    def PyJsHoisted_identity_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return var.get(u'value')
    PyJsHoisted_identity_.func_name = u'identity'
    var.put(u'identity', PyJsHoisted_identity_)
    pass
    var.get(u'module').put(u'exports', var.get(u'identity'))
PyJs_anonymous_3818_._set_name(u'anonymous')
PyJs_Object_3819_ = Js({})
@Js
def PyJs_anonymous_3820_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseIndexOf', u'exports', u'isString', u'nativeMax', u'isArrayLike', u'toInteger', u'module', u'includes', u'values', u'require'])
    @Js
    def PyJsHoisted_includes_(collection, value, fromIndex, guard, this, arguments, var=var):
        var = Scope({u'guard':guard, u'collection':collection, u'this':this, u'fromIndex':fromIndex, u'value':value, u'arguments':arguments}, var)
        var.registers([u'length', u'guard', u'value', u'collection', u'fromIndex'])
        var.put(u'collection', (var.get(u'collection') if var.get(u'isArrayLike')(var.get(u'collection')) else var.get(u'values')(var.get(u'collection'))))
        var.put(u'fromIndex', (var.get(u'toInteger')(var.get(u'fromIndex')) if (var.get(u'fromIndex') and var.get(u'guard').neg()) else Js(0.0)))
        var.put(u'length', var.get(u'collection').get(u'length'))
        if (var.get(u'fromIndex')<Js(0.0)):
            var.put(u'fromIndex', var.get(u'nativeMax')((var.get(u'length')+var.get(u'fromIndex')), Js(0.0)))
        return (((var.get(u'fromIndex')<=var.get(u'length')) and (var.get(u'collection').callprop(u'indexOf', var.get(u'value'), var.get(u'fromIndex'))>(-Js(1.0)))) if var.get(u'isString')(var.get(u'collection')) else (var.get(u'length').neg().neg() and (var.get(u'baseIndexOf')(var.get(u'collection'), var.get(u'value'), var.get(u'fromIndex'))>(-Js(1.0)))))
    PyJsHoisted_includes_.func_name = u'includes'
    var.put(u'includes', PyJsHoisted_includes_)
    var.put(u'baseIndexOf', var.get(u'require')(Js(u'./_baseIndexOf')))
    var.put(u'isArrayLike', var.get(u'require')(Js(u'./isArrayLike')))
    var.put(u'isString', var.get(u'require')(Js(u'./isString')))
    var.put(u'toInteger', var.get(u'require')(Js(u'./toInteger')))
    var.put(u'values', var.get(u'require')(Js(u'./values')))
    var.put(u'nativeMax', var.get(u'Math').get(u'max'))
    pass
    var.get(u'module').put(u'exports', var.get(u'includes'))
PyJs_anonymous_3820_._set_name(u'anonymous')
PyJs_Object_3821_ = Js({u'./_baseIndexOf':Js(325.0),u'./isArrayLike':Js(459.0),u'./isString':Js(471.0),u'./toInteger':Js(490.0),u'./values':Js(496.0)})
@Js
def PyJs_anonymous_3822_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'propertyIsEnumerable', u'exports', u'objectToString', u'require', u'module', u'hasOwnProperty', u'isArrayLikeObject', u'objectProto', u'argsTag', u'isArguments'])
    @Js
    def PyJsHoisted_isArguments_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return ((var.get(u'isArrayLikeObject')(var.get(u'value')) and var.get(u'hasOwnProperty').callprop(u'call', var.get(u'value'), Js(u'callee'))) and (var.get(u'propertyIsEnumerable').callprop(u'call', var.get(u'value'), Js(u'callee')).neg() or (var.get(u'objectToString').callprop(u'call', var.get(u'value'))==var.get(u'argsTag'))))
    PyJsHoisted_isArguments_.func_name = u'isArguments'
    var.put(u'isArguments', PyJsHoisted_isArguments_)
    var.put(u'isArrayLikeObject', var.get(u'require')(Js(u'./isArrayLikeObject')))
    var.put(u'argsTag', Js(u'[object Arguments]'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    var.put(u'objectToString', var.get(u'objectProto').get(u'toString'))
    var.put(u'propertyIsEnumerable', var.get(u'objectProto').get(u'propertyIsEnumerable'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isArguments'))
PyJs_anonymous_3822_._set_name(u'anonymous')
PyJs_Object_3823_ = Js({u'./isArrayLikeObject':Js(460.0)})
@Js
def PyJs_anonymous_3824_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'require', u'exports', u'module'])
    var.put(u'isArray', var.get(u'Array').get(u'isArray'))
    var.get(u'module').put(u'exports', var.get(u'isArray'))
PyJs_anonymous_3824_._set_name(u'anonymous')
PyJs_Object_3825_ = Js({})
@Js
def PyJs_anonymous_3826_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'isLength', u'getLength', u'require', u'module', u'isArrayLike', u'isFunction'])
    @Js
    def PyJsHoisted_isArrayLike_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return (((var.get(u'value')!=var.get(u"null")) and var.get(u'isLength')(var.get(u'getLength')(var.get(u'value')))) and var.get(u'isFunction')(var.get(u'value')).neg())
    PyJsHoisted_isArrayLike_.func_name = u'isArrayLike'
    var.put(u'isArrayLike', PyJsHoisted_isArrayLike_)
    var.put(u'getLength', var.get(u'require')(Js(u'./_getLength')))
    var.put(u'isFunction', var.get(u'require')(Js(u'./isFunction')))
    var.put(u'isLength', var.get(u'require')(Js(u'./isLength')))
    pass
    var.get(u'module').put(u'exports', var.get(u'isArrayLike'))
PyJs_anonymous_3826_._set_name(u'anonymous')
PyJs_Object_3827_ = Js({u'./_getLength':Js(379.0),u'./isFunction':Js(463.0),u'./isLength':Js(465.0)})
@Js
def PyJs_anonymous_3828_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'isArrayLike', u'require', u'module', u'isArrayLikeObject', u'isObjectLike'])
    @Js
    def PyJsHoisted_isArrayLikeObject_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return (var.get(u'isObjectLike')(var.get(u'value')) and var.get(u'isArrayLike')(var.get(u'value')))
    PyJsHoisted_isArrayLikeObject_.func_name = u'isArrayLikeObject'
    var.put(u'isArrayLikeObject', PyJsHoisted_isArrayLikeObject_)
    var.put(u'isArrayLike', var.get(u'require')(Js(u'./isArrayLike')))
    var.put(u'isObjectLike', var.get(u'require')(Js(u'./isObjectLike')))
    pass
    var.get(u'module').put(u'exports', var.get(u'isArrayLikeObject'))
PyJs_anonymous_3828_._set_name(u'anonymous')
PyJs_Object_3829_ = Js({u'./isArrayLike':Js(459.0),u'./isObjectLike':Js(468.0)})
@Js
def PyJs_anonymous_3830_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'isBoolean', u'objectToString', u'require', u'boolTag', u'module', u'isObjectLike', u'objectProto'])
    @Js
    def PyJsHoisted_isBoolean_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return ((PyJsStrictEq(var.get(u'value'),var.get(u'true')) or PyJsStrictEq(var.get(u'value'),Js(False))) or (var.get(u'isObjectLike')(var.get(u'value')) and (var.get(u'objectToString').callprop(u'call', var.get(u'value'))==var.get(u'boolTag'))))
    PyJsHoisted_isBoolean_.func_name = u'isBoolean'
    var.put(u'isBoolean', PyJsHoisted_isBoolean_)
    var.put(u'isObjectLike', var.get(u'require')(Js(u'./isObjectLike')))
    var.put(u'boolTag', Js(u'[object Boolean]'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'objectToString', var.get(u'objectProto').get(u'toString'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isBoolean'))
PyJs_anonymous_3830_._set_name(u'anonymous')
PyJs_Object_3831_ = Js({u'./isObjectLike':Js(468.0)})
@Js
def PyJs_anonymous_3832_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'freeModule', u'Buffer', u'root', u'require', u'freeExports', u'module', u'moduleExports', u'stubFalse', u'isBuffer'])
    var.put(u'root', var.get(u'require')(Js(u'./_root')))
    var.put(u'stubFalse', var.get(u'require')(Js(u'./stubFalse')))
    var.put(u'freeExports', ((var.get(u'exports',throw=False).typeof()==Js(u'object')) and var.get(u'exports')))
    var.put(u'freeModule', ((var.get(u'freeExports') and (var.get(u'module',throw=False).typeof()==Js(u'object'))) and var.get(u'module')))
    var.put(u'moduleExports', (var.get(u'freeModule') and PyJsStrictEq(var.get(u'freeModule').get(u'exports'),var.get(u'freeExports'))))
    var.put(u'Buffer', (var.get(u'root').get(u'Buffer') if var.get(u'moduleExports') else var.get(u'undefined')))
    @Js
    def PyJs_anonymous_3833_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return var.get(u'value').instanceof(var.get(u'Buffer'))
    PyJs_anonymous_3833_._set_name(u'anonymous')
    var.put(u'isBuffer', (var.get(u'stubFalse') if var.get(u'Buffer').neg() else PyJs_anonymous_3833_))
    var.get(u'module').put(u'exports', var.get(u'isBuffer'))
PyJs_anonymous_3832_._set_name(u'anonymous')
PyJs_Object_3834_ = Js({u'./_root':Js(422.0),u'./stubFalse':Js(488.0)})
@Js
def PyJs_anonymous_3835_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'genTag', u'exports', u'module', u'objectToString', u'require', u'isFunction', u'funcTag', u'objectProto', u'isObject'])
    @Js
    def PyJsHoisted_isFunction_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'tag', u'value'])
        var.put(u'tag', (var.get(u'objectToString').callprop(u'call', var.get(u'value')) if var.get(u'isObject')(var.get(u'value')) else Js(u'')))
        return ((var.get(u'tag')==var.get(u'funcTag')) or (var.get(u'tag')==var.get(u'genTag')))
    PyJsHoisted_isFunction_.func_name = u'isFunction'
    var.put(u'isFunction', PyJsHoisted_isFunction_)
    var.put(u'isObject', var.get(u'require')(Js(u'./isObject')))
    var.put(u'funcTag', Js(u'[object Function]'))
    var.put(u'genTag', Js(u'[object GeneratorFunction]'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'objectToString', var.get(u'objectProto').get(u'toString'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isFunction'))
PyJs_anonymous_3835_._set_name(u'anonymous')
PyJs_Object_3836_ = Js({u'./isObject':Js(467.0)})
@Js
def PyJs_anonymous_3837_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'toInteger', u'exports', u'require', u'module', u'isInteger'])
    @Js
    def PyJsHoisted_isInteger_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return ((var.get(u'value',throw=False).typeof()==Js(u'number')) and (var.get(u'value')==var.get(u'toInteger')(var.get(u'value'))))
    PyJsHoisted_isInteger_.func_name = u'isInteger'
    var.put(u'isInteger', PyJsHoisted_isInteger_)
    var.put(u'toInteger', var.get(u'require')(Js(u'./toInteger')))
    pass
    var.get(u'module').put(u'exports', var.get(u'isInteger'))
PyJs_anonymous_3837_._set_name(u'anonymous')
PyJs_Object_3838_ = Js({u'./toInteger':Js(490.0)})
@Js
def PyJs_anonymous_3839_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'MAX_SAFE_INTEGER', u'require', u'isLength', u'exports', u'module'])
    @Js
    def PyJsHoisted_isLength_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return ((((var.get(u'value',throw=False).typeof()==Js(u'number')) and (var.get(u'value')>(-Js(1.0)))) and ((var.get(u'value')%Js(1.0))==Js(0.0))) and (var.get(u'value')<=var.get(u'MAX_SAFE_INTEGER')))
    PyJsHoisted_isLength_.func_name = u'isLength'
    var.put(u'isLength', PyJsHoisted_isLength_)
    var.put(u'MAX_SAFE_INTEGER', Js(9007199254740991.0))
    pass
    var.get(u'module').put(u'exports', var.get(u'isLength'))
PyJs_anonymous_3839_._set_name(u'anonymous')
PyJs_Object_3840_ = Js({})
@Js
def PyJs_anonymous_3841_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'objectToString', u'require', u'module', u'numberTag', u'isObjectLike', u'objectProto', u'isNumber'])
    @Js
    def PyJsHoisted_isNumber_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return ((var.get(u'value',throw=False).typeof()==Js(u'number')) or (var.get(u'isObjectLike')(var.get(u'value')) and (var.get(u'objectToString').callprop(u'call', var.get(u'value'))==var.get(u'numberTag'))))
    PyJsHoisted_isNumber_.func_name = u'isNumber'
    var.put(u'isNumber', PyJsHoisted_isNumber_)
    var.put(u'isObjectLike', var.get(u'require')(Js(u'./isObjectLike')))
    var.put(u'numberTag', Js(u'[object Number]'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'objectToString', var.get(u'objectProto').get(u'toString'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isNumber'))
PyJs_anonymous_3841_._set_name(u'anonymous')
PyJs_Object_3842_ = Js({u'./isObjectLike':Js(468.0)})
@Js
def PyJs_anonymous_3843_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'isObject', u'module'])
    @Js
    def PyJsHoisted_isObject_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'type', u'value'])
        var.put(u'type', var.get(u'value',throw=False).typeof())
        return (var.get(u'value').neg().neg() and ((var.get(u'type')==Js(u'object')) or (var.get(u'type')==Js(u'function'))))
    PyJsHoisted_isObject_.func_name = u'isObject'
    var.put(u'isObject', PyJsHoisted_isObject_)
    pass
    var.get(u'module').put(u'exports', var.get(u'isObject'))
PyJs_anonymous_3843_._set_name(u'anonymous')
PyJs_Object_3844_ = Js({})
@Js
def PyJs_anonymous_3845_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isObjectLike', u'require', u'exports', u'module'])
    @Js
    def PyJsHoisted_isObjectLike_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return (var.get(u'value').neg().neg() and (var.get(u'value',throw=False).typeof()==Js(u'object')))
    PyJsHoisted_isObjectLike_.func_name = u'isObjectLike'
    var.put(u'isObjectLike', PyJsHoisted_isObjectLike_)
    pass
    var.get(u'module').put(u'exports', var.get(u'isObjectLike'))
PyJs_anonymous_3845_._set_name(u'anonymous')
PyJs_Object_3846_ = Js({})
@Js
def PyJs_anonymous_3847_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'isPlainObject', u'objectTag', u'funcToString', u'isHostObject', u'objectCtorString', u'require', u'objectToString', u'module', u'hasOwnProperty', u'isObjectLike', u'getPrototype', u'objectProto'])
    @Js
    def PyJsHoisted_isPlainObject_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value', u'Ctor', u'proto'])
        if ((var.get(u'isObjectLike')(var.get(u'value')).neg() or (var.get(u'objectToString').callprop(u'call', var.get(u'value'))!=var.get(u'objectTag'))) or var.get(u'isHostObject')(var.get(u'value'))):
            return Js(False)
        var.put(u'proto', var.get(u'getPrototype')(var.get(u'value')))
        if PyJsStrictEq(var.get(u'proto'),var.get(u"null")):
            return var.get(u'true')
        var.put(u'Ctor', (var.get(u'hasOwnProperty').callprop(u'call', var.get(u'proto'), Js(u'constructor')) and var.get(u'proto').get(u'constructor')))
        return (((var.get(u'Ctor',throw=False).typeof()==Js(u'function')) and var.get(u'Ctor').instanceof(var.get(u'Ctor'))) and (var.get(u'funcToString').callprop(u'call', var.get(u'Ctor'))==var.get(u'objectCtorString')))
    PyJsHoisted_isPlainObject_.func_name = u'isPlainObject'
    var.put(u'isPlainObject', PyJsHoisted_isPlainObject_)
    var.put(u'getPrototype', var.get(u'require')(Js(u'./_getPrototype')))
    var.put(u'isHostObject', var.get(u'require')(Js(u'./_isHostObject')))
    var.put(u'isObjectLike', var.get(u'require')(Js(u'./isObjectLike')))
    var.put(u'objectTag', Js(u'[object Object]'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'funcToString', var.get(u'Function').get(u'prototype').get(u'toString'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    var.put(u'objectCtorString', var.get(u'funcToString').callprop(u'call', var.get(u'Object')))
    var.put(u'objectToString', var.get(u'objectProto').get(u'toString'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isPlainObject'))
PyJs_anonymous_3847_._set_name(u'anonymous')
PyJs_Object_3848_ = Js({u'./_getPrototype':Js(383.0),u'./_isHostObject':Js(400.0),u'./isObjectLike':Js(468.0)})
@Js
def PyJs_anonymous_3849_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'regexpTag', u'exports', u'objectToString', u'require', u'module', u'objectProto', u'isObject', u'isRegExp'])
    @Js
    def PyJsHoisted_isRegExp_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return (var.get(u'isObject')(var.get(u'value')) and (var.get(u'objectToString').callprop(u'call', var.get(u'value'))==var.get(u'regexpTag')))
    PyJsHoisted_isRegExp_.func_name = u'isRegExp'
    var.put(u'isRegExp', PyJsHoisted_isRegExp_)
    var.put(u'isObject', var.get(u'require')(Js(u'./isObject')))
    var.put(u'regexpTag', Js(u'[object RegExp]'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'objectToString', var.get(u'objectProto').get(u'toString'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isRegExp'))
PyJs_anonymous_3849_._set_name(u'anonymous')
PyJs_Object_3850_ = Js({u'./isObject':Js(467.0)})
@Js
def PyJs_anonymous_3851_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'exports', u'isString', u'objectToString', u'require', u'stringTag', u'module', u'isObjectLike', u'objectProto'])
    @Js
    def PyJsHoisted_isString_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return ((var.get(u'value',throw=False).typeof()==Js(u'string')) or ((var.get(u'isArray')(var.get(u'value')).neg() and var.get(u'isObjectLike')(var.get(u'value'))) and (var.get(u'objectToString').callprop(u'call', var.get(u'value'))==var.get(u'stringTag'))))
    PyJsHoisted_isString_.func_name = u'isString'
    var.put(u'isString', PyJsHoisted_isString_)
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'isObjectLike', var.get(u'require')(Js(u'./isObjectLike')))
    var.put(u'stringTag', Js(u'[object String]'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'objectToString', var.get(u'objectProto').get(u'toString'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isString'))
PyJs_anonymous_3851_._set_name(u'anonymous')
PyJs_Object_3852_ = Js({u'./isArray':Js(458.0),u'./isObjectLike':Js(468.0)})
@Js
def PyJs_anonymous_3853_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'objectToString', u'require', u'module', u'isObjectLike', u'objectProto', u'isSymbol', u'symbolTag'])
    @Js
    def PyJsHoisted_isSymbol_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return ((var.get(u'value',throw=False).typeof()==Js(u'symbol')) or (var.get(u'isObjectLike')(var.get(u'value')) and (var.get(u'objectToString').callprop(u'call', var.get(u'value'))==var.get(u'symbolTag'))))
    PyJsHoisted_isSymbol_.func_name = u'isSymbol'
    var.put(u'isSymbol', PyJsHoisted_isSymbol_)
    var.put(u'isObjectLike', var.get(u'require')(Js(u'./isObjectLike')))
    var.put(u'symbolTag', Js(u'[object Symbol]'))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'objectToString', var.get(u'objectProto').get(u'toString'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isSymbol'))
PyJs_anonymous_3853_._set_name(u'anonymous')
PyJs_Object_3854_ = Js({u'./isObjectLike':Js(468.0)})
@Js
def PyJs_anonymous_3855_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'arrayTag', u'typedArrayTags', u'uint32Tag', u'arrayBufferTag', u'objectTag', u'dataViewTag', u'int8Tag', u'isObjectLike', u'errorTag', u'float64Tag', u'isLength', u'boolTag', u'funcTag', u'isTypedArray', u'float32Tag', u'argsTag', u'regexpTag', u'exports', u'dateTag', u'setTag', u'stringTag', u'int32Tag', u'module', u'mapTag', u'uint8Tag', u'require', u'objectToString', u'uint16Tag', u'weakMapTag', u'int16Tag', u'numberTag', u'objectProto', u'uint8ClampedTag'])
    @Js
    def PyJsHoisted_isTypedArray_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return ((var.get(u'isObjectLike')(var.get(u'value')) and var.get(u'isLength')(var.get(u'value').get(u'length'))) and var.get(u'typedArrayTags').get(var.get(u'objectToString').callprop(u'call', var.get(u'value'))).neg().neg())
    PyJsHoisted_isTypedArray_.func_name = u'isTypedArray'
    var.put(u'isTypedArray', PyJsHoisted_isTypedArray_)
    var.put(u'isLength', var.get(u'require')(Js(u'./isLength')))
    var.put(u'isObjectLike', var.get(u'require')(Js(u'./isObjectLike')))
    var.put(u'argsTag', Js(u'[object Arguments]'))
    var.put(u'arrayTag', Js(u'[object Array]'))
    var.put(u'boolTag', Js(u'[object Boolean]'))
    var.put(u'dateTag', Js(u'[object Date]'))
    var.put(u'errorTag', Js(u'[object Error]'))
    var.put(u'funcTag', Js(u'[object Function]'))
    var.put(u'mapTag', Js(u'[object Map]'))
    var.put(u'numberTag', Js(u'[object Number]'))
    var.put(u'objectTag', Js(u'[object Object]'))
    var.put(u'regexpTag', Js(u'[object RegExp]'))
    var.put(u'setTag', Js(u'[object Set]'))
    var.put(u'stringTag', Js(u'[object String]'))
    var.put(u'weakMapTag', Js(u'[object WeakMap]'))
    var.put(u'arrayBufferTag', Js(u'[object ArrayBuffer]'))
    var.put(u'dataViewTag', Js(u'[object DataView]'))
    var.put(u'float32Tag', Js(u'[object Float32Array]'))
    var.put(u'float64Tag', Js(u'[object Float64Array]'))
    var.put(u'int8Tag', Js(u'[object Int8Array]'))
    var.put(u'int16Tag', Js(u'[object Int16Array]'))
    var.put(u'int32Tag', Js(u'[object Int32Array]'))
    var.put(u'uint8Tag', Js(u'[object Uint8Array]'))
    var.put(u'uint8ClampedTag', Js(u'[object Uint8ClampedArray]'))
    var.put(u'uint16Tag', Js(u'[object Uint16Array]'))
    var.put(u'uint32Tag', Js(u'[object Uint32Array]'))
    PyJs_Object_3856_ = Js({})
    var.put(u'typedArrayTags', PyJs_Object_3856_)
    def PyJs_LONG_3857_(var=var):
        return var.get(u'typedArrayTags').put(var.get(u'int8Tag'), var.get(u'typedArrayTags').put(var.get(u'int16Tag'), var.get(u'typedArrayTags').put(var.get(u'int32Tag'), var.get(u'typedArrayTags').put(var.get(u'uint8Tag'), var.get(u'typedArrayTags').put(var.get(u'uint8ClampedTag'), var.get(u'typedArrayTags').put(var.get(u'uint16Tag'), var.get(u'typedArrayTags').put(var.get(u'uint32Tag'), var.get(u'true'))))))))
    var.get(u'typedArrayTags').put(var.get(u'float32Tag'), var.get(u'typedArrayTags').put(var.get(u'float64Tag'), PyJs_LONG_3857_()))
    def PyJs_LONG_3859_(var=var):
        def PyJs_LONG_3858_(var=var):
            return var.get(u'typedArrayTags').put(var.get(u'funcTag'), var.get(u'typedArrayTags').put(var.get(u'mapTag'), var.get(u'typedArrayTags').put(var.get(u'numberTag'), var.get(u'typedArrayTags').put(var.get(u'objectTag'), var.get(u'typedArrayTags').put(var.get(u'regexpTag'), var.get(u'typedArrayTags').put(var.get(u'setTag'), var.get(u'typedArrayTags').put(var.get(u'stringTag'), var.get(u'typedArrayTags').put(var.get(u'weakMapTag'), Js(False)))))))))
        return var.get(u'typedArrayTags').put(var.get(u'argsTag'), var.get(u'typedArrayTags').put(var.get(u'arrayTag'), var.get(u'typedArrayTags').put(var.get(u'arrayBufferTag'), var.get(u'typedArrayTags').put(var.get(u'boolTag'), var.get(u'typedArrayTags').put(var.get(u'dataViewTag'), var.get(u'typedArrayTags').put(var.get(u'dateTag'), var.get(u'typedArrayTags').put(var.get(u'errorTag'), PyJs_LONG_3858_())))))))
    PyJs_LONG_3859_()
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'objectToString', var.get(u'objectProto').get(u'toString'))
    pass
    var.get(u'module').put(u'exports', var.get(u'isTypedArray'))
PyJs_anonymous_3855_._set_name(u'anonymous')
PyJs_Object_3860_ = Js({u'./isLength':Js(465.0),u'./isObjectLike':Js(468.0)})
@Js
def PyJs_anonymous_3861_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'indexKeys', u'exports', u'baseHas', u'baseKeys', u'keys', u'isArrayLike', u'require', u'isIndex', u'module', u'isPrototype'])
    @Js
    def PyJsHoisted_keys_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'skipIndexes', u'object', u'indexes', u'length', u'result', u'key', u'isProto'])
        var.put(u'isProto', var.get(u'isPrototype')(var.get(u'object')))
        if (var.get(u'isProto') or var.get(u'isArrayLike')(var.get(u'object'))).neg():
            return var.get(u'baseKeys')(var.get(u'object'))
        var.put(u'indexes', var.get(u'indexKeys')(var.get(u'object')))
        var.put(u'skipIndexes', var.get(u'indexes').neg().neg())
        var.put(u'result', (var.get(u'indexes') or Js([])))
        var.put(u'length', var.get(u'result').get(u'length'))
        for PyJsTemp in var.get(u'object'):
            var.put(u'key', PyJsTemp)
            if ((var.get(u'baseHas')(var.get(u'object'), var.get(u'key')) and (var.get(u'skipIndexes') and ((var.get(u'key')==Js(u'length')) or var.get(u'isIndex')(var.get(u'key'), var.get(u'length')))).neg()) and (var.get(u'isProto') and (var.get(u'key')==Js(u'constructor'))).neg()):
                var.get(u'result').callprop(u'push', var.get(u'key'))
        return var.get(u'result')
    PyJsHoisted_keys_.func_name = u'keys'
    var.put(u'keys', PyJsHoisted_keys_)
    var.put(u'baseHas', var.get(u'require')(Js(u'./_baseHas')))
    var.put(u'baseKeys', var.get(u'require')(Js(u'./_baseKeys')))
    var.put(u'indexKeys', var.get(u'require')(Js(u'./_indexKeys')))
    var.put(u'isArrayLike', var.get(u'require')(Js(u'./isArrayLike')))
    var.put(u'isIndex', var.get(u'require')(Js(u'./_isIndex')))
    var.put(u'isPrototype', var.get(u'require')(Js(u'./_isPrototype')))
    pass
    var.get(u'module').put(u'exports', var.get(u'keys'))
PyJs_anonymous_3861_._set_name(u'anonymous')
PyJs_Object_3862_ = Js({u'./_baseHas':Js(323.0),u'./_baseKeys':Js(332.0),u'./_indexKeys':Js(393.0),u'./_isIndex':Js(401.0),u'./_isPrototype':Js(406.0),u'./isArrayLike':Js(459.0)})
@Js
def PyJs_anonymous_3863_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'indexKeys', u'exports', u'baseKeysIn', u'require', u'isIndex', u'module', u'keysIn', u'isPrototype', u'hasOwnProperty', u'objectProto'])
    @Js
    def PyJsHoisted_keysIn_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'skipIndexes', u'index', u'object', u'indexes', u'length', u'result', u'key', u'props', u'isProto', u'propsLength'])
        var.put(u'index', (-Js(1.0)))
        var.put(u'isProto', var.get(u'isPrototype')(var.get(u'object')))
        var.put(u'props', var.get(u'baseKeysIn')(var.get(u'object')))
        var.put(u'propsLength', var.get(u'props').get(u'length'))
        var.put(u'indexes', var.get(u'indexKeys')(var.get(u'object')))
        var.put(u'skipIndexes', var.get(u'indexes').neg().neg())
        var.put(u'result', (var.get(u'indexes') or Js([])))
        var.put(u'length', var.get(u'result').get(u'length'))
        while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'propsLength')):
            var.put(u'key', var.get(u'props').get(var.get(u'index')))
            if ((var.get(u'skipIndexes') and ((var.get(u'key')==Js(u'length')) or var.get(u'isIndex')(var.get(u'key'), var.get(u'length')))).neg() and ((var.get(u'key')==Js(u'constructor')) and (var.get(u'isProto') or var.get(u'hasOwnProperty').callprop(u'call', var.get(u'object'), var.get(u'key')).neg())).neg()):
                var.get(u'result').callprop(u'push', var.get(u'key'))
        return var.get(u'result')
    PyJsHoisted_keysIn_.func_name = u'keysIn'
    var.put(u'keysIn', PyJsHoisted_keysIn_)
    var.put(u'baseKeysIn', var.get(u'require')(Js(u'./_baseKeysIn')))
    var.put(u'indexKeys', var.get(u'require')(Js(u'./_indexKeys')))
    var.put(u'isIndex', var.get(u'require')(Js(u'./_isIndex')))
    var.put(u'isPrototype', var.get(u'require')(Js(u'./_isPrototype')))
    var.put(u'objectProto', var.get(u'Object').get(u'prototype'))
    var.put(u'hasOwnProperty', var.get(u'objectProto').get(u'hasOwnProperty'))
    pass
    var.get(u'module').put(u'exports', var.get(u'keysIn'))
PyJs_anonymous_3863_._set_name(u'anonymous')
PyJs_Object_3864_ = Js({u'./_baseKeysIn':Js(333.0),u'./_indexKeys':Js(393.0),u'./_isIndex':Js(401.0),u'./_isPrototype':Js(406.0)})
@Js
def PyJs_anonymous_3865_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'map', u'exports', u'require', u'arrayMap', u'baseIteratee', u'module', u'baseMap'])
    @Js
    def PyJsHoisted_map_(collection, iteratee, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'collection':collection, u'iteratee':iteratee}, var)
        var.registers([u'collection', u'func', u'iteratee'])
        var.put(u'func', (var.get(u'arrayMap') if var.get(u'isArray')(var.get(u'collection')) else var.get(u'baseMap')))
        return var.get(u'func')(var.get(u'collection'), var.get(u'baseIteratee')(var.get(u'iteratee'), Js(3.0)))
    PyJsHoisted_map_.func_name = u'map'
    var.put(u'map', PyJsHoisted_map_)
    var.put(u'arrayMap', var.get(u'require')(Js(u'./_arrayMap')))
    var.put(u'baseIteratee', var.get(u'require')(Js(u'./_baseIteratee')))
    var.put(u'baseMap', var.get(u'require')(Js(u'./_baseMap')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    pass
    var.get(u'module').put(u'exports', var.get(u'map'))
PyJs_anonymous_3865_._set_name(u'anonymous')
PyJs_Object_3866_ = Js({u'./_arrayMap':Js(304.0),u'./_baseIteratee':Js(331.0),u'./_baseMap':Js(334.0),u'./isArray':Js(458.0)})
@Js
def PyJs_anonymous_3867_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'MapCache', u'memoize', u'FUNC_ERROR_TEXT'])
    @Js
    def PyJsHoisted_memoize_(func, resolver, this, arguments, var=var):
        var = Scope({u'this':this, u'resolver':resolver, u'func':func, u'arguments':arguments}, var)
        var.registers([u'memoized', u'resolver', u'func'])
        if ((var.get(u'func',throw=False).typeof()!=Js(u'function')) or (var.get(u'resolver') and (var.get(u'resolver',throw=False).typeof()!=Js(u'function')))):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(var.get(u'FUNC_ERROR_TEXT')))
            raise PyJsTempException
        @Js
        def PyJs_anonymous_3868_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'cache', u'args', u'result', u'key'])
            var.put(u'args', var.get(u'arguments'))
            var.put(u'key', (var.get(u'resolver').callprop(u'apply', var.get(u"this"), var.get(u'args')) if var.get(u'resolver') else var.get(u'args').get(u'0')))
            var.put(u'cache', var.get(u'memoized').get(u'cache'))
            if var.get(u'cache').callprop(u'has', var.get(u'key')):
                return var.get(u'cache').callprop(u'get', var.get(u'key'))
            var.put(u'result', var.get(u'func').callprop(u'apply', var.get(u"this"), var.get(u'args')))
            var.get(u'memoized').put(u'cache', var.get(u'cache').callprop(u'set', var.get(u'key'), var.get(u'result')))
            return var.get(u'result')
        PyJs_anonymous_3868_._set_name(u'anonymous')
        var.put(u'memoized', PyJs_anonymous_3868_)
        var.get(u'memoized').put(u'cache', (var.get(u'memoize').get(u'Cache') or var.get(u'MapCache')).create())
        return var.get(u'memoized')
    PyJsHoisted_memoize_.func_name = u'memoize'
    var.put(u'memoize', PyJsHoisted_memoize_)
    var.put(u'MapCache', var.get(u'require')(Js(u'./_MapCache')))
    var.put(u'FUNC_ERROR_TEXT', Js(u'Expected a function'))
    pass
    var.get(u'memoize').put(u'Cache', var.get(u'MapCache'))
    var.get(u'module').put(u'exports', var.get(u'memoize'))
PyJs_anonymous_3867_._set_name(u'anonymous')
PyJs_Object_3869_ = Js({u'./_MapCache':Js(289.0)})
@Js
def PyJs_anonymous_3870_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'mergeWith', u'require', u'module', u'baseMerge', u'createAssigner'])
    var.put(u'baseMerge', var.get(u'require')(Js(u'./_baseMerge')))
    var.put(u'createAssigner', var.get(u'require')(Js(u'./_createAssigner')))
    @Js
    def PyJs_anonymous_3871_(object, source, srcIndex, customizer, this, arguments, var=var):
        var = Scope({u'source':source, u'customizer':customizer, u'arguments':arguments, u'srcIndex':srcIndex, u'this':this, u'object':object}, var)
        var.registers([u'source', u'object', u'srcIndex', u'customizer'])
        var.get(u'baseMerge')(var.get(u'object'), var.get(u'source'), var.get(u'srcIndex'), var.get(u'customizer'))
    PyJs_anonymous_3871_._set_name(u'anonymous')
    var.put(u'mergeWith', var.get(u'createAssigner')(PyJs_anonymous_3871_))
    var.get(u'module').put(u'exports', var.get(u'mergeWith'))
PyJs_anonymous_3870_._set_name(u'anonymous')
PyJs_Object_3872_ = Js({u'./_baseMerge':Js(337.0),u'./_createAssigner':Js(370.0)})
@Js
def PyJs_anonymous_3873_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'noop', u'exports', u'module'])
    @Js
    def PyJsHoisted_noop_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        pass
    PyJsHoisted_noop_.func_name = u'noop'
    var.put(u'noop', PyJsHoisted_noop_)
    pass
    var.get(u'module').put(u'exports', var.get(u'noop'))
PyJs_anonymous_3873_._set_name(u'anonymous')
PyJs_Object_3874_ = Js({})
@Js
def PyJs_anonymous_3875_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'basePropertyDeep', u'baseProperty', u'toKey', u'isKey', u'require', u'exports', u'module', u'property'])
    @Js
    def PyJsHoisted_property_(path, this, arguments, var=var):
        var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
        var.registers([u'path'])
        return (var.get(u'baseProperty')(var.get(u'toKey')(var.get(u'path'))) if var.get(u'isKey')(var.get(u'path')) else var.get(u'basePropertyDeep')(var.get(u'path')))
    PyJsHoisted_property_.func_name = u'property'
    var.put(u'property', PyJsHoisted_property_)
    var.put(u'baseProperty', var.get(u'require')(Js(u'./_baseProperty')))
    var.put(u'basePropertyDeep', var.get(u'require')(Js(u'./_basePropertyDeep')))
    var.put(u'isKey', var.get(u'require')(Js(u'./_isKey')))
    var.put(u'toKey', var.get(u'require')(Js(u'./_toKey')))
    pass
    var.get(u'module').put(u'exports', var.get(u'property'))
PyJs_anonymous_3875_._set_name(u'anonymous')
PyJs_Object_3876_ = Js({u'./_baseProperty':Js(340.0),u'./_basePropertyDeep':Js(341.0),u'./_isKey':Js(403.0),u'./_toKey':Js(433.0)})
@Js
def PyJs_anonymous_3877_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'pull', u'exports', u'require', u'module', u'rest', u'pullAll'])
    var.put(u'pullAll', var.get(u'require')(Js(u'./pullAll')))
    var.put(u'rest', var.get(u'require')(Js(u'./rest')))
    var.put(u'pull', var.get(u'rest')(var.get(u'pullAll')))
    var.get(u'module').put(u'exports', var.get(u'pull'))
PyJs_anonymous_3877_._set_name(u'anonymous')
PyJs_Object_3878_ = Js({u'./pullAll':Js(482.0),u'./rest':Js(484.0)})
@Js
def PyJs_anonymous_3879_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'pullAll', u'require', u'basePullAll', u'exports', u'module'])
    @Js
    def PyJsHoisted_pullAll_(array, values, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'values':values, u'arguments':arguments}, var)
        var.registers([u'array', u'values'])
        return (var.get(u'basePullAll')(var.get(u'array'), var.get(u'values')) if (((var.get(u'array') and var.get(u'array').get(u'length')) and var.get(u'values')) and var.get(u'values').get(u'length')) else var.get(u'array'))
    PyJsHoisted_pullAll_.func_name = u'pullAll'
    var.put(u'pullAll', PyJsHoisted_pullAll_)
    var.put(u'basePullAll', var.get(u'require')(Js(u'./_basePullAll')))
    pass
    var.get(u'module').put(u'exports', var.get(u'pullAll'))
PyJs_anonymous_3879_._set_name(u'anonymous')
PyJs_Object_3880_ = Js({u'./_basePullAll':Js(342.0)})
@Js
def PyJs_anonymous_3881_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'repeat', u'baseRepeat', u'toInteger', u'require', u'module', u'toString', u'isIterateeCall'])
    @Js
    def PyJsHoisted_repeat_(string, n, guard, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'guard':guard, u'string':string, u'n':n}, var)
        var.registers([u'guard', u'string', u'n'])
        if (var.get(u'isIterateeCall')(var.get(u'string'), var.get(u'n'), var.get(u'guard')) if var.get(u'guard') else PyJsStrictEq(var.get(u'n'),var.get(u'undefined'))):
            var.put(u'n', Js(1.0))
        else:
            var.put(u'n', var.get(u'toInteger')(var.get(u'n')))
        return var.get(u'baseRepeat')(var.get(u'toString')(var.get(u'string')), var.get(u'n'))
    PyJsHoisted_repeat_.func_name = u'repeat'
    var.put(u'repeat', PyJsHoisted_repeat_)
    var.put(u'baseRepeat', var.get(u'require')(Js(u'./_baseRepeat')))
    var.put(u'isIterateeCall', var.get(u'require')(Js(u'./_isIterateeCall')))
    var.put(u'toInteger', var.get(u'require')(Js(u'./toInteger')))
    var.put(u'toString', var.get(u'require')(Js(u'./toString')))
    pass
    var.get(u'module').put(u'exports', var.get(u'repeat'))
PyJs_anonymous_3881_._set_name(u'anonymous')
PyJs_Object_3882_ = Js({u'./_baseRepeat':Js(343.0),u'./_isIterateeCall':Js(402.0),u'./toInteger':Js(490.0),u'./toString':Js(493.0)})
@Js
def PyJs_anonymous_3883_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'nativeMax', u'toInteger', u'rest', u'module', u'apply', u'require', u'FUNC_ERROR_TEXT'])
    @Js
    def PyJsHoisted_rest_(func, start, this, arguments, var=var):
        var = Scope({u'this':this, u'start':start, u'arguments':arguments, u'func':func}, var)
        var.registers([u'start', u'func'])
        if (var.get(u'func',throw=False).typeof()!=Js(u'function')):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(var.get(u'FUNC_ERROR_TEXT')))
            raise PyJsTempException
        var.put(u'start', var.get(u'nativeMax')(((var.get(u'func').get(u'length')-Js(1.0)) if PyJsStrictEq(var.get(u'start'),var.get(u'undefined')) else var.get(u'toInteger')(var.get(u'start'))), Js(0.0)))
        @Js
        def PyJs_anonymous_3884_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'otherArgs', u'index', u'length', u'args', u'array'])
            var.put(u'args', var.get(u'arguments'))
            var.put(u'index', (-Js(1.0)))
            var.put(u'length', var.get(u'nativeMax')((var.get(u'args').get(u'length')-var.get(u'start')), Js(0.0)))
            var.put(u'array', var.get(u'Array')(var.get(u'length')))
            while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
                var.get(u'array').put(var.get(u'index'), var.get(u'args').get((var.get(u'start')+var.get(u'index'))))
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'start'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(0.0)):
                    SWITCHED = True
                    return var.get(u'func').callprop(u'call', var.get(u"this"), var.get(u'array'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(1.0)):
                    SWITCHED = True
                    return var.get(u'func').callprop(u'call', var.get(u"this"), var.get(u'args').get(u'0'), var.get(u'array'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(2.0)):
                    SWITCHED = True
                    return var.get(u'func').callprop(u'call', var.get(u"this"), var.get(u'args').get(u'0'), var.get(u'args').get(u'1'), var.get(u'array'))
                SWITCHED = True
                break
            var.put(u'otherArgs', var.get(u'Array')((var.get(u'start')+Js(1.0))))
            var.put(u'index', (-Js(1.0)))
            while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'start')):
                var.get(u'otherArgs').put(var.get(u'index'), var.get(u'args').get(var.get(u'index')))
            var.get(u'otherArgs').put(var.get(u'start'), var.get(u'array'))
            return var.get(u'apply')(var.get(u'func'), var.get(u"this"), var.get(u'otherArgs'))
        PyJs_anonymous_3884_._set_name(u'anonymous')
        return PyJs_anonymous_3884_
    PyJsHoisted_rest_.func_name = u'rest'
    var.put(u'rest', PyJsHoisted_rest_)
    var.put(u'apply', var.get(u'require')(Js(u'./_apply')))
    var.put(u'toInteger', var.get(u'require')(Js(u'./toInteger')))
    var.put(u'FUNC_ERROR_TEXT', Js(u'Expected a function'))
    var.put(u'nativeMax', var.get(u'Math').get(u'max'))
    pass
    var.get(u'module').put(u'exports', var.get(u'rest'))
PyJs_anonymous_3883_._set_name(u'anonymous')
PyJs_Object_3885_ = Js({u'./_apply':Js(300.0),u'./toInteger':Js(490.0)})
@Js
def PyJs_anonymous_3886_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'isArray', u'exports', u'module', u'baseFlatten', u'require', u'baseOrderBy', u'rest', u'sortBy', u'isFlattenableIteratee', u'isIterateeCall'])
    var.put(u'baseFlatten', var.get(u'require')(Js(u'./_baseFlatten')))
    var.put(u'baseOrderBy', var.get(u'require')(Js(u'./_baseOrderBy')))
    var.put(u'isArray', var.get(u'require')(Js(u'./isArray')))
    var.put(u'isFlattenableIteratee', var.get(u'require')(Js(u'./_isFlattenableIteratee')))
    var.put(u'isIterateeCall', var.get(u'require')(Js(u'./_isIterateeCall')))
    var.put(u'rest', var.get(u'require')(Js(u'./rest')))
    @Js
    def PyJs_anonymous_3887_(collection, iteratees, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'collection':collection, u'iteratees':iteratees}, var)
        var.registers([u'length', u'collection', u'iteratees'])
        if (var.get(u'collection')==var.get(u"null")):
            return Js([])
        var.put(u'length', var.get(u'iteratees').get(u'length'))
        if ((var.get(u'length')>Js(1.0)) and var.get(u'isIterateeCall')(var.get(u'collection'), var.get(u'iteratees').get(u'0'), var.get(u'iteratees').get(u'1'))):
            var.put(u'iteratees', Js([]))
        else:
            if ((var.get(u'length')>Js(2.0)) and var.get(u'isIterateeCall')(var.get(u'iteratees').get(u'0'), var.get(u'iteratees').get(u'1'), var.get(u'iteratees').get(u'2'))):
                var.put(u'iteratees', Js([var.get(u'iteratees').get(u'0')]))
        var.put(u'iteratees', (var.get(u'iteratees').get(u'0') if ((var.get(u'iteratees').get(u'length')==Js(1.0)) and var.get(u'isArray')(var.get(u'iteratees').get(u'0'))) else var.get(u'baseFlatten')(var.get(u'iteratees'), Js(1.0), var.get(u'isFlattenableIteratee'))))
        return var.get(u'baseOrderBy')(var.get(u'collection'), var.get(u'iteratees'), Js([]))
    PyJs_anonymous_3887_._set_name(u'anonymous')
    var.put(u'sortBy', var.get(u'rest')(PyJs_anonymous_3887_))
    var.get(u'module').put(u'exports', var.get(u'sortBy'))
PyJs_anonymous_3886_._set_name(u'anonymous')
PyJs_Object_3888_ = Js({u'./_baseFlatten':Js(318.0),u'./_baseOrderBy':Js(339.0),u'./_isFlattenableIteratee':Js(399.0),u'./_isIterateeCall':Js(402.0),u'./isArray':Js(458.0),u'./rest':Js(484.0)})
@Js
def PyJs_anonymous_3889_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'startsWith', u'exports', u'toInteger', u'baseToString', u'baseClamp', u'module', u'toString', u'require'])
    @Js
    def PyJsHoisted_startsWith_(string, target, position, this, arguments, var=var):
        var = Scope({u'this':this, u'position':position, u'string':string, u'arguments':arguments, u'target':target}, var)
        var.registers([u'position', u'string', u'target'])
        var.put(u'string', var.get(u'toString')(var.get(u'string')))
        var.put(u'position', var.get(u'baseClamp')(var.get(u'toInteger')(var.get(u'position')), Js(0.0), var.get(u'string').get(u'length')))
        return (var.get(u'string').callprop(u'lastIndexOf', var.get(u'baseToString')(var.get(u'target')), var.get(u'position'))==var.get(u'position'))
    PyJsHoisted_startsWith_.func_name = u'startsWith'
    var.put(u'startsWith', PyJsHoisted_startsWith_)
    var.put(u'baseClamp', var.get(u'require')(Js(u'./_baseClamp')))
    var.put(u'baseToString', var.get(u'require')(Js(u'./_baseToString')))
    var.put(u'toInteger', var.get(u'require')(Js(u'./toInteger')))
    var.put(u'toString', var.get(u'require')(Js(u'./toString')))
    pass
    var.get(u'module').put(u'exports', var.get(u'startsWith'))
PyJs_anonymous_3889_._set_name(u'anonymous')
PyJs_Object_3890_ = Js({u'./_baseClamp':Js(313.0),u'./_baseToString':Js(347.0),u'./toInteger':Js(490.0),u'./toString':Js(493.0)})
@Js
def PyJs_anonymous_3891_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'stubArray', u'exports', u'require', u'module'])
    @Js
    def PyJsHoisted_stubArray_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return Js([])
    PyJsHoisted_stubArray_.func_name = u'stubArray'
    var.put(u'stubArray', PyJsHoisted_stubArray_)
    pass
    var.get(u'module').put(u'exports', var.get(u'stubArray'))
PyJs_anonymous_3891_._set_name(u'anonymous')
PyJs_Object_3892_ = Js({})
@Js
def PyJs_anonymous_3893_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'stubFalse', u'exports', u'module'])
    @Js
    def PyJsHoisted_stubFalse_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return Js(False)
    PyJsHoisted_stubFalse_.func_name = u'stubFalse'
    var.put(u'stubFalse', PyJsHoisted_stubFalse_)
    pass
    var.get(u'module').put(u'exports', var.get(u'stubFalse'))
PyJs_anonymous_3893_._set_name(u'anonymous')
PyJs_Object_3894_ = Js({})
@Js
def PyJs_anonymous_3895_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'INFINITY', u'MAX_INTEGER', u'module', u'toNumber', u'toFinite', u'require'])
    @Js
    def PyJsHoisted_toFinite_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value', u'sign'])
        if var.get(u'value').neg():
            return (var.get(u'value') if PyJsStrictEq(var.get(u'value'),Js(0.0)) else Js(0.0))
        var.put(u'value', var.get(u'toNumber')(var.get(u'value')))
        if (PyJsStrictEq(var.get(u'value'),var.get(u'INFINITY')) or PyJsStrictEq(var.get(u'value'),(-var.get(u'INFINITY')))):
            var.put(u'sign', ((-Js(1.0)) if (var.get(u'value')<Js(0.0)) else Js(1.0)))
            return (var.get(u'sign')*var.get(u'MAX_INTEGER'))
        return (var.get(u'value') if PyJsStrictEq(var.get(u'value'),var.get(u'value')) else Js(0.0))
    PyJsHoisted_toFinite_.func_name = u'toFinite'
    var.put(u'toFinite', PyJsHoisted_toFinite_)
    var.put(u'toNumber', var.get(u'require')(Js(u'./toNumber')))
    var.put(u'INFINITY', (Js(1.0)/Js(0.0)))
    var.put(u'MAX_INTEGER', Js(1.7976931348623157e+308))
    pass
    var.get(u'module').put(u'exports', var.get(u'toFinite'))
PyJs_anonymous_3895_._set_name(u'anonymous')
PyJs_Object_3896_ = Js({u'./toNumber':Js(491.0)})
@Js
def PyJs_anonymous_3897_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'module', u'toInteger', u'exports', u'require', u'toFinite'])
    @Js
    def PyJsHoisted_toInteger_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'remainder', u'result', u'value'])
        var.put(u'result', var.get(u'toFinite')(var.get(u'value')))
        var.put(u'remainder', (var.get(u'result')%Js(1.0)))
        return (((var.get(u'result')-var.get(u'remainder')) if var.get(u'remainder') else var.get(u'result')) if PyJsStrictEq(var.get(u'result'),var.get(u'result')) else Js(0.0))
    PyJsHoisted_toInteger_.func_name = u'toInteger'
    var.put(u'toInteger', PyJsHoisted_toInteger_)
    var.put(u'toFinite', var.get(u'require')(Js(u'./toFinite')))
    pass
    var.get(u'module').put(u'exports', var.get(u'toInteger'))
PyJs_anonymous_3897_._set_name(u'anonymous')
PyJs_Object_3898_ = Js({u'./toFinite':Js(489.0)})
@Js
def PyJs_anonymous_3899_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'reIsBinary', u'exports', u'reIsBadHex', u'freeParseInt', u'NAN', u'require', u'module', u'toNumber', u'reTrim', u'reIsOctal', u'isFunction', u'isSymbol', u'isObject'])
    @Js
    def PyJsHoisted_toNumber_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'other', u'value', u'isBinary'])
        if (var.get(u'value',throw=False).typeof()==Js(u'number')):
            return var.get(u'value')
        if var.get(u'isSymbol')(var.get(u'value')):
            return var.get(u'NAN')
        if var.get(u'isObject')(var.get(u'value')):
            var.put(u'other', (var.get(u'value').callprop(u'valueOf') if var.get(u'isFunction')(var.get(u'value').get(u'valueOf')) else var.get(u'value')))
            var.put(u'value', ((var.get(u'other')+Js(u'')) if var.get(u'isObject')(var.get(u'other')) else var.get(u'other')))
        if (var.get(u'value',throw=False).typeof()!=Js(u'string')):
            return (var.get(u'value') if PyJsStrictEq(var.get(u'value'),Js(0.0)) else (+var.get(u'value')))
        var.put(u'value', var.get(u'value').callprop(u'replace', var.get(u'reTrim'), Js(u'')))
        var.put(u'isBinary', var.get(u'reIsBinary').callprop(u'test', var.get(u'value')))
        return (var.get(u'freeParseInt')(var.get(u'value').callprop(u'slice', Js(2.0)), (Js(2.0) if var.get(u'isBinary') else Js(8.0))) if (var.get(u'isBinary') or var.get(u'reIsOctal').callprop(u'test', var.get(u'value'))) else (var.get(u'NAN') if var.get(u'reIsBadHex').callprop(u'test', var.get(u'value')) else (+var.get(u'value'))))
    PyJsHoisted_toNumber_.func_name = u'toNumber'
    var.put(u'toNumber', PyJsHoisted_toNumber_)
    var.put(u'isFunction', var.get(u'require')(Js(u'./isFunction')))
    var.put(u'isObject', var.get(u'require')(Js(u'./isObject')))
    var.put(u'isSymbol', var.get(u'require')(Js(u'./isSymbol')))
    var.put(u'NAN', (Js(0.0)/Js(0.0)))
    var.put(u'reTrim', JsRegExp(u'/^\\s+|\\s+$/g'))
    var.put(u'reIsBadHex', JsRegExp(u'/^[-+]0x[0-9a-f]+$/i'))
    var.put(u'reIsBinary', JsRegExp(u'/^0b[01]+$/i'))
    var.put(u'reIsOctal', JsRegExp(u'/^0o[0-7]+$/i'))
    var.put(u'freeParseInt', var.get(u'parseInt'))
    pass
    var.get(u'module').put(u'exports', var.get(u'toNumber'))
PyJs_anonymous_3899_._set_name(u'anonymous')
PyJs_Object_3900_ = Js({u'./isFunction':Js(463.0),u'./isObject':Js(467.0),u'./isSymbol':Js(472.0)})
@Js
def PyJs_anonymous_3901_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'keysIn', u'toPlainObject', u'copyObject'])
    @Js
    def PyJsHoisted_toPlainObject_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return var.get(u'copyObject')(var.get(u'value'), var.get(u'keysIn')(var.get(u'value')))
    PyJsHoisted_toPlainObject_.func_name = u'toPlainObject'
    var.put(u'toPlainObject', PyJsHoisted_toPlainObject_)
    var.put(u'copyObject', var.get(u'require')(Js(u'./_copyObject')))
    var.put(u'keysIn', var.get(u'require')(Js(u'./keysIn')))
    pass
    var.get(u'module').put(u'exports', var.get(u'toPlainObject'))
PyJs_anonymous_3901_._set_name(u'anonymous')
PyJs_Object_3902_ = Js({u'./_copyObject':Js(367.0),u'./keysIn':Js(475.0)})
@Js
def PyJs_anonymous_3903_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'baseToString', u'toString', u'exports', u'module'])
    @Js
    def PyJsHoisted_toString_(value, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
        var.registers([u'value'])
        return (Js(u'') if (var.get(u'value')==var.get(u"null")) else var.get(u'baseToString')(var.get(u'value')))
    PyJsHoisted_toString_.func_name = u'toString'
    var.put(u'toString', PyJsHoisted_toString_)
    var.put(u'baseToString', var.get(u'require')(Js(u'./_baseToString')))
    pass
    var.get(u'module').put(u'exports', var.get(u'toString'))
PyJs_anonymous_3903_._set_name(u'anonymous')
PyJs_Object_3904_ = Js({u'./_baseToString':Js(347.0)})
@Js
def PyJs_anonymous_3905_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'trimEnd', u'require', u'baseToString', u'module', u'reTrimEnd', u'toString', u'stringToArray', u'castSlice', u'charsEndIndex'])
    @Js
    def PyJsHoisted_trimEnd_(string, chars, guard, this, arguments, var=var):
        var = Scope({u'this':this, u'chars':chars, u'string':string, u'guard':guard, u'arguments':arguments}, var)
        var.registers([u'chars', u'guard', u'end', u'string', u'strSymbols'])
        var.put(u'string', var.get(u'toString')(var.get(u'string')))
        if (var.get(u'string') and (var.get(u'guard') or PyJsStrictEq(var.get(u'chars'),var.get(u'undefined')))):
            return var.get(u'string').callprop(u'replace', var.get(u'reTrimEnd'), Js(u''))
        if (var.get(u'string').neg() or var.put(u'chars', var.get(u'baseToString')(var.get(u'chars'))).neg()):
            return var.get(u'string')
        var.put(u'strSymbols', var.get(u'stringToArray')(var.get(u'string')))
        var.put(u'end', (var.get(u'charsEndIndex')(var.get(u'strSymbols'), var.get(u'stringToArray')(var.get(u'chars')))+Js(1.0)))
        return var.get(u'castSlice')(var.get(u'strSymbols'), Js(0.0), var.get(u'end')).callprop(u'join', Js(u''))
    PyJsHoisted_trimEnd_.func_name = u'trimEnd'
    var.put(u'trimEnd', PyJsHoisted_trimEnd_)
    var.put(u'baseToString', var.get(u'require')(Js(u'./_baseToString')))
    var.put(u'castSlice', var.get(u'require')(Js(u'./_castSlice')))
    var.put(u'charsEndIndex', var.get(u'require')(Js(u'./_charsEndIndex')))
    var.put(u'stringToArray', var.get(u'require')(Js(u'./_stringToArray')))
    var.put(u'toString', var.get(u'require')(Js(u'./toString')))
    var.put(u'reTrimEnd', JsRegExp(u'/\\s+$/'))
    pass
    var.get(u'module').put(u'exports', var.get(u'trimEnd'))
PyJs_anonymous_3905_._set_name(u'anonymous')
PyJs_Object_3906_ = Js({u'./_baseToString':Js(347.0),u'./_castSlice':Js(353.0),u'./_charsEndIndex':Js(354.0),u'./_stringToArray':Js(431.0),u'./toString':Js(493.0)})
@Js
def PyJs_anonymous_3907_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'baseUniq', u'require', u'uniq', u'exports', u'module'])
    @Js
    def PyJsHoisted_uniq_(array, this, arguments, var=var):
        var = Scope({u'this':this, u'array':array, u'arguments':arguments}, var)
        var.registers([u'array'])
        return (var.get(u'baseUniq')(var.get(u'array')) if (var.get(u'array') and var.get(u'array').get(u'length')) else Js([]))
    PyJsHoisted_uniq_.func_name = u'uniq'
    var.put(u'uniq', PyJsHoisted_uniq_)
    var.put(u'baseUniq', var.get(u'require')(Js(u'./_baseUniq')))
    pass
    var.get(u'module').put(u'exports', var.get(u'uniq'))
PyJs_anonymous_3907_._set_name(u'anonymous')
PyJs_Object_3908_ = Js({u'./_baseUniq':Js(349.0)})
@Js
def PyJs_anonymous_3909_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'keys', u'require', u'module', u'baseValues', u'values'])
    @Js
    def PyJsHoisted_values_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'object'])
        return (var.get(u'baseValues')(var.get(u'object'), var.get(u'keys')(var.get(u'object'))) if var.get(u'object') else Js([]))
    PyJsHoisted_values_.func_name = u'values'
    var.put(u'values', PyJsHoisted_values_)
    var.put(u'baseValues', var.get(u'require')(Js(u'./_baseValues')))
    var.put(u'keys', var.get(u'require')(Js(u'./keys')))
    pass
    var.get(u'module').put(u'exports', var.get(u'values'))
PyJs_anonymous_3909_._set_name(u'anonymous')
PyJs_Object_3910_ = Js({u'./_baseValues':Js(350.0),u'./keys':Js(474.0)})
@Js
def PyJs_anonymous_3911_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'short', u'd', u'h', u'require', u'm', u'long', u'parse', u's', u'module', u'y', u'plural'])
    @Js
    def PyJsHoisted_parse_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'type', u'str', u'match', u'n'])
        var.put(u'str', (Js(u'')+var.get(u'str')))
        if (var.get(u'str').get(u'length')>Js(10000.0)):
            return var.get('undefined')
        var.put(u'match', JsRegExp(u'/^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i').callprop(u'exec', var.get(u'str')))
        if var.get(u'match').neg():
            return var.get('undefined')
        var.put(u'n', var.get(u'parseFloat')(var.get(u'match').get(u'1')))
        var.put(u'type', (var.get(u'match').get(u'2') or Js(u'ms')).callprop(u'toLowerCase'))
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'type'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'years')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'year')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'yrs')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'yr')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'y')):
                SWITCHED = True
                return (var.get(u'n')*var.get(u'y'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'days')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'day')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'd')):
                SWITCHED = True
                return (var.get(u'n')*var.get(u'd'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'hours')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'hour')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'hrs')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'hr')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'h')):
                SWITCHED = True
                return (var.get(u'n')*var.get(u'h'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'minutes')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'minute')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'mins')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'min')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'm')):
                SWITCHED = True
                return (var.get(u'n')*var.get(u'm'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'seconds')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'second')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'secs')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'sec')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u's')):
                SWITCHED = True
                return (var.get(u'n')*var.get(u's'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'milliseconds')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'millisecond')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'msecs')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'msec')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ms')):
                SWITCHED = True
                return var.get(u'n')
            SWITCHED = True
            break
    PyJsHoisted_parse_.func_name = u'parse'
    var.put(u'parse', PyJsHoisted_parse_)
    @Js
    def PyJsHoisted_short_(ms, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'ms':ms}, var)
        var.registers([u'ms'])
        if (var.get(u'ms')>=var.get(u'd')):
            return (var.get(u'Math').callprop(u'round', (var.get(u'ms')/var.get(u'd')))+Js(u'd'))
        if (var.get(u'ms')>=var.get(u'h')):
            return (var.get(u'Math').callprop(u'round', (var.get(u'ms')/var.get(u'h')))+Js(u'h'))
        if (var.get(u'ms')>=var.get(u'm')):
            return (var.get(u'Math').callprop(u'round', (var.get(u'ms')/var.get(u'm')))+Js(u'm'))
        if (var.get(u'ms')>=var.get(u's')):
            return (var.get(u'Math').callprop(u'round', (var.get(u'ms')/var.get(u's')))+Js(u's'))
        return (var.get(u'ms')+Js(u'ms'))
    PyJsHoisted_short_.func_name = u'short'
    var.put(u'short', PyJsHoisted_short_)
    @Js
    def PyJsHoisted_plural_(ms, n, name, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'name':name, u'ms':ms, u'n':n}, var)
        var.registers([u'name', u'ms', u'n'])
        if (var.get(u'ms')<var.get(u'n')):
            return var.get('undefined')
        if (var.get(u'ms')<(var.get(u'n')*Js(1.5))):
            return ((var.get(u'Math').callprop(u'floor', (var.get(u'ms')/var.get(u'n')))+Js(u' '))+var.get(u'name'))
        return (((var.get(u'Math').callprop(u'ceil', (var.get(u'ms')/var.get(u'n')))+Js(u' '))+var.get(u'name'))+Js(u's'))
    PyJsHoisted_plural_.func_name = u'plural'
    var.put(u'plural', PyJsHoisted_plural_)
    @Js
    def PyJsHoisted_long_(ms, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'ms':ms}, var)
        var.registers([u'ms'])
        return ((((var.get(u'plural')(var.get(u'ms'), var.get(u'd'), Js(u'day')) or var.get(u'plural')(var.get(u'ms'), var.get(u'h'), Js(u'hour'))) or var.get(u'plural')(var.get(u'ms'), var.get(u'm'), Js(u'minute'))) or var.get(u'plural')(var.get(u'ms'), var.get(u's'), Js(u'second'))) or (var.get(u'ms')+Js(u' ms')))
    PyJsHoisted_long_.func_name = u'long'
    var.put(u'long', PyJsHoisted_long_)
    var.put(u's', Js(1000.0))
    var.put(u'm', (var.get(u's')*Js(60.0)))
    var.put(u'h', (var.get(u'm')*Js(60.0)))
    var.put(u'd', (var.get(u'h')*Js(24.0)))
    var.put(u'y', (var.get(u'd')*Js(365.25)))
    @Js
    def PyJs_anonymous_3912_(val, options, this, arguments, var=var):
        var = Scope({u'this':this, u'options':options, u'val':val, u'arguments':arguments}, var)
        var.registers([u'options', u'val'])
        PyJs_Object_3913_ = Js({})
        var.put(u'options', (var.get(u'options') or PyJs_Object_3913_))
        if (Js(u'string')==var.get(u'val',throw=False).typeof()):
            return var.get(u'parse')(var.get(u'val'))
        return (var.get(u'long')(var.get(u'val')) if var.get(u'options').get(u'long') else var.get(u'short')(var.get(u'val')))
    PyJs_anonymous_3912_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_3912_)
    pass
    pass
    pass
    pass
PyJs_anonymous_3911_._set_name(u'anonymous')
PyJs_Object_3914_ = Js({})
@Js
def PyJs_anonymous_3915_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    @Js
    def PyJs_anonymous_3916_(x, this, arguments, var=var):
        var = Scope({u'this':this, u'x':x, u'arguments':arguments}, var)
        var.registers([u'x'])
        return PyJsStrictNeq(var.get(u'x'),var.get(u'x'))
    PyJs_anonymous_3916_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', (var.get(u'Number').get(u'isNaN') or PyJs_anonymous_3916_))
PyJs_anonymous_3915_._set_name(u'anonymous')
PyJs_Object_3917_ = Js({})
@Js
def PyJs_anonymous_3918_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_3919_(process, this, arguments, var=var):
        var = Scope({u'process':process, u'this':this, u'arguments':arguments}, var)
        var.registers([u'win32', u'process', u'posix'])
        @Js
        def PyJsHoisted_win32_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
            var.registers([u'splitDeviceRe', u'device', u'path', u'result', u'isUnc'])
            var.put(u'splitDeviceRe', JsRegExp(u'/^([a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/]+[^\\\\\\/]+)?([\\\\\\/])?([\\s\\S]*?)$/'))
            var.put(u'result', var.get(u'splitDeviceRe').callprop(u'exec', var.get(u'path')))
            var.put(u'device', (var.get(u'result').get(u'1') or Js(u'')))
            var.put(u'isUnc', (var.get(u'device').neg().neg() and PyJsStrictNeq(var.get(u'device').callprop(u'charAt', Js(1.0)),Js(u':'))))
            return (var.get(u'result').get(u'2').neg().neg() or var.get(u'isUnc'))
        PyJsHoisted_win32_.func_name = u'win32'
        var.put(u'win32', PyJsHoisted_win32_)
        @Js
        def PyJsHoisted_posix_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
            var.registers([u'path'])
            return PyJsStrictEq(var.get(u'path').callprop(u'charAt', Js(0.0)),Js(u'/'))
        PyJsHoisted_posix_.func_name = u'posix'
        var.put(u'posix', PyJsHoisted_posix_)
        Js(u'use strict')
        pass
        pass
        pass
        pass
        var.get(u'module').put(u'exports', (var.get(u'win32') if PyJsStrictEq(var.get(u'process').get(u'platform'),Js(u'win32')) else var.get(u'posix')))
        var.get(u'module').get(u'exports').put(u'posix', var.get(u'posix'))
        var.get(u'module').get(u'exports').put(u'win32', var.get(u'win32'))
    PyJs_anonymous_3919_._set_name(u'anonymous')
    PyJs_anonymous_3919_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')))
PyJs_anonymous_3918_._set_name(u'anonymous')
PyJs_Object_3920_ = Js({u'_process':Js(531.0)})
@Js
def PyJs_anonymous_3921_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'rand', u'exports', u'originalCreate', u'defaultCreatorFn', u'uniqueKeys', u'makeUniqueKey', u'originalObject', u'makeAccessor', u'require', u'hasOwn', u'internString', u'numToStr', u'module', u'cloner', u'originalGetOPNs', u'defProp', u'originalDefProp', u'create', u'makeSafeToCall', u'strSlice'])
    @Js
    def PyJsHoisted_defaultCreatorFn_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'object'])
        return var.get(u'create')(var.get(u"null"))
    PyJsHoisted_defaultCreatorFn_.func_name = u'defaultCreatorFn'
    var.put(u'defaultCreatorFn', PyJsHoisted_defaultCreatorFn_)
    @Js
    def PyJsHoisted_makeAccessor_(secretCreatorFn, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'secretCreatorFn':secretCreatorFn}, var)
        var.registers([u'brand', u'register', u'accessor', u'secretCreatorFn', u'passkey'])
        @Js
        def PyJsHoisted_register_(object, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
            var.registers([u'vault', u'secret', u'object'])
            @Js
            def PyJsHoisted_vault_(key, forget, this, arguments, var=var):
                var = Scope({u'this':this, u'forget':forget, u'key':key, u'arguments':arguments}, var)
                var.registers([u'forget', u'key'])
                if PyJsStrictEq(var.get(u'key'),var.get(u'passkey')):
                    return (var.put(u'secret', var.get(u"null")) if var.get(u'forget') else (var.get(u'secret') or var.put(u'secret', var.get(u'secretCreatorFn')(var.get(u'object')))))
            PyJsHoisted_vault_.func_name = u'vault'
            var.put(u'vault', PyJsHoisted_vault_)
            pass
            pass
            var.get(u'defProp')(var.get(u'object'), var.get(u'brand'), var.get(u'vault'))
        PyJsHoisted_register_.func_name = u'register'
        var.put(u'register', PyJsHoisted_register_)
        @Js
        def PyJsHoisted_accessor_(object, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
            var.registers([u'object'])
            if var.get(u'hasOwn').callprop(u'call', var.get(u'object'), var.get(u'brand')).neg():
                var.get(u'register')(var.get(u'object'))
            return var.get(u'object').callprop(var.get(u'brand'), var.get(u'passkey'))
        PyJsHoisted_accessor_.func_name = u'accessor'
        var.put(u'accessor', PyJsHoisted_accessor_)
        var.put(u'brand', var.get(u'makeUniqueKey')())
        var.put(u'passkey', var.get(u'create')(var.get(u"null")))
        var.put(u'secretCreatorFn', (var.get(u'secretCreatorFn') or var.get(u'defaultCreatorFn')))
        pass
        pass
        @Js
        def PyJs_anonymous_3926_(object, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
            var.registers([u'object'])
            if var.get(u'hasOwn').callprop(u'call', var.get(u'object'), var.get(u'brand')):
                var.get(u'object').callprop(var.get(u'brand'), var.get(u'passkey'), var.get(u'true'))
        PyJs_anonymous_3926_._set_name(u'anonymous')
        var.get(u'accessor').put(u'forget', PyJs_anonymous_3926_)
        return var.get(u'accessor')
    PyJsHoisted_makeAccessor_.func_name = u'makeAccessor'
    var.put(u'makeAccessor', PyJsHoisted_makeAccessor_)
    @Js
    def PyJsHoisted_makeUniqueKey_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'uniqueKey'])
        while 1:
            var.put(u'uniqueKey', var.get(u'internString')(var.get(u'strSlice').callprop(u'call', var.get(u'numToStr').callprop(u'call', var.get(u'rand')(), Js(36.0)), Js(2.0))))
            if not var.get(u'hasOwn').callprop(u'call', var.get(u'uniqueKeys'), var.get(u'uniqueKey')):
                break
        return var.get(u'uniqueKeys').put(var.get(u'uniqueKey'), var.get(u'uniqueKey'))
    PyJsHoisted_makeUniqueKey_.func_name = u'makeUniqueKey'
    var.put(u'makeUniqueKey', PyJsHoisted_makeUniqueKey_)
    @Js
    def PyJsHoisted_create_(prototype, this, arguments, var=var):
        var = Scope({u'this':this, u'prototype':prototype, u'arguments':arguments}, var)
        var.registers([u'prototype'])
        if var.get(u'originalCreate'):
            return var.get(u'originalCreate').callprop(u'call', var.get(u'originalObject'), var.get(u'prototype'))
        var.get(u'cloner').put(u'prototype', (var.get(u'prototype') or var.get(u"null")))
        return var.get(u'cloner').create()
    PyJsHoisted_create_.func_name = u'create'
    var.put(u'create', PyJsHoisted_create_)
    @Js
    def PyJsHoisted_internString_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'obj', u'str'])
        PyJs_Object_3924_ = Js({})
        var.put(u'obj', PyJs_Object_3924_)
        var.get(u'obj').put(var.get(u'str'), var.get(u'true'))
        return var.get(u'Object').callprop(u'keys', var.get(u'obj')).get(u'0')
    PyJsHoisted_internString_.func_name = u'internString'
    var.put(u'internString', PyJsHoisted_internString_)
    @Js
    def PyJsHoisted_defProp_(obj, name, value, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'name':name, u'value':value, u'arguments':arguments}, var)
        var.registers([u'obj', u'name', u'value'])
        if var.get(u'originalDefProp'):
            try:
                PyJs_Object_3922_ = Js({u'value':var.get(u'value')})
                var.get(u'originalDefProp').callprop(u'call', var.get(u'originalObject'), var.get(u'obj'), var.get(u'name'), PyJs_Object_3922_)
            except PyJsException as PyJsTempException:
                PyJsHolder_646566696e6550726f7065727479497342726f6b656e496e494538_59123052 = var.own.get(u'definePropertyIsBrokenInIE8')
                var.force_own_put(u'definePropertyIsBrokenInIE8', PyExceptionToJs(PyJsTempException))
                try:
                    var.get(u'obj').put(var.get(u'name'), var.get(u'value'))
                finally:
                    if PyJsHolder_646566696e6550726f7065727479497342726f6b656e496e494538_59123052 is not None:
                        var.own[u'definePropertyIsBrokenInIE8'] = PyJsHolder_646566696e6550726f7065727479497342726f6b656e496e494538_59123052
                    else:
                        del var.own[u'definePropertyIsBrokenInIE8']
                    del PyJsHolder_646566696e6550726f7065727479497342726f6b656e496e494538_59123052
        else:
            var.get(u'obj').put(var.get(u'name'), var.get(u'value'))
    PyJsHoisted_defProp_.func_name = u'defProp'
    var.put(u'defProp', PyJsHoisted_defProp_)
    @Js
    def PyJsHoisted_makeSafeToCall_(fun, this, arguments, var=var):
        var = Scope({u'fun':fun, u'this':this, u'arguments':arguments}, var)
        var.registers([u'fun'])
        if var.get(u'fun'):
            var.get(u'defProp')(var.get(u'fun'), Js(u'call'), var.get(u'fun').get(u'call'))
            var.get(u'defProp')(var.get(u'fun'), Js(u'apply'), var.get(u'fun').get(u'apply'))
        return var.get(u'fun')
    PyJsHoisted_makeSafeToCall_.func_name = u'makeSafeToCall'
    var.put(u'makeSafeToCall', PyJsHoisted_makeSafeToCall_)
    Js(u'use strict')
    var.put(u'originalObject', var.get(u'Object'))
    var.put(u'originalDefProp', var.get(u'Object').get(u'defineProperty'))
    var.put(u'originalCreate', var.get(u'Object').get(u'create'))
    pass
    pass
    var.get(u'makeSafeToCall')(var.get(u'originalDefProp'))
    var.get(u'makeSafeToCall')(var.get(u'originalCreate'))
    var.put(u'hasOwn', var.get(u'makeSafeToCall')(var.get(u'Object').get(u'prototype').get(u'hasOwnProperty')))
    var.put(u'numToStr', var.get(u'makeSafeToCall')(var.get(u'Number').get(u'prototype').get(u'toString')))
    var.put(u'strSlice', var.get(u'makeSafeToCall')(var.get(u'String').get(u'prototype').get(u'slice')))
    @Js
    def PyJs_anonymous_3923_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        pass
    PyJs_anonymous_3923_._set_name(u'anonymous')
    var.put(u'cloner', PyJs_anonymous_3923_)
    pass
    var.put(u'rand', var.get(u'Math').get(u'random'))
    var.put(u'uniqueKeys', var.get(u'create')(var.get(u"null")))
    pass
    pass
    var.get(u'defProp')(var.get(u'exports'), Js(u'makeUniqueKey'), var.get(u'makeUniqueKey'))
    var.put(u'originalGetOPNs', var.get(u'Object').get(u'getOwnPropertyNames'))
    @Js
    def PyJs_getOwnPropertyNames_3925_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments, u'getOwnPropertyNames':PyJs_getOwnPropertyNames_3925_}, var)
        var.registers([u'src', u'dst', u'object', u'names', u'len'])
        #for JS loop
        var.put(u'names', var.get(u'originalGetOPNs')(var.get(u'object')))
        var.put(u'src', Js(0.0))
        var.put(u'dst', Js(0.0))
        var.put(u'len', var.get(u'names').get(u'length'))
        while (var.get(u'src')<var.get(u'len')):
            try:
                if var.get(u'hasOwn').callprop(u'call', var.get(u'uniqueKeys'), var.get(u'names').get(var.get(u'src'))).neg():
                    if (var.get(u'src')>var.get(u'dst')):
                        var.get(u'names').put(var.get(u'dst'), var.get(u'names').get(var.get(u'src')))
                    var.put(u'dst',Js(var.get(u'dst').to_number())+Js(1))
            finally:
                    var.put(u'src',Js(var.get(u'src').to_number())+Js(1))
        var.get(u'names').put(u'length', var.get(u'dst'))
        return var.get(u'names')
    PyJs_getOwnPropertyNames_3925_._set_name(u'getOwnPropertyNames')
    var.get(u'Object').put(u'getOwnPropertyNames', PyJs_getOwnPropertyNames_3925_)
    pass
    pass
    var.get(u'defProp')(var.get(u'exports'), Js(u'makeAccessor'), var.get(u'makeAccessor'))
PyJs_anonymous_3921_._set_name(u'anonymous')
PyJs_Object_3927_ = Js({})
@Js
def PyJs_anonymous_3928_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_3929_ = Js({})
    @Js
    def PyJs_anonymous_3930_(PyJsArg_676c6f62616c_, this, arguments, var=var):
        var = Scope({u'this':this, u'global':PyJsArg_676c6f62616c_, u'arguments':arguments}, var)
        var.registers([u'global'])
        pass
        @Js
        def PyJs_anonymous_3931_(root, this, arguments, var=var):
            var = Scope({u'this':this, u'root':root, u'arguments':arguments}, var)
            var.registers([u'dataIsEmpty', u'zeroes', u'codePointToString', u'freeModule', u'HIGH_SURROGATE_MIN', u'dataRemove', u'freeExports', u'splitAtBMP', u'dataIntersection', u'lowSurrogate', u'dataContains', u'dataFromCodePoints', u'dataAddData', u'createBMPCharacterClasses', u'createSurrogateCharacterClasses', u'createUnicodeCharacterClasses', u'ERRORS', u'dataToArray', u'floor', u'regenerate', u'hex', u'surrogateSet', u'optimizeByLowSurrogates', u'stringFromCharCode', u'toString', u'dataRemoveData', u'freeGlobal', u'pad', u'LOW_SURROGATE_MAX', u'isArray', u'HIGH_SURROGATE_MAX', u'extend', u'symbolToCodePoint', u'object', u'createCharacterClassesFromData', u'LOW_SURROGATE_MIN', u'slice', u'hasOwnProperty', u'dataRemoveRange', u'isNumber', u'dataAdd', u'highSurrogate', u'codePointToStringUnicode', u'proto', u'dataAddRange', u'regexNull', u'dataIsSingleton', u'root', u'optimizeSurrogateMappings', u'forEach'])
            var.put(u'freeExports', ((var.get(u'exports',throw=False).typeof()==Js(u'object')) and var.get(u'exports')))
            var.put(u'freeModule', ((((var.get(u'module',throw=False).typeof()==Js(u'object')) and var.get(u'module')) and (var.get(u'module').get(u'exports')==var.get(u'freeExports'))) and var.get(u'module')))
            var.put(u'freeGlobal', ((var.get(u'global',throw=False).typeof()==Js(u'object')) and var.get(u'global')))
            if (PyJsStrictEq(var.get(u'freeGlobal').get(u'global'),var.get(u'freeGlobal')) or PyJsStrictEq(var.get(u'freeGlobal').get(u'window'),var.get(u'freeGlobal'))):
                var.put(u'root', var.get(u'freeGlobal'))
            PyJs_Object_3932_ = Js({u'rangeOrder':(Js(u'A range\u2019s `stop` value must be greater than or equal ')+Js(u'to the `start` value.')),u'codePointRange':(Js(u'Invalid code point value. Code points range from ')+Js(u'U+000000 to U+10FFFF.'))})
            var.put(u'ERRORS', PyJs_Object_3932_)
            var.put(u'HIGH_SURROGATE_MIN', Js(55296))
            var.put(u'HIGH_SURROGATE_MAX', Js(56319))
            var.put(u'LOW_SURROGATE_MIN', Js(56320))
            var.put(u'LOW_SURROGATE_MAX', Js(57343))
            var.put(u'regexNull', JsRegExp(u'/\\\\x00([^0123456789]|$)/g'))
            PyJs_Object_3933_ = Js({})
            var.put(u'object', PyJs_Object_3933_)
            var.put(u'hasOwnProperty', var.get(u'object').get(u'hasOwnProperty'))
            @Js
            def PyJs_anonymous_3934_(destination, source, this, arguments, var=var):
                var = Scope({u'this':this, u'source':source, u'destination':destination, u'arguments':arguments}, var)
                var.registers([u'source', u'destination', u'key'])
                pass
                for PyJsTemp in var.get(u'source'):
                    var.put(u'key', PyJsTemp)
                    if var.get(u'hasOwnProperty').callprop(u'call', var.get(u'source'), var.get(u'key')):
                        var.get(u'destination').put(var.get(u'key'), var.get(u'source').get(var.get(u'key')))
                return var.get(u'destination')
            PyJs_anonymous_3934_._set_name(u'anonymous')
            var.put(u'extend', PyJs_anonymous_3934_)
            @Js
            def PyJs_anonymous_3935_(array, callback, this, arguments, var=var):
                var = Scope({u'this':this, u'callback':callback, u'array':array, u'arguments':arguments}, var)
                var.registers([u'index', u'length', u'array', u'callback'])
                var.put(u'index', (-Js(1.0)))
                var.put(u'length', var.get(u'array').get(u'length'))
                while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
                    var.get(u'callback')(var.get(u'array').get(var.get(u'index')), var.get(u'index'))
            PyJs_anonymous_3935_._set_name(u'anonymous')
            var.put(u'forEach', PyJs_anonymous_3935_)
            var.put(u'toString', var.get(u'object').get(u'toString'))
            @Js
            def PyJs_anonymous_3936_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return (var.get(u'toString').callprop(u'call', var.get(u'value'))==Js(u'[object Array]'))
            PyJs_anonymous_3936_._set_name(u'anonymous')
            var.put(u'isArray', PyJs_anonymous_3936_)
            @Js
            def PyJs_anonymous_3937_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return ((var.get(u'value',throw=False).typeof()==Js(u'number')) or (var.get(u'toString').callprop(u'call', var.get(u'value'))==Js(u'[object Number]')))
            PyJs_anonymous_3937_._set_name(u'anonymous')
            var.put(u'isNumber', PyJs_anonymous_3937_)
            var.put(u'zeroes', Js(u'0000'))
            @Js
            def PyJs_anonymous_3938_(number, totalCharacters, this, arguments, var=var):
                var = Scope({u'this':this, u'totalCharacters':totalCharacters, u'number':number, u'arguments':arguments}, var)
                var.registers([u'totalCharacters', u'string', u'number'])
                var.put(u'string', var.get(u'String')(var.get(u'number')))
                return ((var.get(u'zeroes')+var.get(u'string')).callprop(u'slice', (-var.get(u'totalCharacters'))) if (var.get(u'string').get(u'length')<var.get(u'totalCharacters')) else var.get(u'string'))
            PyJs_anonymous_3938_._set_name(u'anonymous')
            var.put(u'pad', PyJs_anonymous_3938_)
            @Js
            def PyJs_anonymous_3939_(number, this, arguments, var=var):
                var = Scope({u'this':this, u'number':number, u'arguments':arguments}, var)
                var.registers([u'number'])
                return var.get(u'Number')(var.get(u'number')).callprop(u'toString', Js(16.0)).callprop(u'toUpperCase')
            PyJs_anonymous_3939_._set_name(u'anonymous')
            var.put(u'hex', PyJs_anonymous_3939_)
            var.put(u'slice', Js([]).get(u'slice'))
            @Js
            def PyJs_anonymous_3940_(codePoints, this, arguments, var=var):
                var = Scope({u'codePoints':codePoints, u'this':this, u'arguments':arguments}, var)
                var.registers([u'tmp', u'index', u'max', u'isStart', u'length', u'result', u'codePoints', u'previous'])
                var.put(u'index', (-Js(1.0)))
                var.put(u'length', var.get(u'codePoints').get(u'length'))
                var.put(u'max', (var.get(u'length')-Js(1.0)))
                var.put(u'result', Js([]))
                var.put(u'isStart', var.get(u'true'))
                pass
                var.put(u'previous', Js(0.0))
                while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
                    var.put(u'tmp', var.get(u'codePoints').get(var.get(u'index')))
                    if var.get(u'isStart'):
                        var.get(u'result').callprop(u'push', var.get(u'tmp'))
                        var.put(u'previous', var.get(u'tmp'))
                        var.put(u'isStart', Js(False))
                    else:
                        if (var.get(u'tmp')==(var.get(u'previous')+Js(1.0))):
                            if (var.get(u'index')!=var.get(u'max')):
                                var.put(u'previous', var.get(u'tmp'))
                                continue
                            else:
                                var.put(u'isStart', var.get(u'true'))
                                var.get(u'result').callprop(u'push', (var.get(u'tmp')+Js(1.0)))
                        else:
                            var.get(u'result').callprop(u'push', (var.get(u'previous')+Js(1.0)), var.get(u'tmp'))
                            var.put(u'previous', var.get(u'tmp'))
                if var.get(u'isStart').neg():
                    var.get(u'result').callprop(u'push', (var.get(u'tmp')+Js(1.0)))
                return var.get(u'result')
            PyJs_anonymous_3940_._set_name(u'anonymous')
            var.put(u'dataFromCodePoints', PyJs_anonymous_3940_)
            @Js
            def PyJs_anonymous_3941_(data, codePoint, this, arguments, var=var):
                var = Scope({u'this':this, u'codePoint':codePoint, u'data':data, u'arguments':arguments}, var)
                var.registers([u'index', u'codePoint', u'end', u'start', u'length', u'data'])
                var.put(u'index', Js(0.0))
                pass
                pass
                var.put(u'length', var.get(u'data').get(u'length'))
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'start', var.get(u'data').get(var.get(u'index')))
                    var.put(u'end', var.get(u'data').get((var.get(u'index')+Js(1.0))))
                    if ((var.get(u'codePoint')>=var.get(u'start')) and (var.get(u'codePoint')<var.get(u'end'))):
                        if (var.get(u'codePoint')==var.get(u'start')):
                            if (var.get(u'end')==(var.get(u'start')+Js(1.0))):
                                var.get(u'data').callprop(u'splice', var.get(u'index'), Js(2.0))
                                return var.get(u'data')
                            else:
                                var.get(u'data').put(var.get(u'index'), (var.get(u'codePoint')+Js(1.0)))
                                return var.get(u'data')
                        else:
                            if (var.get(u'codePoint')==(var.get(u'end')-Js(1.0))):
                                var.get(u'data').put((var.get(u'index')+Js(1.0)), var.get(u'codePoint'))
                                return var.get(u'data')
                            else:
                                var.get(u'data').callprop(u'splice', var.get(u'index'), Js(2.0), var.get(u'start'), var.get(u'codePoint'), (var.get(u'codePoint')+Js(1.0)), var.get(u'end'))
                                return var.get(u'data')
                    var.put(u'index', Js(2.0), u'+')
                return var.get(u'data')
            PyJs_anonymous_3941_._set_name(u'anonymous')
            var.put(u'dataRemove', PyJs_anonymous_3941_)
            @Js
            def PyJs_anonymous_3942_(data, rangeStart, rangeEnd, this, arguments, var=var):
                var = Scope({u'this':this, u'data':data, u'arguments':arguments, u'rangeEnd':rangeEnd, u'rangeStart':rangeStart}, var)
                var.registers([u'index', u'end', u'rangeEnd', u'rangeStart', u'start', u'data'])
                if (var.get(u'rangeEnd')<var.get(u'rangeStart')):
                    PyJsTempException = JsToPyException(var.get(u'Error')(var.get(u'ERRORS').get(u'rangeOrder')))
                    raise PyJsTempException
                var.put(u'index', Js(0.0))
                pass
                pass
                while (var.get(u'index')<var.get(u'data').get(u'length')):
                    var.put(u'start', var.get(u'data').get(var.get(u'index')))
                    var.put(u'end', (var.get(u'data').get((var.get(u'index')+Js(1.0)))-Js(1.0)))
                    if (var.get(u'start')>var.get(u'rangeEnd')):
                        return var.get(u'data')
                    if ((var.get(u'rangeStart')<=var.get(u'start')) and (var.get(u'rangeEnd')>=var.get(u'end'))):
                        var.get(u'data').callprop(u'splice', var.get(u'index'), Js(2.0))
                        continue
                    if ((var.get(u'rangeStart')>=var.get(u'start')) and (var.get(u'rangeEnd')<var.get(u'end'))):
                        if (var.get(u'rangeStart')==var.get(u'start')):
                            var.get(u'data').put(var.get(u'index'), (var.get(u'rangeEnd')+Js(1.0)))
                            var.get(u'data').put((var.get(u'index')+Js(1.0)), (var.get(u'end')+Js(1.0)))
                            return var.get(u'data')
                        var.get(u'data').callprop(u'splice', var.get(u'index'), Js(2.0), var.get(u'start'), var.get(u'rangeStart'), (var.get(u'rangeEnd')+Js(1.0)), (var.get(u'end')+Js(1.0)))
                        return var.get(u'data')
                    if ((var.get(u'rangeStart')>=var.get(u'start')) and (var.get(u'rangeStart')<=var.get(u'end'))):
                        var.get(u'data').put((var.get(u'index')+Js(1.0)), var.get(u'rangeStart'))
                    else:
                        if ((var.get(u'rangeEnd')>=var.get(u'start')) and (var.get(u'rangeEnd')<=var.get(u'end'))):
                            var.get(u'data').put(var.get(u'index'), (var.get(u'rangeEnd')+Js(1.0)))
                            return var.get(u'data')
                    var.put(u'index', Js(2.0), u'+')
                return var.get(u'data')
            PyJs_anonymous_3942_._set_name(u'anonymous')
            var.put(u'dataRemoveRange', PyJs_anonymous_3942_)
            @Js
            def PyJs_anonymous_3943_(data, codePoint, this, arguments, var=var):
                var = Scope({u'this':this, u'codePoint':codePoint, u'data':data, u'arguments':arguments}, var)
                var.registers([u'index', u'codePoint', u'end', u'lastIndex', u'start', u'length', u'data'])
                var.put(u'index', Js(0.0))
                pass
                pass
                var.put(u'lastIndex', var.get(u"null"))
                var.put(u'length', var.get(u'data').get(u'length'))
                if ((var.get(u'codePoint')<Js(0)) or (var.get(u'codePoint')>Js(1114111))):
                    PyJsTempException = JsToPyException(var.get(u'RangeError')(var.get(u'ERRORS').get(u'codePointRange')))
                    raise PyJsTempException
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'start', var.get(u'data').get(var.get(u'index')))
                    var.put(u'end', var.get(u'data').get((var.get(u'index')+Js(1.0))))
                    if ((var.get(u'codePoint')>=var.get(u'start')) and (var.get(u'codePoint')<var.get(u'end'))):
                        return var.get(u'data')
                    if (var.get(u'codePoint')==(var.get(u'start')-Js(1.0))):
                        var.get(u'data').put(var.get(u'index'), var.get(u'codePoint'))
                        return var.get(u'data')
                    if (var.get(u'start')>var.get(u'codePoint')):
                        var.get(u'data').callprop(u'splice', ((var.get(u'lastIndex')+Js(2.0)) if (var.get(u'lastIndex')!=var.get(u"null")) else Js(0.0)), Js(0.0), var.get(u'codePoint'), (var.get(u'codePoint')+Js(1.0)))
                        return var.get(u'data')
                    if (var.get(u'codePoint')==var.get(u'end')):
                        if ((var.get(u'codePoint')+Js(1.0))==var.get(u'data').get((var.get(u'index')+Js(2.0)))):
                            var.get(u'data').callprop(u'splice', var.get(u'index'), Js(4.0), var.get(u'start'), var.get(u'data').get((var.get(u'index')+Js(3.0))))
                            return var.get(u'data')
                        var.get(u'data').put((var.get(u'index')+Js(1.0)), (var.get(u'codePoint')+Js(1.0)))
                        return var.get(u'data')
                    var.put(u'lastIndex', var.get(u'index'))
                    var.put(u'index', Js(2.0), u'+')
                var.get(u'data').callprop(u'push', var.get(u'codePoint'), (var.get(u'codePoint')+Js(1.0)))
                return var.get(u'data')
            PyJs_anonymous_3943_._set_name(u'anonymous')
            var.put(u'dataAdd', PyJs_anonymous_3943_)
            @Js
            def PyJs_anonymous_3944_(dataA, dataB, this, arguments, var=var):
                var = Scope({u'this':this, u'dataA':dataA, u'arguments':arguments, u'dataB':dataB}, var)
                var.registers([u'index', u'end', u'dataA', u'dataB', u'start', u'length', u'data'])
                var.put(u'index', Js(0.0))
                pass
                pass
                var.put(u'data', var.get(u'dataA').callprop(u'slice'))
                var.put(u'length', var.get(u'dataB').get(u'length'))
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'start', var.get(u'dataB').get(var.get(u'index')))
                    var.put(u'end', (var.get(u'dataB').get((var.get(u'index')+Js(1.0)))-Js(1.0)))
                    if (var.get(u'start')==var.get(u'end')):
                        var.put(u'data', var.get(u'dataAdd')(var.get(u'data'), var.get(u'start')))
                    else:
                        var.put(u'data', var.get(u'dataAddRange')(var.get(u'data'), var.get(u'start'), var.get(u'end')))
                    var.put(u'index', Js(2.0), u'+')
                return var.get(u'data')
            PyJs_anonymous_3944_._set_name(u'anonymous')
            var.put(u'dataAddData', PyJs_anonymous_3944_)
            @Js
            def PyJs_anonymous_3945_(dataA, dataB, this, arguments, var=var):
                var = Scope({u'this':this, u'dataA':dataA, u'arguments':arguments, u'dataB':dataB}, var)
                var.registers([u'index', u'end', u'dataA', u'dataB', u'start', u'length', u'data'])
                var.put(u'index', Js(0.0))
                pass
                pass
                var.put(u'data', var.get(u'dataA').callprop(u'slice'))
                var.put(u'length', var.get(u'dataB').get(u'length'))
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'start', var.get(u'dataB').get(var.get(u'index')))
                    var.put(u'end', (var.get(u'dataB').get((var.get(u'index')+Js(1.0)))-Js(1.0)))
                    if (var.get(u'start')==var.get(u'end')):
                        var.put(u'data', var.get(u'dataRemove')(var.get(u'data'), var.get(u'start')))
                    else:
                        var.put(u'data', var.get(u'dataRemoveRange')(var.get(u'data'), var.get(u'start'), var.get(u'end')))
                    var.put(u'index', Js(2.0), u'+')
                return var.get(u'data')
            PyJs_anonymous_3945_._set_name(u'anonymous')
            var.put(u'dataRemoveData', PyJs_anonymous_3945_)
            @Js
            def PyJs_anonymous_3946_(data, rangeStart, rangeEnd, this, arguments, var=var):
                var = Scope({u'this':this, u'data':data, u'arguments':arguments, u'rangeEnd':rangeEnd, u'rangeStart':rangeStart}, var)
                var.registers([u'index', u'added', u'end', u'rangeEnd', u'rangeStart', u'start', u'length', u'data'])
                if (var.get(u'rangeEnd')<var.get(u'rangeStart')):
                    PyJsTempException = JsToPyException(var.get(u'Error')(var.get(u'ERRORS').get(u'rangeOrder')))
                    raise PyJsTempException
                if ((((var.get(u'rangeStart')<Js(0)) or (var.get(u'rangeStart')>Js(1114111))) or (var.get(u'rangeEnd')<Js(0))) or (var.get(u'rangeEnd')>Js(1114111))):
                    PyJsTempException = JsToPyException(var.get(u'RangeError')(var.get(u'ERRORS').get(u'codePointRange')))
                    raise PyJsTempException
                var.put(u'index', Js(0.0))
                pass
                pass
                var.put(u'added', Js(False))
                var.put(u'length', var.get(u'data').get(u'length'))
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'start', var.get(u'data').get(var.get(u'index')))
                    var.put(u'end', var.get(u'data').get((var.get(u'index')+Js(1.0))))
                    if var.get(u'added'):
                        if (var.get(u'start')==(var.get(u'rangeEnd')+Js(1.0))):
                            var.get(u'data').callprop(u'splice', (var.get(u'index')-Js(1.0)), Js(2.0))
                            return var.get(u'data')
                        if (var.get(u'start')>var.get(u'rangeEnd')):
                            return var.get(u'data')
                        if ((var.get(u'start')>=var.get(u'rangeStart')) and (var.get(u'start')<=var.get(u'rangeEnd'))):
                            if ((var.get(u'end')>var.get(u'rangeStart')) and ((var.get(u'end')-Js(1.0))<=var.get(u'rangeEnd'))):
                                var.get(u'data').callprop(u'splice', var.get(u'index'), Js(2.0))
                                var.put(u'index', Js(2.0), u'-')
                            else:
                                var.get(u'data').callprop(u'splice', (var.get(u'index')-Js(1.0)), Js(2.0))
                                var.put(u'index', Js(2.0), u'-')
                    else:
                        if (var.get(u'start')==(var.get(u'rangeEnd')+Js(1.0))):
                            var.get(u'data').put(var.get(u'index'), var.get(u'rangeStart'))
                            return var.get(u'data')
                        else:
                            if (var.get(u'start')>var.get(u'rangeEnd')):
                                var.get(u'data').callprop(u'splice', var.get(u'index'), Js(0.0), var.get(u'rangeStart'), (var.get(u'rangeEnd')+Js(1.0)))
                                return var.get(u'data')
                            else:
                                if (((var.get(u'rangeStart')>=var.get(u'start')) and (var.get(u'rangeStart')<var.get(u'end'))) and ((var.get(u'rangeEnd')+Js(1.0))<=var.get(u'end'))):
                                    return var.get(u'data')
                                else:
                                    if (((var.get(u'rangeStart')>=var.get(u'start')) and (var.get(u'rangeStart')<var.get(u'end'))) or (var.get(u'end')==var.get(u'rangeStart'))):
                                        var.get(u'data').put((var.get(u'index')+Js(1.0)), (var.get(u'rangeEnd')+Js(1.0)))
                                        var.put(u'added', var.get(u'true'))
                                    else:
                                        if ((var.get(u'rangeStart')<=var.get(u'start')) and ((var.get(u'rangeEnd')+Js(1.0))>=var.get(u'end'))):
                                            var.get(u'data').put(var.get(u'index'), var.get(u'rangeStart'))
                                            var.get(u'data').put((var.get(u'index')+Js(1.0)), (var.get(u'rangeEnd')+Js(1.0)))
                                            var.put(u'added', var.get(u'true'))
                    var.put(u'index', Js(2.0), u'+')
                if var.get(u'added').neg():
                    var.get(u'data').callprop(u'push', var.get(u'rangeStart'), (var.get(u'rangeEnd')+Js(1.0)))
                return var.get(u'data')
            PyJs_anonymous_3946_._set_name(u'anonymous')
            var.put(u'dataAddRange', PyJs_anonymous_3946_)
            @Js
            def PyJs_anonymous_3947_(data, codePoint, this, arguments, var=var):
                var = Scope({u'this':this, u'codePoint':codePoint, u'data':data, u'arguments':arguments}, var)
                var.registers([u'index', u'codePoint', u'end', u'start', u'length', u'data'])
                var.put(u'index', Js(0.0))
                var.put(u'length', var.get(u'data').get(u'length'))
                var.put(u'start', var.get(u'data').get(var.get(u'index')))
                var.put(u'end', var.get(u'data').get((var.get(u'length')-Js(1.0))))
                if (var.get(u'length')>=Js(2.0)):
                    if ((var.get(u'codePoint')<var.get(u'start')) or (var.get(u'codePoint')>var.get(u'end'))):
                        return Js(False)
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'start', var.get(u'data').get(var.get(u'index')))
                    var.put(u'end', var.get(u'data').get((var.get(u'index')+Js(1.0))))
                    if ((var.get(u'codePoint')>=var.get(u'start')) and (var.get(u'codePoint')<var.get(u'end'))):
                        return var.get(u'true')
                    var.put(u'index', Js(2.0), u'+')
                return Js(False)
            PyJs_anonymous_3947_._set_name(u'anonymous')
            var.put(u'dataContains', PyJs_anonymous_3947_)
            @Js
            def PyJs_anonymous_3948_(data, codePoints, this, arguments, var=var):
                var = Scope({u'codePoints':codePoints, u'this':this, u'data':data, u'arguments':arguments}, var)
                var.registers([u'index', u'codePoint', u'length', u'result', u'codePoints', u'data'])
                var.put(u'index', Js(0.0))
                var.put(u'length', var.get(u'codePoints').get(u'length'))
                pass
                var.put(u'result', Js([]))
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'codePoint', var.get(u'codePoints').get(var.get(u'index')))
                    if var.get(u'dataContains')(var.get(u'data'), var.get(u'codePoint')):
                        var.get(u'result').callprop(u'push', var.get(u'codePoint'))
                    var.put(u'index',Js(var.get(u'index').to_number())+Js(1))
                return var.get(u'dataFromCodePoints')(var.get(u'result'))
            PyJs_anonymous_3948_._set_name(u'anonymous')
            var.put(u'dataIntersection', PyJs_anonymous_3948_)
            @Js
            def PyJs_anonymous_3949_(data, this, arguments, var=var):
                var = Scope({u'this':this, u'data':data, u'arguments':arguments}, var)
                var.registers([u'data'])
                return var.get(u'data').get(u'length').neg()
            PyJs_anonymous_3949_._set_name(u'anonymous')
            var.put(u'dataIsEmpty', PyJs_anonymous_3949_)
            @Js
            def PyJs_anonymous_3950_(data, this, arguments, var=var):
                var = Scope({u'this':this, u'data':data, u'arguments':arguments}, var)
                var.registers([u'data'])
                return ((var.get(u'data').get(u'length')==Js(2.0)) and ((var.get(u'data').get(u'0')+Js(1.0))==var.get(u'data').get(u'1')))
            PyJs_anonymous_3950_._set_name(u'anonymous')
            var.put(u'dataIsSingleton', PyJs_anonymous_3950_)
            @Js
            def PyJs_anonymous_3951_(data, this, arguments, var=var):
                var = Scope({u'this':this, u'data':data, u'arguments':arguments}, var)
                var.registers([u'index', u'end', u'start', u'length', u'result', u'data'])
                var.put(u'index', Js(0.0))
                pass
                pass
                var.put(u'result', Js([]))
                var.put(u'length', var.get(u'data').get(u'length'))
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'start', var.get(u'data').get(var.get(u'index')))
                    var.put(u'end', var.get(u'data').get((var.get(u'index')+Js(1.0))))
                    while (var.get(u'start')<var.get(u'end')):
                        var.get(u'result').callprop(u'push', var.get(u'start'))
                        var.put(u'start',Js(var.get(u'start').to_number())+Js(1))
                    var.put(u'index', Js(2.0), u'+')
                return var.get(u'result')
            PyJs_anonymous_3951_._set_name(u'anonymous')
            var.put(u'dataToArray', PyJs_anonymous_3951_)
            var.put(u'floor', var.get(u'Math').get(u'floor'))
            @Js
            def PyJs_anonymous_3952_(codePoint, this, arguments, var=var):
                var = Scope({u'this':this, u'codePoint':codePoint, u'arguments':arguments}, var)
                var.registers([u'codePoint'])
                return var.get(u'parseInt')((var.get(u'floor')(((var.get(u'codePoint')-Js(65536))/Js(1024)))+var.get(u'HIGH_SURROGATE_MIN')), Js(10.0))
            PyJs_anonymous_3952_._set_name(u'anonymous')
            var.put(u'highSurrogate', PyJs_anonymous_3952_)
            @Js
            def PyJs_anonymous_3953_(codePoint, this, arguments, var=var):
                var = Scope({u'this':this, u'codePoint':codePoint, u'arguments':arguments}, var)
                var.registers([u'codePoint'])
                return var.get(u'parseInt')((((var.get(u'codePoint')-Js(65536))%Js(1024))+var.get(u'LOW_SURROGATE_MIN')), Js(10.0))
            PyJs_anonymous_3953_._set_name(u'anonymous')
            var.put(u'lowSurrogate', PyJs_anonymous_3953_)
            var.put(u'stringFromCharCode', var.get(u'String').get(u'fromCharCode'))
            @Js
            def PyJs_anonymous_3954_(codePoint, this, arguments, var=var):
                var = Scope({u'this':this, u'codePoint':codePoint, u'arguments':arguments}, var)
                var.registers([u'codePoint', u'string'])
                pass
                if (var.get(u'codePoint')==Js(9)):
                    var.put(u'string', Js(u'\\t'))
                else:
                    if (var.get(u'codePoint')==Js(10)):
                        var.put(u'string', Js(u'\\n'))
                    else:
                        if (var.get(u'codePoint')==Js(12)):
                            var.put(u'string', Js(u'\\f'))
                        else:
                            if (var.get(u'codePoint')==Js(13)):
                                var.put(u'string', Js(u'\\r'))
                            else:
                                if (var.get(u'codePoint')==Js(92)):
                                    var.put(u'string', Js(u'\\\\'))
                                else:
                                    if (((((((var.get(u'codePoint')==Js(36)) or ((var.get(u'codePoint')>=Js(40)) and (var.get(u'codePoint')<=Js(43)))) or (var.get(u'codePoint')==Js(45))) or (var.get(u'codePoint')==Js(46))) or (var.get(u'codePoint')==Js(63))) or ((var.get(u'codePoint')>=Js(91)) and (var.get(u'codePoint')<=Js(94)))) or ((var.get(u'codePoint')>=Js(123)) and (var.get(u'codePoint')<=Js(125)))):
                                        var.put(u'string', (Js(u'\\')+var.get(u'stringFromCharCode')(var.get(u'codePoint'))))
                                    else:
                                        if ((var.get(u'codePoint')>=Js(32)) and (var.get(u'codePoint')<=Js(126))):
                                            var.put(u'string', var.get(u'stringFromCharCode')(var.get(u'codePoint')))
                                        else:
                                            if (var.get(u'codePoint')<=Js(255)):
                                                var.put(u'string', (Js(u'\\x')+var.get(u'pad')(var.get(u'hex')(var.get(u'codePoint')), Js(2.0))))
                                            else:
                                                var.put(u'string', (Js(u'\\u')+var.get(u'pad')(var.get(u'hex')(var.get(u'codePoint')), Js(4.0))))
                return var.get(u'string')
            PyJs_anonymous_3954_._set_name(u'anonymous')
            var.put(u'codePointToString', PyJs_anonymous_3954_)
            @Js
            def PyJs_anonymous_3955_(codePoint, this, arguments, var=var):
                var = Scope({u'this':this, u'codePoint':codePoint, u'arguments':arguments}, var)
                var.registers([u'codePoint'])
                if (var.get(u'codePoint')<=Js(65535)):
                    return var.get(u'codePointToString')(var.get(u'codePoint'))
                return ((Js(u'\\u{')+var.get(u'codePoint').callprop(u'toString', Js(16.0)).callprop(u'toUpperCase'))+Js(u'}'))
            PyJs_anonymous_3955_._set_name(u'anonymous')
            var.put(u'codePointToStringUnicode', PyJs_anonymous_3955_)
            @Js
            def PyJs_anonymous_3956_(symbol, this, arguments, var=var):
                var = Scope({u'this':this, u'symbol':symbol, u'arguments':arguments}, var)
                var.registers([u'symbol', u'length', u'second', u'first'])
                var.put(u'length', var.get(u'symbol').get(u'length'))
                var.put(u'first', var.get(u'symbol').callprop(u'charCodeAt', Js(0.0)))
                pass
                if (((var.get(u'first')>=var.get(u'HIGH_SURROGATE_MIN')) and (var.get(u'first')<=var.get(u'HIGH_SURROGATE_MAX'))) and (var.get(u'length')>Js(1.0))):
                    var.put(u'second', var.get(u'symbol').callprop(u'charCodeAt', Js(1.0)))
                    return (((((var.get(u'first')-var.get(u'HIGH_SURROGATE_MIN'))*Js(1024))+var.get(u'second'))-var.get(u'LOW_SURROGATE_MIN'))+Js(65536))
                return var.get(u'first')
            PyJs_anonymous_3956_._set_name(u'anonymous')
            var.put(u'symbolToCodePoint', PyJs_anonymous_3956_)
            @Js
            def PyJs_anonymous_3957_(data, this, arguments, var=var):
                var = Scope({u'this':this, u'data':data, u'arguments':arguments}, var)
                var.registers([u'index', u'end', u'start', u'length', u'result', u'data'])
                var.put(u'result', Js(u''))
                var.put(u'index', Js(0.0))
                pass
                pass
                var.put(u'length', var.get(u'data').get(u'length'))
                if var.get(u'dataIsSingleton')(var.get(u'data')):
                    return var.get(u'codePointToString')(var.get(u'data').get(u'0'))
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'start', var.get(u'data').get(var.get(u'index')))
                    var.put(u'end', (var.get(u'data').get((var.get(u'index')+Js(1.0)))-Js(1.0)))
                    if (var.get(u'start')==var.get(u'end')):
                        var.put(u'result', var.get(u'codePointToString')(var.get(u'start')), u'+')
                    else:
                        if ((var.get(u'start')+Js(1.0))==var.get(u'end')):
                            var.put(u'result', (var.get(u'codePointToString')(var.get(u'start'))+var.get(u'codePointToString')(var.get(u'end'))), u'+')
                        else:
                            var.put(u'result', ((var.get(u'codePointToString')(var.get(u'start'))+Js(u'-'))+var.get(u'codePointToString')(var.get(u'end'))), u'+')
                    var.put(u'index', Js(2.0), u'+')
                return ((Js(u'[')+var.get(u'result'))+Js(u']'))
            PyJs_anonymous_3957_._set_name(u'anonymous')
            var.put(u'createBMPCharacterClasses', PyJs_anonymous_3957_)
            @Js
            def PyJs_anonymous_3958_(data, this, arguments, var=var):
                var = Scope({u'this':this, u'data':data, u'arguments':arguments}, var)
                var.registers([u'index', u'end', u'start', u'length', u'result', u'data'])
                var.put(u'result', Js(u''))
                var.put(u'index', Js(0.0))
                pass
                pass
                var.put(u'length', var.get(u'data').get(u'length'))
                if var.get(u'dataIsSingleton')(var.get(u'data')):
                    return var.get(u'codePointToStringUnicode')(var.get(u'data').get(u'0'))
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'start', var.get(u'data').get(var.get(u'index')))
                    var.put(u'end', (var.get(u'data').get((var.get(u'index')+Js(1.0)))-Js(1.0)))
                    if (var.get(u'start')==var.get(u'end')):
                        var.put(u'result', var.get(u'codePointToStringUnicode')(var.get(u'start')), u'+')
                    else:
                        if ((var.get(u'start')+Js(1.0))==var.get(u'end')):
                            var.put(u'result', (var.get(u'codePointToStringUnicode')(var.get(u'start'))+var.get(u'codePointToStringUnicode')(var.get(u'end'))), u'+')
                        else:
                            var.put(u'result', ((var.get(u'codePointToStringUnicode')(var.get(u'start'))+Js(u'-'))+var.get(u'codePointToStringUnicode')(var.get(u'end'))), u'+')
                    var.put(u'index', Js(2.0), u'+')
                return ((Js(u'[')+var.get(u'result'))+Js(u']'))
            PyJs_anonymous_3958_._set_name(u'anonymous')
            var.put(u'createUnicodeCharacterClasses', PyJs_anonymous_3958_)
            @Js
            def PyJs_anonymous_3959_(data, this, arguments, var=var):
                var = Scope({u'this':this, u'data':data, u'arguments':arguments}, var)
                var.registers([u'index', u'end', u'loneLowSurrogates', u'length', u'start', u'bmp', u'astral', u'data', u'loneHighSurrogates'])
                var.put(u'loneHighSurrogates', Js([]))
                var.put(u'loneLowSurrogates', Js([]))
                var.put(u'bmp', Js([]))
                var.put(u'astral', Js([]))
                var.put(u'index', Js(0.0))
                pass
                pass
                var.put(u'length', var.get(u'data').get(u'length'))
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'start', var.get(u'data').get(var.get(u'index')))
                    var.put(u'end', (var.get(u'data').get((var.get(u'index')+Js(1.0)))-Js(1.0)))
                    if (var.get(u'start')<var.get(u'HIGH_SURROGATE_MIN')):
                        if (var.get(u'end')<var.get(u'HIGH_SURROGATE_MIN')):
                            var.get(u'bmp').callprop(u'push', var.get(u'start'), (var.get(u'end')+Js(1.0)))
                        if ((var.get(u'end')>=var.get(u'HIGH_SURROGATE_MIN')) and (var.get(u'end')<=var.get(u'HIGH_SURROGATE_MAX'))):
                            var.get(u'bmp').callprop(u'push', var.get(u'start'), var.get(u'HIGH_SURROGATE_MIN'))
                            var.get(u'loneHighSurrogates').callprop(u'push', var.get(u'HIGH_SURROGATE_MIN'), (var.get(u'end')+Js(1.0)))
                        if ((var.get(u'end')>=var.get(u'LOW_SURROGATE_MIN')) and (var.get(u'end')<=var.get(u'LOW_SURROGATE_MAX'))):
                            var.get(u'bmp').callprop(u'push', var.get(u'start'), var.get(u'HIGH_SURROGATE_MIN'))
                            var.get(u'loneHighSurrogates').callprop(u'push', var.get(u'HIGH_SURROGATE_MIN'), (var.get(u'HIGH_SURROGATE_MAX')+Js(1.0)))
                            var.get(u'loneLowSurrogates').callprop(u'push', var.get(u'LOW_SURROGATE_MIN'), (var.get(u'end')+Js(1.0)))
                        if (var.get(u'end')>var.get(u'LOW_SURROGATE_MAX')):
                            var.get(u'bmp').callprop(u'push', var.get(u'start'), var.get(u'HIGH_SURROGATE_MIN'))
                            var.get(u'loneHighSurrogates').callprop(u'push', var.get(u'HIGH_SURROGATE_MIN'), (var.get(u'HIGH_SURROGATE_MAX')+Js(1.0)))
                            var.get(u'loneLowSurrogates').callprop(u'push', var.get(u'LOW_SURROGATE_MIN'), (var.get(u'LOW_SURROGATE_MAX')+Js(1.0)))
                            if (var.get(u'end')<=Js(65535)):
                                var.get(u'bmp').callprop(u'push', (var.get(u'LOW_SURROGATE_MAX')+Js(1.0)), (var.get(u'end')+Js(1.0)))
                            else:
                                var.get(u'bmp').callprop(u'push', (var.get(u'LOW_SURROGATE_MAX')+Js(1.0)), (Js(65535)+Js(1.0)))
                                var.get(u'astral').callprop(u'push', (Js(65535)+Js(1.0)), (var.get(u'end')+Js(1.0)))
                    else:
                        if ((var.get(u'start')>=var.get(u'HIGH_SURROGATE_MIN')) and (var.get(u'start')<=var.get(u'HIGH_SURROGATE_MAX'))):
                            if ((var.get(u'end')>=var.get(u'HIGH_SURROGATE_MIN')) and (var.get(u'end')<=var.get(u'HIGH_SURROGATE_MAX'))):
                                var.get(u'loneHighSurrogates').callprop(u'push', var.get(u'start'), (var.get(u'end')+Js(1.0)))
                            if ((var.get(u'end')>=var.get(u'LOW_SURROGATE_MIN')) and (var.get(u'end')<=var.get(u'LOW_SURROGATE_MAX'))):
                                var.get(u'loneHighSurrogates').callprop(u'push', var.get(u'start'), (var.get(u'HIGH_SURROGATE_MAX')+Js(1.0)))
                                var.get(u'loneLowSurrogates').callprop(u'push', var.get(u'LOW_SURROGATE_MIN'), (var.get(u'end')+Js(1.0)))
                            if (var.get(u'end')>var.get(u'LOW_SURROGATE_MAX')):
                                var.get(u'loneHighSurrogates').callprop(u'push', var.get(u'start'), (var.get(u'HIGH_SURROGATE_MAX')+Js(1.0)))
                                var.get(u'loneLowSurrogates').callprop(u'push', var.get(u'LOW_SURROGATE_MIN'), (var.get(u'LOW_SURROGATE_MAX')+Js(1.0)))
                                if (var.get(u'end')<=Js(65535)):
                                    var.get(u'bmp').callprop(u'push', (var.get(u'LOW_SURROGATE_MAX')+Js(1.0)), (var.get(u'end')+Js(1.0)))
                                else:
                                    var.get(u'bmp').callprop(u'push', (var.get(u'LOW_SURROGATE_MAX')+Js(1.0)), (Js(65535)+Js(1.0)))
                                    var.get(u'astral').callprop(u'push', (Js(65535)+Js(1.0)), (var.get(u'end')+Js(1.0)))
                        else:
                            if ((var.get(u'start')>=var.get(u'LOW_SURROGATE_MIN')) and (var.get(u'start')<=var.get(u'LOW_SURROGATE_MAX'))):
                                if ((var.get(u'end')>=var.get(u'LOW_SURROGATE_MIN')) and (var.get(u'end')<=var.get(u'LOW_SURROGATE_MAX'))):
                                    var.get(u'loneLowSurrogates').callprop(u'push', var.get(u'start'), (var.get(u'end')+Js(1.0)))
                                if (var.get(u'end')>var.get(u'LOW_SURROGATE_MAX')):
                                    var.get(u'loneLowSurrogates').callprop(u'push', var.get(u'start'), (var.get(u'LOW_SURROGATE_MAX')+Js(1.0)))
                                    if (var.get(u'end')<=Js(65535)):
                                        var.get(u'bmp').callprop(u'push', (var.get(u'LOW_SURROGATE_MAX')+Js(1.0)), (var.get(u'end')+Js(1.0)))
                                    else:
                                        var.get(u'bmp').callprop(u'push', (var.get(u'LOW_SURROGATE_MAX')+Js(1.0)), (Js(65535)+Js(1.0)))
                                        var.get(u'astral').callprop(u'push', (Js(65535)+Js(1.0)), (var.get(u'end')+Js(1.0)))
                            else:
                                if ((var.get(u'start')>var.get(u'LOW_SURROGATE_MAX')) and (var.get(u'start')<=Js(65535))):
                                    if (var.get(u'end')<=Js(65535)):
                                        var.get(u'bmp').callprop(u'push', var.get(u'start'), (var.get(u'end')+Js(1.0)))
                                    else:
                                        var.get(u'bmp').callprop(u'push', var.get(u'start'), (Js(65535)+Js(1.0)))
                                        var.get(u'astral').callprop(u'push', (Js(65535)+Js(1.0)), (var.get(u'end')+Js(1.0)))
                                else:
                                    var.get(u'astral').callprop(u'push', var.get(u'start'), (var.get(u'end')+Js(1.0)))
                    var.put(u'index', Js(2.0), u'+')
                PyJs_Object_3960_ = Js({u'loneHighSurrogates':var.get(u'loneHighSurrogates'),u'loneLowSurrogates':var.get(u'loneLowSurrogates'),u'bmp':var.get(u'bmp'),u'astral':var.get(u'astral')})
                return PyJs_Object_3960_
            PyJs_anonymous_3959_._set_name(u'anonymous')
            var.put(u'splitAtBMP', PyJs_anonymous_3959_)
            @Js
            def PyJs_anonymous_3961_(surrogateMappings, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'surrogateMappings':surrogateMappings}, var)
                var.registers([u'nextMapping', u'index', u'lowSurrogates', u'addLow', u'highSurrogates', u'mapping', u'tmpLow', u'length', u'result', u'nextLowSurrogates', u'nextHighSurrogates', u'surrogateMappings'])
                var.put(u'result', Js([]))
                var.put(u'tmpLow', Js([]))
                var.put(u'addLow', Js(False))
                pass
                pass
                pass
                pass
                pass
                pass
                var.put(u'index', (-Js(1.0)))
                var.put(u'length', var.get(u'surrogateMappings').get(u'length'))
                while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
                    var.put(u'mapping', var.get(u'surrogateMappings').get(var.get(u'index')))
                    var.put(u'nextMapping', var.get(u'surrogateMappings').get((var.get(u'index')+Js(1.0))))
                    if var.get(u'nextMapping').neg():
                        var.get(u'result').callprop(u'push', var.get(u'mapping'))
                        continue
                    var.put(u'highSurrogates', var.get(u'mapping').get(u'0'))
                    var.put(u'lowSurrogates', var.get(u'mapping').get(u'1'))
                    var.put(u'nextHighSurrogates', var.get(u'nextMapping').get(u'0'))
                    var.put(u'nextLowSurrogates', var.get(u'nextMapping').get(u'1'))
                    var.put(u'tmpLow', var.get(u'lowSurrogates'))
                    while ((var.get(u'nextHighSurrogates') and (var.get(u'highSurrogates').get(u'0')==var.get(u'nextHighSurrogates').get(u'0'))) and (var.get(u'highSurrogates').get(u'1')==var.get(u'nextHighSurrogates').get(u'1'))):
                        if var.get(u'dataIsSingleton')(var.get(u'nextLowSurrogates')):
                            var.put(u'tmpLow', var.get(u'dataAdd')(var.get(u'tmpLow'), var.get(u'nextLowSurrogates').get(u'0')))
                        else:
                            var.put(u'tmpLow', var.get(u'dataAddRange')(var.get(u'tmpLow'), var.get(u'nextLowSurrogates').get(u'0'), (var.get(u'nextLowSurrogates').get(u'1')-Js(1.0))))
                        var.put(u'index',Js(var.get(u'index').to_number())+Js(1))
                        var.put(u'mapping', var.get(u'surrogateMappings').get(var.get(u'index')))
                        var.put(u'highSurrogates', var.get(u'mapping').get(u'0'))
                        var.put(u'lowSurrogates', var.get(u'mapping').get(u'1'))
                        var.put(u'nextMapping', var.get(u'surrogateMappings').get((var.get(u'index')+Js(1.0))))
                        var.put(u'nextHighSurrogates', (var.get(u'nextMapping') and var.get(u'nextMapping').get(u'0')))
                        var.put(u'nextLowSurrogates', (var.get(u'nextMapping') and var.get(u'nextMapping').get(u'1')))
                        var.put(u'addLow', var.get(u'true'))
                    var.get(u'result').callprop(u'push', Js([var.get(u'highSurrogates'), (var.get(u'tmpLow') if var.get(u'addLow') else var.get(u'lowSurrogates'))]))
                    var.put(u'addLow', Js(False))
                return var.get(u'optimizeByLowSurrogates')(var.get(u'result'))
            PyJs_anonymous_3961_._set_name(u'anonymous')
            var.put(u'optimizeSurrogateMappings', PyJs_anonymous_3961_)
            @Js
            def PyJs_anonymous_3962_(surrogateMappings, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'surrogateMappings':surrogateMappings}, var)
                var.registers([u'index', u'lowSurrogates', u'lowSurrogateEnd', u'lowSurrogateStart', u'mapping', u'otherMapping', u'otherLowSurrogateEnd', u'otherLowSurrogates', u'surrogateMappings', u'otherLowSurrogateStart', u'innerIndex'])
                if (var.get(u'surrogateMappings').get(u'length')==Js(1.0)):
                    return var.get(u'surrogateMappings')
                var.put(u'index', (-Js(1.0)))
                var.put(u'innerIndex', (-Js(1.0)))
                while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'surrogateMappings').get(u'length')):
                    var.put(u'mapping', var.get(u'surrogateMappings').get(var.get(u'index')))
                    var.put(u'lowSurrogates', var.get(u'mapping').get(u'1'))
                    var.put(u'lowSurrogateStart', var.get(u'lowSurrogates').get(u'0'))
                    var.put(u'lowSurrogateEnd', var.get(u'lowSurrogates').get(u'1'))
                    var.put(u'innerIndex', var.get(u'index'))
                    while (var.put(u'innerIndex',Js(var.get(u'innerIndex').to_number())+Js(1))<var.get(u'surrogateMappings').get(u'length')):
                        var.put(u'otherMapping', var.get(u'surrogateMappings').get(var.get(u'innerIndex')))
                        var.put(u'otherLowSurrogates', var.get(u'otherMapping').get(u'1'))
                        var.put(u'otherLowSurrogateStart', var.get(u'otherLowSurrogates').get(u'0'))
                        var.put(u'otherLowSurrogateEnd', var.get(u'otherLowSurrogates').get(u'1'))
                        if ((var.get(u'lowSurrogateStart')==var.get(u'otherLowSurrogateStart')) and (var.get(u'lowSurrogateEnd')==var.get(u'otherLowSurrogateEnd'))):
                            if var.get(u'dataIsSingleton')(var.get(u'otherMapping').get(u'0')):
                                var.get(u'mapping').put(u'0', var.get(u'dataAdd')(var.get(u'mapping').get(u'0'), var.get(u'otherMapping').get(u'0').get(u'0')))
                            else:
                                var.get(u'mapping').put(u'0', var.get(u'dataAddRange')(var.get(u'mapping').get(u'0'), var.get(u'otherMapping').get(u'0').get(u'0'), (var.get(u'otherMapping').get(u'0').get(u'1')-Js(1.0))))
                            var.get(u'surrogateMappings').callprop(u'splice', var.get(u'innerIndex'), Js(1.0))
                            var.put(u'innerIndex',Js(var.get(u'innerIndex').to_number())-Js(1))
                return var.get(u'surrogateMappings')
            PyJs_anonymous_3962_._set_name(u'anonymous')
            var.put(u'optimizeByLowSurrogates', PyJs_anonymous_3962_)
            @Js
            def PyJs_anonymous_3963_(data, this, arguments, var=var):
                var = Scope({u'this':this, u'data':data, u'arguments':arguments}, var)
                var.registers([u'index', u'startLow', u'end', u'complete', u'startHigh', u'startsWithLowestLowSurrogate', u'start', u'length', u'endsWithHighestLowSurrogate', u'endHigh', u'data', u'endLow', u'surrogateMappings'])
                if var.get(u'data').get(u'length').neg():
                    return Js([])
                var.put(u'index', Js(0.0))
                pass
                pass
                pass
                pass
                pass
                pass
                var.put(u'surrogateMappings', Js([]))
                var.put(u'length', var.get(u'data').get(u'length'))
                while (var.get(u'index')<var.get(u'length')):
                    var.put(u'start', var.get(u'data').get(var.get(u'index')))
                    var.put(u'end', (var.get(u'data').get((var.get(u'index')+Js(1.0)))-Js(1.0)))
                    var.put(u'startHigh', var.get(u'highSurrogate')(var.get(u'start')))
                    var.put(u'startLow', var.get(u'lowSurrogate')(var.get(u'start')))
                    var.put(u'endHigh', var.get(u'highSurrogate')(var.get(u'end')))
                    var.put(u'endLow', var.get(u'lowSurrogate')(var.get(u'end')))
                    var.put(u'startsWithLowestLowSurrogate', (var.get(u'startLow')==var.get(u'LOW_SURROGATE_MIN')))
                    var.put(u'endsWithHighestLowSurrogate', (var.get(u'endLow')==var.get(u'LOW_SURROGATE_MAX')))
                    var.put(u'complete', Js(False))
                    if ((var.get(u'startHigh')==var.get(u'endHigh')) or (var.get(u'startsWithLowestLowSurrogate') and var.get(u'endsWithHighestLowSurrogate'))):
                        var.get(u'surrogateMappings').callprop(u'push', Js([Js([var.get(u'startHigh'), (var.get(u'endHigh')+Js(1.0))]), Js([var.get(u'startLow'), (var.get(u'endLow')+Js(1.0))])]))
                        var.put(u'complete', var.get(u'true'))
                    else:
                        var.get(u'surrogateMappings').callprop(u'push', Js([Js([var.get(u'startHigh'), (var.get(u'startHigh')+Js(1.0))]), Js([var.get(u'startLow'), (var.get(u'LOW_SURROGATE_MAX')+Js(1.0))])]))
                    if (var.get(u'complete').neg() and ((var.get(u'startHigh')+Js(1.0))<var.get(u'endHigh'))):
                        if var.get(u'endsWithHighestLowSurrogate'):
                            var.get(u'surrogateMappings').callprop(u'push', Js([Js([(var.get(u'startHigh')+Js(1.0)), (var.get(u'endHigh')+Js(1.0))]), Js([var.get(u'LOW_SURROGATE_MIN'), (var.get(u'endLow')+Js(1.0))])]))
                            var.put(u'complete', var.get(u'true'))
                        else:
                            var.get(u'surrogateMappings').callprop(u'push', Js([Js([(var.get(u'startHigh')+Js(1.0)), var.get(u'endHigh')]), Js([var.get(u'LOW_SURROGATE_MIN'), (var.get(u'LOW_SURROGATE_MAX')+Js(1.0))])]))
                    if var.get(u'complete').neg():
                        var.get(u'surrogateMappings').callprop(u'push', Js([Js([var.get(u'endHigh'), (var.get(u'endHigh')+Js(1.0))]), Js([var.get(u'LOW_SURROGATE_MIN'), (var.get(u'endLow')+Js(1.0))])]))
                    var.put(u'index', Js(2.0), u'+')
                return var.get(u'optimizeSurrogateMappings')(var.get(u'surrogateMappings'))
            PyJs_anonymous_3963_._set_name(u'anonymous')
            var.put(u'surrogateSet', PyJs_anonymous_3963_)
            @Js
            def PyJs_anonymous_3964_(surrogateMappings, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'surrogateMappings':surrogateMappings}, var)
                var.registers([u'result', u'surrogateMappings'])
                var.put(u'result', Js([]))
                @Js
                def PyJs_anonymous_3965_(surrogateMapping, this, arguments, var=var):
                    var = Scope({u'this':this, u'surrogateMapping':surrogateMapping, u'arguments':arguments}, var)
                    var.registers([u'lowSurrogates', u'highSurrogates', u'surrogateMapping'])
                    var.put(u'highSurrogates', var.get(u'surrogateMapping').get(u'0'))
                    var.put(u'lowSurrogates', var.get(u'surrogateMapping').get(u'1'))
                    var.get(u'result').callprop(u'push', (var.get(u'createBMPCharacterClasses')(var.get(u'highSurrogates'))+var.get(u'createBMPCharacterClasses')(var.get(u'lowSurrogates'))))
                PyJs_anonymous_3965_._set_name(u'anonymous')
                var.get(u'forEach')(var.get(u'surrogateMappings'), PyJs_anonymous_3965_)
                return var.get(u'result').callprop(u'join', Js(u'|'))
            PyJs_anonymous_3964_._set_name(u'anonymous')
            var.put(u'createSurrogateCharacterClasses', PyJs_anonymous_3964_)
            @Js
            def PyJs_anonymous_3966_(data, bmpOnly, hasUnicodeFlag, this, arguments, var=var):
                var = Scope({u'bmpOnly':bmpOnly, u'hasUnicodeFlag':hasUnicodeFlag, u'this':this, u'data':data, u'arguments':arguments}, var)
                var.registers([u'hasLoneHighSurrogates', u'loneLowSurrogates', u'hasLoneLowSurrogates', u'bmp', u'parts', u'result', u'bmpOnly', u'hasUnicodeFlag', u'astral', u'data', u'surrogateMappings', u'loneHighSurrogates'])
                if var.get(u'hasUnicodeFlag'):
                    return var.get(u'createUnicodeCharacterClasses')(var.get(u'data'))
                var.put(u'result', Js([]))
                var.put(u'parts', var.get(u'splitAtBMP')(var.get(u'data')))
                var.put(u'loneHighSurrogates', var.get(u'parts').get(u'loneHighSurrogates'))
                var.put(u'loneLowSurrogates', var.get(u'parts').get(u'loneLowSurrogates'))
                var.put(u'bmp', var.get(u'parts').get(u'bmp'))
                var.put(u'astral', var.get(u'parts').get(u'astral'))
                var.put(u'hasLoneHighSurrogates', var.get(u'dataIsEmpty')(var.get(u'loneHighSurrogates')).neg())
                var.put(u'hasLoneLowSurrogates', var.get(u'dataIsEmpty')(var.get(u'loneLowSurrogates')).neg())
                var.put(u'surrogateMappings', var.get(u'surrogateSet')(var.get(u'astral')))
                if var.get(u'bmpOnly'):
                    var.put(u'bmp', var.get(u'dataAddData')(var.get(u'bmp'), var.get(u'loneHighSurrogates')))
                    var.put(u'hasLoneHighSurrogates', Js(False))
                    var.put(u'bmp', var.get(u'dataAddData')(var.get(u'bmp'), var.get(u'loneLowSurrogates')))
                    var.put(u'hasLoneLowSurrogates', Js(False))
                if var.get(u'dataIsEmpty')(var.get(u'bmp')).neg():
                    var.get(u'result').callprop(u'push', var.get(u'createBMPCharacterClasses')(var.get(u'bmp')))
                if var.get(u'surrogateMappings').get(u'length'):
                    var.get(u'result').callprop(u'push', var.get(u'createSurrogateCharacterClasses')(var.get(u'surrogateMappings')))
                if var.get(u'hasLoneHighSurrogates'):
                    var.get(u'result').callprop(u'push', (var.get(u'createBMPCharacterClasses')(var.get(u'loneHighSurrogates'))+Js(u'(?![\\uDC00-\\uDFFF])')))
                if var.get(u'hasLoneLowSurrogates'):
                    var.get(u'result').callprop(u'push', (Js(u'(?:[^\\uD800-\\uDBFF]|^)')+var.get(u'createBMPCharacterClasses')(var.get(u'loneLowSurrogates'))))
                return var.get(u'result').callprop(u'join', Js(u'|'))
            PyJs_anonymous_3966_._set_name(u'anonymous')
            var.put(u'createCharacterClassesFromData', PyJs_anonymous_3966_)
            @Js
            def PyJs_anonymous_3967_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                if (var.get(u'arguments').get(u'length')>Js(1.0)):
                    var.put(u'value', var.get(u'slice').callprop(u'call', var.get(u'arguments')))
                if var.get(u"this").instanceof(var.get(u'regenerate')):
                    var.get(u"this").put(u'data', Js([]))
                    return (var.get(u"this").callprop(u'add', var.get(u'value')) if var.get(u'value') else var.get(u"this"))
                return var.get(u'regenerate').create().callprop(u'add', var.get(u'value'))
            PyJs_anonymous_3967_._set_name(u'anonymous')
            var.put(u'regenerate', PyJs_anonymous_3967_)
            var.get(u'regenerate').put(u'version', Js(u'1.3.2'))
            var.put(u'proto', var.get(u'regenerate').get(u'prototype'))
            @Js
            def PyJs_anonymous_3969_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'$this', u'value'])
                var.put(u'$this', var.get(u"this"))
                if (var.get(u'value')==var.get(u"null")):
                    return var.get(u'$this')
                if var.get(u'value').instanceof(var.get(u'regenerate')):
                    var.get(u'$this').put(u'data', var.get(u'dataAddData')(var.get(u'$this').get(u'data'), var.get(u'value').get(u'data')))
                    return var.get(u'$this')
                if (var.get(u'arguments').get(u'length')>Js(1.0)):
                    var.put(u'value', var.get(u'slice').callprop(u'call', var.get(u'arguments')))
                if var.get(u'isArray')(var.get(u'value')):
                    @Js
                    def PyJs_anonymous_3970_(item, this, arguments, var=var):
                        var = Scope({u'this':this, u'item':item, u'arguments':arguments}, var)
                        var.registers([u'item'])
                        var.get(u'$this').callprop(u'add', var.get(u'item'))
                    PyJs_anonymous_3970_._set_name(u'anonymous')
                    var.get(u'forEach')(var.get(u'value'), PyJs_anonymous_3970_)
                    return var.get(u'$this')
                var.get(u'$this').put(u'data', var.get(u'dataAdd')(var.get(u'$this').get(u'data'), (var.get(u'value') if var.get(u'isNumber')(var.get(u'value')) else var.get(u'symbolToCodePoint')(var.get(u'value')))))
                return var.get(u'$this')
            PyJs_anonymous_3969_._set_name(u'anonymous')
            @Js
            def PyJs_anonymous_3971_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'$this', u'value'])
                var.put(u'$this', var.get(u"this"))
                if (var.get(u'value')==var.get(u"null")):
                    return var.get(u'$this')
                if var.get(u'value').instanceof(var.get(u'regenerate')):
                    var.get(u'$this').put(u'data', var.get(u'dataRemoveData')(var.get(u'$this').get(u'data'), var.get(u'value').get(u'data')))
                    return var.get(u'$this')
                if (var.get(u'arguments').get(u'length')>Js(1.0)):
                    var.put(u'value', var.get(u'slice').callprop(u'call', var.get(u'arguments')))
                if var.get(u'isArray')(var.get(u'value')):
                    @Js
                    def PyJs_anonymous_3972_(item, this, arguments, var=var):
                        var = Scope({u'this':this, u'item':item, u'arguments':arguments}, var)
                        var.registers([u'item'])
                        var.get(u'$this').callprop(u'remove', var.get(u'item'))
                    PyJs_anonymous_3972_._set_name(u'anonymous')
                    var.get(u'forEach')(var.get(u'value'), PyJs_anonymous_3972_)
                    return var.get(u'$this')
                var.get(u'$this').put(u'data', var.get(u'dataRemove')(var.get(u'$this').get(u'data'), (var.get(u'value') if var.get(u'isNumber')(var.get(u'value')) else var.get(u'symbolToCodePoint')(var.get(u'value')))))
                return var.get(u'$this')
            PyJs_anonymous_3971_._set_name(u'anonymous')
            @Js
            def PyJs_anonymous_3973_(start, end, this, arguments, var=var):
                var = Scope({u'this':this, u'start':start, u'end':end, u'arguments':arguments}, var)
                var.registers([u'start', u'end', u'$this'])
                var.put(u'$this', var.get(u"this"))
                var.get(u'$this').put(u'data', var.get(u'dataAddRange')(var.get(u'$this').get(u'data'), (var.get(u'start') if var.get(u'isNumber')(var.get(u'start')) else var.get(u'symbolToCodePoint')(var.get(u'start'))), (var.get(u'end') if var.get(u'isNumber')(var.get(u'end')) else var.get(u'symbolToCodePoint')(var.get(u'end')))))
                return var.get(u'$this')
            PyJs_anonymous_3973_._set_name(u'anonymous')
            @Js
            def PyJs_anonymous_3974_(start, end, this, arguments, var=var):
                var = Scope({u'this':this, u'start':start, u'end':end, u'arguments':arguments}, var)
                var.registers([u'startCodePoint', u'endCodePoint', u'end', u'$this', u'start'])
                var.put(u'$this', var.get(u"this"))
                var.put(u'startCodePoint', (var.get(u'start') if var.get(u'isNumber')(var.get(u'start')) else var.get(u'symbolToCodePoint')(var.get(u'start'))))
                var.put(u'endCodePoint', (var.get(u'end') if var.get(u'isNumber')(var.get(u'end')) else var.get(u'symbolToCodePoint')(var.get(u'end'))))
                var.get(u'$this').put(u'data', var.get(u'dataRemoveRange')(var.get(u'$this').get(u'data'), var.get(u'startCodePoint'), var.get(u'endCodePoint')))
                return var.get(u'$this')
            PyJs_anonymous_3974_._set_name(u'anonymous')
            @Js
            def PyJs_anonymous_3975_(argument, this, arguments, var=var):
                var = Scope({u'this':this, u'argument':argument, u'arguments':arguments}, var)
                var.registers([u'array', u'$this', u'argument'])
                var.put(u'$this', var.get(u"this"))
                var.put(u'array', (var.get(u'dataToArray')(var.get(u'argument').get(u'data')) if var.get(u'argument').instanceof(var.get(u'regenerate')) else var.get(u'argument')))
                var.get(u'$this').put(u'data', var.get(u'dataIntersection')(var.get(u'$this').get(u'data'), var.get(u'array')))
                return var.get(u'$this')
            PyJs_anonymous_3975_._set_name(u'anonymous')
            @Js
            def PyJs_anonymous_3976_(codePoint, this, arguments, var=var):
                var = Scope({u'this':this, u'codePoint':codePoint, u'arguments':arguments}, var)
                var.registers([u'codePoint'])
                return var.get(u'dataContains')(var.get(u"this").get(u'data'), (var.get(u'codePoint') if var.get(u'isNumber')(var.get(u'codePoint')) else var.get(u'symbolToCodePoint')(var.get(u'codePoint'))))
            PyJs_anonymous_3976_._set_name(u'anonymous')
            @Js
            def PyJs_anonymous_3977_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'set'])
                var.put(u'set', var.get(u'regenerate').create())
                var.get(u'set').put(u'data', var.get(u"this").get(u'data').callprop(u'slice', Js(0.0)))
                return var.get(u'set')
            PyJs_anonymous_3977_._set_name(u'anonymous')
            @Js
            def PyJs_anonymous_3978_(options, this, arguments, var=var):
                var = Scope({u'this':this, u'options':options, u'arguments':arguments}, var)
                var.registers([u'result', u'options'])
                var.put(u'result', var.get(u'createCharacterClassesFromData')(var.get(u"this").get(u'data'), (var.get(u'options').get(u'bmpOnly') if var.get(u'options') else Js(False)), (var.get(u'options').get(u'hasUnicodeFlag') if var.get(u'options') else Js(False))))
                if var.get(u'result').neg():
                    return Js(u'[]')
                return var.get(u'result').callprop(u'replace', var.get(u'regexNull'), Js(u'\\0$1'))
            PyJs_anonymous_3978_._set_name(u'anonymous')
            @Js
            def PyJs_anonymous_3979_(flags, this, arguments, var=var):
                var = Scope({u'this':this, u'flags':flags, u'arguments':arguments}, var)
                var.registers([u'pattern', u'flags'])
                PyJs_Object_3980_ = Js({u'hasUnicodeFlag':var.get(u'true')})
                var.put(u'pattern', var.get(u"this").callprop(u'toString', (PyJs_Object_3980_ if (var.get(u'flags') and (var.get(u'flags').callprop(u'indexOf', Js(u'u'))!=(-Js(1.0)))) else var.get(u"null"))))
                return var.get(u'RegExp')(var.get(u'pattern'), (var.get(u'flags') or Js(u'')))
            PyJs_anonymous_3979_._set_name(u'anonymous')
            @Js
            def PyJs_anonymous_3981_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return var.get(u'dataToArray')(var.get(u"this").get(u'data'))
            PyJs_anonymous_3981_._set_name(u'anonymous')
            PyJs_Object_3968_ = Js({u'add':PyJs_anonymous_3969_,u'remove':PyJs_anonymous_3971_,u'addRange':PyJs_anonymous_3973_,u'removeRange':PyJs_anonymous_3974_,u'intersection':PyJs_anonymous_3975_,u'contains':PyJs_anonymous_3976_,u'clone':PyJs_anonymous_3977_,u'toString':PyJs_anonymous_3978_,u'toRegExp':PyJs_anonymous_3979_,u'valueOf':PyJs_anonymous_3981_})
            var.get(u'extend')(var.get(u'proto'), PyJs_Object_3968_)
            var.get(u'proto').put(u'toArray', var.get(u'proto').get(u'valueOf'))
            if (((var.get(u'define',throw=False).typeof()==Js(u'function')) and (var.get(u'define').get(u'amd').typeof()==Js(u'object'))) and var.get(u'define').get(u'amd')):
                @Js
                def PyJs_anonymous_3982_(this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments}, var)
                    var.registers([])
                    return var.get(u'regenerate')
                PyJs_anonymous_3982_._set_name(u'anonymous')
                var.get(u'define')(PyJs_anonymous_3982_)
            else:
                if (var.get(u'freeExports') and var.get(u'freeExports').get(u'nodeType').neg()):
                    if var.get(u'freeModule'):
                        var.get(u'freeModule').put(u'exports', var.get(u'regenerate'))
                    else:
                        var.get(u'freeExports').put(u'regenerate', var.get(u'regenerate'))
                else:
                    var.get(u'root').put(u'regenerate', var.get(u'regenerate'))
        PyJs_anonymous_3931_._set_name(u'anonymous')
        PyJs_anonymous_3931_(var.get(u"this"))
    PyJs_anonymous_3930_._set_name(u'anonymous')
    PyJs_anonymous_3930_.callprop(u'call', var.get(u"this"), (var.get(u'global') if PyJsStrictNeq(var.get(u'global',throw=False).typeof(),Js(u'undefined')) else (var.get(u'self') if PyJsStrictNeq(var.get(u'self',throw=False).typeof(),Js(u'undefined')) else (var.get(u'window') if PyJsStrictNeq(var.get(u'window',throw=False).typeof(),Js(u'undefined')) else PyJs_Object_3929_))))
PyJs_anonymous_3928_._set_name(u'anonymous')
PyJs_Object_3983_ = Js({})
@Js
def PyJs_anonymous_3984_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'regenerate', u'require', u'exports', u'module'])
    var.put(u'regenerate', var.get(u'require')(Js(u'regenerate')))
    def PyJs_LONG_3986_(var=var):
        return var.get(u'regenerate')().callprop(u'addRange', Js(0), Js(8)).callprop(u'addRange', Js(14), Js(31)).callprop(u'addRange', Js(33), Js(159)).callprop(u'addRange', Js(161), Js(5759)).callprop(u'addRange', Js(5761), Js(8191)).callprop(u'addRange', Js(8203), Js(8231)).callprop(u'addRange', Js(8234), Js(8238)).callprop(u'addRange', Js(8240), Js(8286)).callprop(u'addRange', Js(8288), Js(12287)).callprop(u'addRange', Js(12289), Js(65278))
    PyJs_Object_3985_ = Js({u'd':var.get(u'regenerate')().callprop(u'addRange', Js(48), Js(57)),u'D':var.get(u'regenerate')().callprop(u'addRange', Js(0), Js(47)).callprop(u'addRange', Js(58), Js(65535)),u's':var.get(u'regenerate')(Js(32), Js(160), Js(5760), Js(8239), Js(8287), Js(12288), Js(65279)).callprop(u'addRange', Js(9), Js(13)).callprop(u'addRange', Js(8192), Js(8202)).callprop(u'addRange', Js(8232), Js(8233)),u'S':PyJs_LONG_3986_().callprop(u'addRange', Js(65280), Js(65535)),u'w':var.get(u'regenerate')(Js(95)).callprop(u'addRange', Js(48), Js(57)).callprop(u'addRange', Js(65), Js(90)).callprop(u'addRange', Js(97), Js(122)),u'W':var.get(u'regenerate')(Js(96)).callprop(u'addRange', Js(0), Js(47)).callprop(u'addRange', Js(58), Js(64)).callprop(u'addRange', Js(91), Js(94)).callprop(u'addRange', Js(123), Js(65535))})
    var.get(u'exports').put(u'REGULAR', PyJs_Object_3985_)
    def PyJs_LONG_3988_(var=var):
        return var.get(u'regenerate')().callprop(u'addRange', Js(0), Js(8)).callprop(u'addRange', Js(14), Js(31)).callprop(u'addRange', Js(33), Js(159)).callprop(u'addRange', Js(161), Js(5759)).callprop(u'addRange', Js(5761), Js(8191)).callprop(u'addRange', Js(8203), Js(8231)).callprop(u'addRange', Js(8234), Js(8238)).callprop(u'addRange', Js(8240), Js(8286)).callprop(u'addRange', Js(8288), Js(12287)).callprop(u'addRange', Js(12289), Js(65278))
    PyJs_Object_3987_ = Js({u'd':var.get(u'regenerate')().callprop(u'addRange', Js(48), Js(57)),u'D':var.get(u'regenerate')().callprop(u'addRange', Js(0), Js(47)).callprop(u'addRange', Js(58), Js(1114111)),u's':var.get(u'regenerate')(Js(32), Js(160), Js(5760), Js(8239), Js(8287), Js(12288), Js(65279)).callprop(u'addRange', Js(9), Js(13)).callprop(u'addRange', Js(8192), Js(8202)).callprop(u'addRange', Js(8232), Js(8233)),u'S':PyJs_LONG_3988_().callprop(u'addRange', Js(65280), Js(1114111)),u'w':var.get(u'regenerate')(Js(95)).callprop(u'addRange', Js(48), Js(57)).callprop(u'addRange', Js(65), Js(90)).callprop(u'addRange', Js(97), Js(122)),u'W':var.get(u'regenerate')(Js(96)).callprop(u'addRange', Js(0), Js(47)).callprop(u'addRange', Js(58), Js(64)).callprop(u'addRange', Js(91), Js(94)).callprop(u'addRange', Js(123), Js(1114111))})
    var.get(u'exports').put(u'UNICODE', PyJs_Object_3987_)
    def PyJs_LONG_3990_(var=var):
        return var.get(u'regenerate')().callprop(u'addRange', Js(0), Js(8)).callprop(u'addRange', Js(14), Js(31)).callprop(u'addRange', Js(33), Js(159)).callprop(u'addRange', Js(161), Js(5759)).callprop(u'addRange', Js(5761), Js(8191)).callprop(u'addRange', Js(8203), Js(8231)).callprop(u'addRange', Js(8234), Js(8238)).callprop(u'addRange', Js(8240), Js(8286)).callprop(u'addRange', Js(8288), Js(12287)).callprop(u'addRange', Js(12289), Js(65278))
    PyJs_Object_3989_ = Js({u'd':var.get(u'regenerate')().callprop(u'addRange', Js(48), Js(57)),u'D':var.get(u'regenerate')().callprop(u'addRange', Js(0), Js(47)).callprop(u'addRange', Js(58), Js(1114111)),u's':var.get(u'regenerate')(Js(32), Js(160), Js(5760), Js(8239), Js(8287), Js(12288), Js(65279)).callprop(u'addRange', Js(9), Js(13)).callprop(u'addRange', Js(8192), Js(8202)).callprop(u'addRange', Js(8232), Js(8233)),u'S':PyJs_LONG_3990_().callprop(u'addRange', Js(65280), Js(1114111)),u'w':var.get(u'regenerate')(Js(95), Js(383), Js(8490)).callprop(u'addRange', Js(48), Js(57)).callprop(u'addRange', Js(65), Js(90)).callprop(u'addRange', Js(97), Js(122)),u'W':var.get(u'regenerate')(Js(75), Js(83), Js(96)).callprop(u'addRange', Js(0), Js(47)).callprop(u'addRange', Js(58), Js(64)).callprop(u'addRange', Js(91), Js(94)).callprop(u'addRange', Js(123), Js(1114111))})
    var.get(u'exports').put(u'UNICODE_IGNORE_CASE', PyJs_Object_3989_)
PyJs_anonymous_3984_._set_name(u'anonymous')
PyJs_Object_3991_ = Js({u'regenerate':Js(501.0)})
@Js
def PyJs_anonymous_3992_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_3993_ = Js({u'75':Js(8490.0),u'83':Js(383.0),u'107':Js(8490.0),u'115':Js(383.0),u'181':Js(924.0),u'197':Js(8491.0),u'383':Js(83.0),u'452':Js(453.0),u'453':Js(452.0),u'455':Js(456.0),u'456':Js(455.0),u'458':Js(459.0),u'459':Js(458.0),u'497':Js(498.0),u'498':Js(497.0),u'837':Js(8126.0),u'914':Js(976.0),u'917':Js(1013.0),u'920':Js(1012.0),u'921':Js(8126.0),u'922':Js(1008.0),u'924':Js(181.0),u'928':Js(982.0),u'929':Js(1009.0),u'931':Js(962.0),u'934':Js(981.0),u'937':Js(8486.0),u'962':Js(931.0),u'976':Js(914.0),u'977':Js(1012.0),u'981':Js(934.0),u'982':Js(928.0),u'1008':Js(922.0),u'1009':Js(929.0),u'1012':Js([Js(920.0), Js(977.0)]),u'1013':Js(917.0),u'7776':Js(7835.0),u'7835':Js(7776.0),u'8126':Js([Js(837.0), Js(921.0)]),u'8486':Js(937.0),u'8490':Js(75.0),u'8491':Js(197.0),u'66560':Js(66600.0),u'66561':Js(66601.0),u'66562':Js(66602.0),u'66563':Js(66603.0),u'66564':Js(66604.0),u'66565':Js(66605.0),u'66566':Js(66606.0),u'66567':Js(66607.0),u'66568':Js(66608.0),u'66569':Js(66609.0),u'66570':Js(66610.0),u'66571':Js(66611.0),u'66572':Js(66612.0),u'66573':Js(66613.0),u'66574':Js(66614.0),u'66575':Js(66615.0),u'66576':Js(66616.0),u'66577':Js(66617.0),u'66578':Js(66618.0),u'66579':Js(66619.0),u'66580':Js(66620.0),u'66581':Js(66621.0),u'66582':Js(66622.0),u'66583':Js(66623.0),u'66584':Js(66624.0),u'66585':Js(66625.0),u'66586':Js(66626.0),u'66587':Js(66627.0),u'66588':Js(66628.0),u'66589':Js(66629.0),u'66590':Js(66630.0),u'66591':Js(66631.0),u'66592':Js(66632.0),u'66593':Js(66633.0),u'66594':Js(66634.0),u'66595':Js(66635.0),u'66596':Js(66636.0),u'66597':Js(66637.0),u'66598':Js(66638.0),u'66599':Js(66639.0),u'66600':Js(66560.0),u'66601':Js(66561.0),u'66602':Js(66562.0),u'66603':Js(66563.0),u'66604':Js(66564.0),u'66605':Js(66565.0),u'66606':Js(66566.0),u'66607':Js(66567.0),u'66608':Js(66568.0),u'66609':Js(66569.0),u'66610':Js(66570.0),u'66611':Js(66571.0),u'66612':Js(66572.0),u'66613':Js(66573.0),u'66614':Js(66574.0),u'66615':Js(66575.0),u'66616':Js(66576.0),u'66617':Js(66577.0),u'66618':Js(66578.0),u'66619':Js(66579.0),u'66620':Js(66580.0),u'66621':Js(66581.0),u'66622':Js(66582.0),u'66623':Js(66583.0),u'66624':Js(66584.0),u'66625':Js(66585.0),u'66626':Js(66586.0),u'66627':Js(66587.0),u'66628':Js(66588.0),u'66629':Js(66589.0),u'66630':Js(66590.0),u'66631':Js(66591.0),u'66632':Js(66592.0),u'66633':Js(66593.0),u'66634':Js(66594.0),u'66635':Js(66595.0),u'66636':Js(66596.0),u'66637':Js(66597.0),u'66638':Js(66598.0),u'66639':Js(66599.0),u'68736':Js(68800.0),u'68737':Js(68801.0),u'68738':Js(68802.0),u'68739':Js(68803.0),u'68740':Js(68804.0),u'68741':Js(68805.0),u'68742':Js(68806.0),u'68743':Js(68807.0),u'68744':Js(68808.0),u'68745':Js(68809.0),u'68746':Js(68810.0),u'68747':Js(68811.0),u'68748':Js(68812.0),u'68749':Js(68813.0),u'68750':Js(68814.0),u'68751':Js(68815.0),u'68752':Js(68816.0),u'68753':Js(68817.0),u'68754':Js(68818.0),u'68755':Js(68819.0),u'68756':Js(68820.0),u'68757':Js(68821.0),u'68758':Js(68822.0),u'68759':Js(68823.0),u'68760':Js(68824.0),u'68761':Js(68825.0),u'68762':Js(68826.0),u'68763':Js(68827.0),u'68764':Js(68828.0),u'68765':Js(68829.0),u'68766':Js(68830.0),u'68767':Js(68831.0),u'68768':Js(68832.0),u'68769':Js(68833.0),u'68770':Js(68834.0),u'68771':Js(68835.0),u'68772':Js(68836.0),u'68773':Js(68837.0),u'68774':Js(68838.0),u'68775':Js(68839.0),u'68776':Js(68840.0),u'68777':Js(68841.0),u'68778':Js(68842.0),u'68779':Js(68843.0),u'68780':Js(68844.0),u'68781':Js(68845.0),u'68782':Js(68846.0),u'68783':Js(68847.0),u'68784':Js(68848.0),u'68785':Js(68849.0),u'68786':Js(68850.0),u'68800':Js(68736.0),u'68801':Js(68737.0),u'68802':Js(68738.0),u'68803':Js(68739.0),u'68804':Js(68740.0),u'68805':Js(68741.0),u'68806':Js(68742.0),u'68807':Js(68743.0),u'68808':Js(68744.0),u'68809':Js(68745.0),u'68810':Js(68746.0),u'68811':Js(68747.0),u'68812':Js(68748.0),u'68813':Js(68749.0),u'68814':Js(68750.0),u'68815':Js(68751.0),u'68816':Js(68752.0),u'68817':Js(68753.0),u'68818':Js(68754.0),u'68819':Js(68755.0),u'68820':Js(68756.0),u'68821':Js(68757.0),u'68822':Js(68758.0),u'68823':Js(68759.0),u'68824':Js(68760.0),u'68825':Js(68761.0),u'68826':Js(68762.0),u'68827':Js(68763.0),u'68828':Js(68764.0),u'68829':Js(68765.0),u'68830':Js(68766.0),u'68831':Js(68767.0),u'68832':Js(68768.0),u'68833':Js(68769.0),u'68834':Js(68770.0),u'68835':Js(68771.0),u'68836':Js(68772.0),u'68837':Js(68773.0),u'68838':Js(68774.0),u'68839':Js(68775.0),u'68840':Js(68776.0),u'68841':Js(68777.0),u'68842':Js(68778.0),u'68843':Js(68779.0),u'68844':Js(68780.0),u'68845':Js(68781.0),u'68846':Js(68782.0),u'68847':Js(68783.0),u'68848':Js(68784.0),u'68849':Js(68785.0),u'68850':Js(68786.0),u'71840':Js(71872.0),u'71841':Js(71873.0),u'71842':Js(71874.0),u'71843':Js(71875.0),u'71844':Js(71876.0),u'71845':Js(71877.0),u'71846':Js(71878.0),u'71847':Js(71879.0),u'71848':Js(71880.0),u'71849':Js(71881.0),u'71850':Js(71882.0),u'71851':Js(71883.0),u'71852':Js(71884.0),u'71853':Js(71885.0),u'71854':Js(71886.0),u'71855':Js(71887.0),u'71856':Js(71888.0),u'71857':Js(71889.0),u'71858':Js(71890.0),u'71859':Js(71891.0),u'71860':Js(71892.0),u'71861':Js(71893.0),u'71862':Js(71894.0),u'71863':Js(71895.0),u'71864':Js(71896.0),u'71865':Js(71897.0),u'71866':Js(71898.0),u'71867':Js(71899.0),u'71868':Js(71900.0),u'71869':Js(71901.0),u'71870':Js(71902.0),u'71871':Js(71903.0),u'71872':Js(71840.0),u'71873':Js(71841.0),u'71874':Js(71842.0),u'71875':Js(71843.0),u'71876':Js(71844.0),u'71877':Js(71845.0),u'71878':Js(71846.0),u'71879':Js(71847.0),u'71880':Js(71848.0),u'71881':Js(71849.0),u'71882':Js(71850.0),u'71883':Js(71851.0),u'71884':Js(71852.0),u'71885':Js(71853.0),u'71886':Js(71854.0),u'71887':Js(71855.0),u'71888':Js(71856.0),u'71889':Js(71857.0),u'71890':Js(71858.0),u'71891':Js(71859.0),u'71892':Js(71860.0),u'71893':Js(71861.0),u'71894':Js(71862.0),u'71895':Js(71863.0),u'71896':Js(71864.0),u'71897':Js(71865.0),u'71898':Js(71866.0),u'71899':Js(71867.0),u'71900':Js(71868.0),u'71901':Js(71869.0),u'71902':Js(71870.0),u'71903':Js(71871.0)})
    var.get(u'module').put(u'exports', PyJs_Object_3993_)
PyJs_anonymous_3992_._set_name(u'anonymous')
PyJs_Object_3994_ = Js({})
@Js
def PyJs_anonymous_3995_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'iuMappings', u'module', u'parse', u'unicode', u'wrap', u'hasOwnProperty', u'regenerate', u'ignoreCase', u'caseFold', u'has', u'DOT_SET', u'getCharacterClassEscapeSet', u'exports', u'object', u'update', u'processCharacterClass', u'generate', u'ESCAPE_SETS', u'require', u'processTerm', u'BMP_SET', u'UNICODE_SET', u'assign', u'DOT_SET_UNICODE'])
    @Js
    def PyJsHoisted_getCharacterClassEscapeSet_(character, this, arguments, var=var):
        var = Scope({u'this':this, u'character':character, u'arguments':arguments}, var)
        var.registers([u'character'])
        if var.get(u'unicode'):
            if var.get(u'ignoreCase'):
                return var.get(u'ESCAPE_SETS').get(u'UNICODE_IGNORE_CASE').get(var.get(u'character'))
            return var.get(u'ESCAPE_SETS').get(u'UNICODE').get(var.get(u'character'))
        return var.get(u'ESCAPE_SETS').get(u'REGULAR').get(var.get(u'character'))
    PyJsHoisted_getCharacterClassEscapeSet_.func_name = u'getCharacterClassEscapeSet'
    var.put(u'getCharacterClassEscapeSet', PyJsHoisted_getCharacterClassEscapeSet_)
    @Js
    def PyJsHoisted_update_(item, pattern, this, arguments, var=var):
        var = Scope({u'this':this, u'item':item, u'arguments':arguments, u'pattern':pattern}, var)
        var.registers([u'item', u'tree', u'pattern'])
        if var.get(u'pattern').neg():
            return var.get('undefined')
        var.put(u'tree', var.get(u'parse')(var.get(u'pattern'), Js(u'')))
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'tree').get(u'type'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'characterClass')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'group')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'value')):
                SWITCHED = True
                break
            if True:
                SWITCHED = True
                var.put(u'tree', var.get(u'wrap')(var.get(u'tree'), var.get(u'pattern')))
            SWITCHED = True
            break
        var.get(u'assign')(var.get(u'item'), var.get(u'tree'))
    PyJsHoisted_update_.func_name = u'update'
    var.put(u'update', PyJsHoisted_update_)
    @Js
    def PyJsHoisted_processTerm_(item, this, arguments, var=var):
        var = Scope({u'this':this, u'item':item, u'arguments':arguments}, var)
        var.registers([u'item', u'codePoint', u'set', u'folded'])
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'item').get(u'type'))
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'dot')):
                SWITCHED = True
                var.get(u'update')(var.get(u'item'), (var.get(u'DOT_SET_UNICODE') if var.get(u'unicode') else var.get(u'DOT_SET')).callprop(u'toString'))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'characterClass')):
                SWITCHED = True
                var.put(u'item', var.get(u'processCharacterClass')(var.get(u'item')))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'characterClassEscape')):
                SWITCHED = True
                var.get(u'update')(var.get(u'item'), var.get(u'getCharacterClassEscapeSet')(var.get(u'item').get(u'value')).callprop(u'toString'))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'alternative')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'disjunction')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'group')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'quantifier')):
                SWITCHED = True
                var.get(u'item').put(u'body', var.get(u'item').get(u'body').callprop(u'map', var.get(u'processTerm')))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'value')):
                SWITCHED = True
                var.put(u'codePoint', var.get(u'item').get(u'codePoint'))
                var.put(u'set', var.get(u'regenerate')(var.get(u'codePoint')))
                if (var.get(u'ignoreCase') and var.get(u'unicode')):
                    var.put(u'folded', var.get(u'caseFold')(var.get(u'codePoint')))
                    if var.get(u'folded'):
                        var.get(u'set').callprop(u'add', var.get(u'folded'))
                var.get(u'update')(var.get(u'item'), var.get(u'set').callprop(u'toString'))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'anchor')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'empty')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'group')):
                SWITCHED = True
                pass
            if SWITCHED or PyJsStrictEq(CONDITION, Js(u'reference')):
                SWITCHED = True
                break
            if True:
                SWITCHED = True
                PyJsTempException = JsToPyException(var.get(u'Error')((Js(u'Unknown term type: ')+var.get(u'item').get(u'type'))))
                raise PyJsTempException
            SWITCHED = True
            break
        return var.get(u'item')
    PyJsHoisted_processTerm_.func_name = u'processTerm'
    var.put(u'processTerm', PyJsHoisted_processTerm_)
    @Js
    def PyJsHoisted_caseFold_(codePoint, this, arguments, var=var):
        var = Scope({u'this':this, u'codePoint':codePoint, u'arguments':arguments}, var)
        var.registers([u'codePoint'])
        return (var.get(u'iuMappings').get(var.get(u'codePoint')) if var.get(u'has')(var.get(u'iuMappings'), var.get(u'codePoint')) else Js(False))
    PyJsHoisted_caseFold_.func_name = u'caseFold'
    var.put(u'caseFold', PyJsHoisted_caseFold_)
    @Js
    def PyJsHoisted_processCharacterClass_(characterClassItem, this, arguments, var=var):
        var = Scope({u'this':this, u'characterClassItem':characterClassItem, u'arguments':arguments}, var)
        var.registers([u'body', u'set', u'characterClassItem'])
        var.put(u'set', var.get(u'regenerate')())
        @Js
        def PyJs_anonymous_3999_(item, this, arguments, var=var):
            var = Scope({u'this':this, u'item':item, u'arguments':arguments}, var)
            var.registers([u'max', u'folded', u'item', u'min'])
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'item').get(u'type'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'value')):
                    SWITCHED = True
                    var.get(u'set').callprop(u'add', var.get(u'item').get(u'codePoint'))
                    if (var.get(u'ignoreCase') and var.get(u'unicode')):
                        var.put(u'folded', var.get(u'caseFold')(var.get(u'item').get(u'codePoint')))
                        if var.get(u'folded'):
                            var.get(u'set').callprop(u'add', var.get(u'folded'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'characterClassRange')):
                    SWITCHED = True
                    var.put(u'min', var.get(u'item').get(u'min').get(u'codePoint'))
                    var.put(u'max', var.get(u'item').get(u'max').get(u'codePoint'))
                    var.get(u'set').callprop(u'addRange', var.get(u'min'), var.get(u'max'))
                    if (var.get(u'ignoreCase') and var.get(u'unicode')):
                        var.get(u'set').callprop(u'iuAddRange', var.get(u'min'), var.get(u'max'))
                    break
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'characterClassEscape')):
                    SWITCHED = True
                    var.get(u'set').callprop(u'add', var.get(u'getCharacterClassEscapeSet')(var.get(u'item').get(u'value')))
                    break
                if True:
                    SWITCHED = True
                    PyJsTempException = JsToPyException(var.get(u'Error')((Js(u'Unknown term type: ')+var.get(u'item').get(u'type'))))
                    raise PyJsTempException
                SWITCHED = True
                break
        PyJs_anonymous_3999_._set_name(u'anonymous')
        var.put(u'body', var.get(u'characterClassItem').get(u'body').callprop(u'forEach', PyJs_anonymous_3999_))
        if var.get(u'characterClassItem').get(u'negative'):
            var.put(u'set', (var.get(u'UNICODE_SET') if var.get(u'unicode') else var.get(u'BMP_SET')).callprop(u'clone').callprop(u'remove', var.get(u'set')))
        var.get(u'update')(var.get(u'characterClassItem'), var.get(u'set').callprop(u'toString'))
        return var.get(u'characterClassItem')
    PyJsHoisted_processCharacterClass_.func_name = u'processCharacterClass'
    var.put(u'processCharacterClass', PyJsHoisted_processCharacterClass_)
    @Js
    def PyJsHoisted_wrap_(tree, pattern, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'tree':tree, u'arguments':arguments}, var)
        var.registers([u'pattern', u'tree'])
        PyJs_Object_3998_ = Js({u'type':Js(u'group'),u'behavior':Js(u'ignore'),u'body':Js([var.get(u'tree')]),u'raw':((Js(u'(?:')+var.get(u'pattern'))+Js(u')'))})
        return PyJs_Object_3998_
    PyJsHoisted_wrap_.func_name = u'wrap'
    var.put(u'wrap', PyJsHoisted_wrap_)
    @Js
    def PyJsHoisted_has_(object, property, this, arguments, var=var):
        var = Scope({u'this':this, u'property':property, u'object':object, u'arguments':arguments}, var)
        var.registers([u'property', u'object'])
        return var.get(u'hasOwnProperty').callprop(u'call', var.get(u'object'), var.get(u'property'))
    PyJsHoisted_has_.func_name = u'has'
    var.put(u'has', PyJsHoisted_has_)
    @Js
    def PyJsHoisted_assign_(target, source, this, arguments, var=var):
        var = Scope({u'this':this, u'source':source, u'target':target, u'arguments':arguments}, var)
        var.registers([u'source', u'target', u'key'])
        for PyJsTemp in var.get(u'source'):
            var.put(u'key', PyJsTemp)
            var.get(u'target').put(var.get(u'key'), var.get(u'source').get(var.get(u'key')))
    PyJsHoisted_assign_.func_name = u'assign'
    var.put(u'assign', PyJsHoisted_assign_)
    var.put(u'generate', var.get(u'require')(Js(u'regjsgen')).get(u'generate'))
    var.put(u'parse', var.get(u'require')(Js(u'regjsparser')).get(u'parse'))
    var.put(u'regenerate', var.get(u'require')(Js(u'regenerate')))
    var.put(u'iuMappings', var.get(u'require')(Js(u'./data/iu-mappings.json')))
    var.put(u'ESCAPE_SETS', var.get(u'require')(Js(u'./data/character-class-escape-sets.js')))
    pass
    PyJs_Object_3996_ = Js({})
    var.put(u'object', PyJs_Object_3996_)
    var.put(u'hasOwnProperty', var.get(u'object').get(u'hasOwnProperty'))
    pass
    var.put(u'UNICODE_SET', var.get(u'regenerate')().callprop(u'addRange', Js(0), Js(1114111)))
    var.put(u'BMP_SET', var.get(u'regenerate')().callprop(u'addRange', Js(0), Js(65535)))
    var.put(u'DOT_SET_UNICODE', var.get(u'UNICODE_SET').callprop(u'clone').callprop(u'remove', Js(10), Js(13), Js(8232), Js(8233)))
    var.put(u'DOT_SET', var.get(u'DOT_SET_UNICODE').callprop(u'clone').callprop(u'intersection', var.get(u'BMP_SET')))
    @Js
    def PyJs_anonymous_3997_(min, max, this, arguments, var=var):
        var = Scope({u'this':this, u'max':max, u'arguments':arguments, u'min':min}, var)
        var.registers([u'max', u'folded', u'$this', u'min'])
        var.put(u'$this', var.get(u"this"))
        while 1:
            var.put(u'folded', var.get(u'caseFold')(var.get(u'min')))
            if var.get(u'folded'):
                var.get(u'$this').callprop(u'add', var.get(u'folded'))
            if not (var.put(u'min',Js(var.get(u'min').to_number())+Js(1))<=var.get(u'max')):
                break
        return var.get(u'$this')
    PyJs_anonymous_3997_._set_name(u'anonymous')
    var.get(u'regenerate').get(u'prototype').put(u'iuAddRange', PyJs_anonymous_3997_)
    pass
    pass
    pass
    pass
    var.put(u'ignoreCase', Js(False))
    var.put(u'unicode', Js(False))
    pass
    pass
    pass
    @Js
    def PyJs_anonymous_4000_(pattern, flags, this, arguments, var=var):
        var = Scope({u'this':this, u'pattern':pattern, u'flags':flags, u'arguments':arguments}, var)
        var.registers([u'pattern', u'tree', u'flags'])
        var.put(u'tree', var.get(u'parse')(var.get(u'pattern'), var.get(u'flags')))
        var.put(u'ignoreCase', ((var.get(u'flags').callprop(u'indexOf', Js(u'i'))>(-Js(1.0))) if var.get(u'flags') else Js(False)))
        var.put(u'unicode', ((var.get(u'flags').callprop(u'indexOf', Js(u'u'))>(-Js(1.0))) if var.get(u'flags') else Js(False)))
        var.get(u'assign')(var.get(u'tree'), var.get(u'processTerm')(var.get(u'tree')))
        return var.get(u'generate')(var.get(u'tree'))
    PyJs_anonymous_4000_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_4000_)
PyJs_anonymous_3995_._set_name(u'anonymous')
PyJs_Object_4001_ = Js({u'./data/character-class-escape-sets.js':Js(502.0),u'./data/iu-mappings.json':Js(503.0),u'regenerate':Js(501.0),u'regjsgen':Js(505.0),u'regjsparser':Js(506.0)})
@Js
def PyJs_anonymous_4002_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_4003_ = Js({})
    @Js
    def PyJs_anonymous_4004_(PyJsArg_676c6f62616c_, this, arguments, var=var):
        var = Scope({u'this':this, u'global':PyJsArg_676c6f62616c_, u'arguments':arguments}, var)
        var.registers([u'global'])
        pass
        @Js
        def PyJs_anonymous_4005_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'freeModule', u'objectTypes', u'freeGlobal', u'generateCharacterClassRange', u'freeExports', u'generateCharacterClassEscape', u'assertType', u'generateReference', u'generateCharacterClass', u'generateAlternative', u'generateClassAtom', u'floor', u'generateDisjunction', u'stringFromCharCode', u'generate', u'generateQuantifier', u'generateDot', u'fromCodePoint', u'generateValue', u'generateAnchor', u'generateAtom', u'oldRoot', u'generateTerm', u'root', u'generateGroup'])
            @Js
            def PyJsHoisted_generateQuantifier_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node', u'max', u'quantifier', u'min'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'quantifier'))
                var.put(u'quantifier', Js(u''))
                var.put(u'min', var.get(u'node').get(u'min'))
                var.put(u'max', var.get(u'node').get(u'max'))
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'max'))
                    if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'undefined')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, var.get(u"null")):
                        SWITCHED = True
                        while 1:
                            SWITCHED = False
                            CONDITION = (var.get(u'min'))
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(0.0)):
                                SWITCHED = True
                                var.put(u'quantifier', Js(u'*'))
                                break
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(1.0)):
                                SWITCHED = True
                                var.put(u'quantifier', Js(u'+'))
                                break
                            if True:
                                SWITCHED = True
                                var.put(u'quantifier', ((Js(u'{')+var.get(u'min'))+Js(u',}')))
                                break
                            SWITCHED = True
                            break
                        break
                    if True:
                        SWITCHED = True
                        if (var.get(u'min')==var.get(u'max')):
                            var.put(u'quantifier', ((Js(u'{')+var.get(u'min'))+Js(u'}')))
                        else:
                            if ((var.get(u'min')==Js(0.0)) and (var.get(u'max')==Js(1.0))):
                                var.put(u'quantifier', Js(u'?'))
                            else:
                                var.put(u'quantifier', ((((Js(u'{')+var.get(u'min'))+Js(u','))+var.get(u'max'))+Js(u'}')))
                        break
                    SWITCHED = True
                    break
                if var.get(u'node').get(u'greedy').neg():
                    var.put(u'quantifier', Js(u'?'), u'+')
                return (var.get(u'generateAtom')(var.get(u'node').get(u'body').get(u'0'))+var.get(u'quantifier'))
            PyJsHoisted_generateQuantifier_.func_name = u'generateQuantifier'
            var.put(u'generateQuantifier', PyJsHoisted_generateQuantifier_)
            @Js
            def PyJsHoisted_generateTerm_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'anchor|characterClass|characterClassEscape|empty|group|quantifier|reference|value'))
                return var.get(u'generate')(var.get(u'node'))
            PyJsHoisted_generateTerm_.func_name = u'generateTerm'
            var.put(u'generateTerm', PyJsHoisted_generateTerm_)
            @Js
            def PyJsHoisted_generateCharacterClass_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'i', u'node', u'length', u'classRanges', u'result'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'characterClass'))
                var.put(u'classRanges', var.get(u'node').get(u'body'))
                var.put(u'length', (var.get(u'classRanges').get(u'length') if var.get(u'classRanges') else Js(0.0)))
                var.put(u'i', (-Js(1.0)))
                var.put(u'result', Js(u'['))
                if var.get(u'node').get(u'negative'):
                    var.put(u'result', Js(u'^'), u'+')
                while (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))<var.get(u'length')):
                    var.put(u'result', var.get(u'generateClassAtom')(var.get(u'classRanges').get(var.get(u'i'))), u'+')
                var.put(u'result', Js(u']'), u'+')
                return var.get(u'result')
            PyJsHoisted_generateCharacterClass_.func_name = u'generateCharacterClass'
            var.put(u'generateCharacterClass', PyJsHoisted_generateCharacterClass_)
            @Js
            def PyJsHoisted_generateClassAtom_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'anchor|characterClassEscape|characterClassRange|dot|value'))
                return var.get(u'generate')(var.get(u'node'))
            PyJsHoisted_generateClassAtom_.func_name = u'generateClassAtom'
            var.put(u'generateClassAtom', PyJsHoisted_generateClassAtom_)
            @Js
            def PyJsHoisted_fromCodePoint_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'index', u'codePoint', u'codeUnits', u'length', u'result', u'lowSurrogate', u'MAX_SIZE', u'highSurrogate'])
                var.put(u'MAX_SIZE', Js(16384))
                var.put(u'codeUnits', Js([]))
                pass
                pass
                var.put(u'index', (-Js(1.0)))
                var.put(u'length', var.get(u'arguments').get(u'length'))
                if var.get(u'length').neg():
                    return Js(u'')
                var.put(u'result', Js(u''))
                while (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))<var.get(u'length')):
                    var.put(u'codePoint', var.get(u'Number')(var.get(u'arguments').get(var.get(u'index'))))
                    if (((var.get(u'isFinite')(var.get(u'codePoint')).neg() or (var.get(u'codePoint')<Js(0.0))) or (var.get(u'codePoint')>Js(1114111))) or (var.get(u'floor')(var.get(u'codePoint'))!=var.get(u'codePoint'))):
                        PyJsTempException = JsToPyException(var.get(u'RangeError')((Js(u'Invalid code point: ')+var.get(u'codePoint'))))
                        raise PyJsTempException
                    if (var.get(u'codePoint')<=Js(65535)):
                        var.get(u'codeUnits').callprop(u'push', var.get(u'codePoint'))
                    else:
                        var.put(u'codePoint', Js(65536), u'-')
                        var.put(u'highSurrogate', ((var.get(u'codePoint')>>Js(10.0))+Js(55296)))
                        var.put(u'lowSurrogate', ((var.get(u'codePoint')%Js(1024))+Js(56320)))
                        var.get(u'codeUnits').callprop(u'push', var.get(u'highSurrogate'), var.get(u'lowSurrogate'))
                    if (((var.get(u'index')+Js(1.0))==var.get(u'length')) or (var.get(u'codeUnits').get(u'length')>var.get(u'MAX_SIZE'))):
                        var.put(u'result', var.get(u'stringFromCharCode').callprop(u'apply', var.get(u"null"), var.get(u'codeUnits')), u'+')
                        var.get(u'codeUnits').put(u'length', Js(0.0))
                return var.get(u'result')
            PyJsHoisted_fromCodePoint_.func_name = u'fromCodePoint'
            var.put(u'fromCodePoint', PyJsHoisted_fromCodePoint_)
            @Js
            def PyJsHoisted_generateDisjunction_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'body', u'i', u'length', u'node', u'result'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'disjunction'))
                var.put(u'body', var.get(u'node').get(u'body'))
                var.put(u'length', (var.get(u'body').get(u'length') if var.get(u'body') else Js(0.0)))
                if (var.get(u'length')==Js(0.0)):
                    PyJsTempException = JsToPyException(var.get(u'Error')(Js(u'No body')))
                    raise PyJsTempException
                else:
                    if (var.get(u'length')==Js(1.0)):
                        return var.get(u'generate')(var.get(u'body').get(u'0'))
                    else:
                        var.put(u'i', (-Js(1.0)))
                        var.put(u'result', Js(u''))
                        while (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))<var.get(u'length')):
                            if (var.get(u'i')!=Js(0.0)):
                                var.put(u'result', Js(u'|'), u'+')
                            var.put(u'result', var.get(u'generate')(var.get(u'body').get(var.get(u'i'))), u'+')
                        return var.get(u'result')
            PyJsHoisted_generateDisjunction_.func_name = u'generateDisjunction'
            var.put(u'generateDisjunction', PyJsHoisted_generateDisjunction_)
            @Js
            def PyJsHoisted_assertType_(type, expected, this, arguments, var=var):
                var = Scope({u'expected':expected, u'this':this, u'type':type, u'arguments':arguments}, var)
                var.registers([u'expected', u'type'])
                if (var.get(u'expected').callprop(u'indexOf', Js(u'|'))==(-Js(1.0))):
                    if (var.get(u'type')==var.get(u'expected')):
                        return var.get('undefined')
                    PyJsTempException = JsToPyException(var.get(u'Error')((Js(u'Invalid node type: ')+var.get(u'type'))))
                    raise PyJsTempException
                var.put(u'expected', (var.get(u'assertType').get(var.get(u'expected')) if var.get(u'assertType').callprop(u'hasOwnProperty', var.get(u'expected')) else var.get(u'assertType').put(var.get(u'expected'), var.get(u'RegExp')(((Js(u'^(?:')+var.get(u'expected'))+Js(u')$'))))))
                if var.get(u'expected').callprop(u'test', var.get(u'type')):
                    return var.get('undefined')
                PyJsTempException = JsToPyException(var.get(u'Error')((Js(u'Invalid node type: ')+var.get(u'type'))))
                raise PyJsTempException
            PyJsHoisted_assertType_.func_name = u'assertType'
            var.put(u'assertType', PyJsHoisted_assertType_)
            @Js
            def PyJsHoisted_generateCharacterClassRange_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node', u'max', u'min'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'characterClassRange'))
                var.put(u'min', var.get(u'node').get(u'min'))
                var.put(u'max', var.get(u'node').get(u'max'))
                if ((var.get(u'min').get(u'type')==Js(u'characterClassRange')) or (var.get(u'max').get(u'type')==Js(u'characterClassRange'))):
                    PyJsTempException = JsToPyException(var.get(u'Error')(Js(u'Invalid character class range')))
                    raise PyJsTempException
                return ((var.get(u'generateClassAtom')(var.get(u'min'))+Js(u'-'))+var.get(u'generateClassAtom')(var.get(u'max')))
            PyJsHoisted_generateCharacterClassRange_.func_name = u'generateCharacterClassRange'
            var.put(u'generateCharacterClassRange', PyJsHoisted_generateCharacterClassRange_)
            @Js
            def PyJsHoisted_generateAnchor_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'anchor'))
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'node').get(u'kind'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'start')):
                        SWITCHED = True
                        return Js(u'^')
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'end')):
                        SWITCHED = True
                        return Js(u'$')
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'boundary')):
                        SWITCHED = True
                        return Js(u'\\b')
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'not-boundary')):
                        SWITCHED = True
                        return Js(u'\\B')
                    if True:
                        SWITCHED = True
                        PyJsTempException = JsToPyException(var.get(u'Error')(Js(u'Invalid assertion')))
                        raise PyJsTempException
                    SWITCHED = True
                    break
            PyJsHoisted_generateAnchor_.func_name = u'generateAnchor'
            var.put(u'generateAnchor', PyJsHoisted_generateAnchor_)
            @Js
            def PyJsHoisted_generateAtom_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'anchor|characterClass|characterClassEscape|dot|group|reference|value'))
                return var.get(u'generate')(var.get(u'node'))
            PyJsHoisted_generateAtom_.func_name = u'generateAtom'
            var.put(u'generateAtom', PyJsHoisted_generateAtom_)
            @Js
            def PyJsHoisted_generateAlternative_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'i', u'node', u'length', u'terms', u'result'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'alternative'))
                var.put(u'terms', var.get(u'node').get(u'body'))
                var.put(u'length', (var.get(u'terms').get(u'length') if var.get(u'terms') else Js(0.0)))
                if (var.get(u'length')==Js(1.0)):
                    return var.get(u'generateTerm')(var.get(u'terms').get(u'0'))
                else:
                    var.put(u'i', (-Js(1.0)))
                    var.put(u'result', Js(u''))
                    while (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))<var.get(u'length')):
                        var.put(u'result', var.get(u'generateTerm')(var.get(u'terms').get(var.get(u'i'))), u'+')
                    return var.get(u'result')
            PyJsHoisted_generateAlternative_.func_name = u'generateAlternative'
            var.put(u'generateAlternative', PyJsHoisted_generateAlternative_)
            @Js
            def PyJsHoisted_generateValue_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node', u'kind', u'codePoint'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'value'))
                var.put(u'kind', var.get(u'node').get(u'kind'))
                var.put(u'codePoint', var.get(u'node').get(u'codePoint'))
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'kind'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'controlLetter')):
                        SWITCHED = True
                        return (Js(u'\\c')+var.get(u'fromCodePoint')((var.get(u'codePoint')+Js(64.0))))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'hexadecimalEscape')):
                        SWITCHED = True
                        return (Js(u'\\x')+(Js(u'00')+var.get(u'codePoint').callprop(u'toString', Js(16.0)).callprop(u'toUpperCase')).callprop(u'slice', (-Js(2.0))))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'identifier')):
                        SWITCHED = True
                        return (Js(u'\\')+var.get(u'fromCodePoint')(var.get(u'codePoint')))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'null')):
                        SWITCHED = True
                        return (Js(u'\\')+var.get(u'codePoint'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'octal')):
                        SWITCHED = True
                        return (Js(u'\\')+var.get(u'codePoint').callprop(u'toString', Js(8.0)))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'singleEscape')):
                        SWITCHED = True
                        while 1:
                            SWITCHED = False
                            CONDITION = (var.get(u'codePoint'))
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(8)):
                                SWITCHED = True
                                return Js(u'\\b')
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(9)):
                                SWITCHED = True
                                return Js(u'\\t')
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(10)):
                                SWITCHED = True
                                return Js(u'\\n')
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(11)):
                                SWITCHED = True
                                return Js(u'\\v')
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(12)):
                                SWITCHED = True
                                return Js(u'\\f')
                            if SWITCHED or PyJsStrictEq(CONDITION, Js(13)):
                                SWITCHED = True
                                return Js(u'\\r')
                            if True:
                                SWITCHED = True
                                PyJsTempException = JsToPyException(var.get(u'Error')((Js(u'Invalid codepoint: ')+var.get(u'codePoint'))))
                                raise PyJsTempException
                            SWITCHED = True
                            break
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'symbol')):
                        SWITCHED = True
                        return var.get(u'fromCodePoint')(var.get(u'codePoint'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'unicodeEscape')):
                        SWITCHED = True
                        return (Js(u'\\u')+(Js(u'0000')+var.get(u'codePoint').callprop(u'toString', Js(16.0)).callprop(u'toUpperCase')).callprop(u'slice', (-Js(4.0))))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'unicodeCodePointEscape')):
                        SWITCHED = True
                        return ((Js(u'\\u{')+var.get(u'codePoint').callprop(u'toString', Js(16.0)).callprop(u'toUpperCase'))+Js(u'}'))
                    if True:
                        SWITCHED = True
                        PyJsTempException = JsToPyException(var.get(u'Error')((Js(u'Unsupported node kind: ')+var.get(u'kind'))))
                        raise PyJsTempException
                    SWITCHED = True
                    break
            PyJsHoisted_generateValue_.func_name = u'generateValue'
            var.put(u'generateValue', PyJsHoisted_generateValue_)
            @Js
            def PyJsHoisted_generateGroup_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'body', u'i', u'length', u'node', u'result'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'group'))
                var.put(u'result', Js(u'('))
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'node').get(u'behavior'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'normal')):
                        SWITCHED = True
                        break
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ignore')):
                        SWITCHED = True
                        var.put(u'result', Js(u'?:'), u'+')
                        break
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'lookahead')):
                        SWITCHED = True
                        var.put(u'result', Js(u'?='), u'+')
                        break
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'negativeLookahead')):
                        SWITCHED = True
                        var.put(u'result', Js(u'?!'), u'+')
                        break
                    if True:
                        SWITCHED = True
                        PyJsTempException = JsToPyException(var.get(u'Error')((Js(u'Invalid behaviour: ')+var.get(u'node').get(u'behaviour'))))
                        raise PyJsTempException
                    SWITCHED = True
                    break
                var.put(u'body', var.get(u'node').get(u'body'))
                var.put(u'length', (var.get(u'body').get(u'length') if var.get(u'body') else Js(0.0)))
                if (var.get(u'length')==Js(1.0)):
                    var.put(u'result', var.get(u'generate')(var.get(u'body').get(u'0')), u'+')
                else:
                    var.put(u'i', (-Js(1.0)))
                    while (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))<var.get(u'length')):
                        var.put(u'result', var.get(u'generate')(var.get(u'body').get(var.get(u'i'))), u'+')
                var.put(u'result', Js(u')'), u'+')
                return var.get(u'result')
            PyJsHoisted_generateGroup_.func_name = u'generateGroup'
            var.put(u'generateGroup', PyJsHoisted_generateGroup_)
            @Js
            def PyJsHoisted_generateReference_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'reference'))
                return (Js(u'\\')+var.get(u'node').get(u'matchIndex'))
            PyJsHoisted_generateReference_.func_name = u'generateReference'
            var.put(u'generateReference', PyJsHoisted_generateReference_)
            @Js
            def PyJsHoisted_generateCharacterClassEscape_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'characterClassEscape'))
                return (Js(u'\\')+var.get(u'node').get(u'value'))
            PyJsHoisted_generateCharacterClassEscape_.func_name = u'generateCharacterClassEscape'
            var.put(u'generateCharacterClassEscape', PyJsHoisted_generateCharacterClassEscape_)
            @Js
            def PyJsHoisted_generate_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node', u'type'])
                var.put(u'type', var.get(u'node').get(u'type'))
                if (var.get(u'generate').callprop(u'hasOwnProperty', var.get(u'type')) and (var.get(u'generate').get(var.get(u'type')).typeof()==Js(u'function'))):
                    return var.get(u'generate').callprop(var.get(u'type'), var.get(u'node'))
                PyJsTempException = JsToPyException(var.get(u'Error')((Js(u'Invalid node type: ')+var.get(u'type'))))
                raise PyJsTempException
            PyJsHoisted_generate_.func_name = u'generate'
            var.put(u'generate', PyJsHoisted_generate_)
            @Js
            def PyJsHoisted_generateDot_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                var.get(u'assertType')(var.get(u'node').get(u'type'), Js(u'dot'))
                return Js(u'.')
            PyJsHoisted_generateDot_.func_name = u'generateDot'
            var.put(u'generateDot', PyJsHoisted_generateDot_)
            Js(u'use strict')
            PyJs_Object_4006_ = Js({u'function':var.get(u'true'),u'object':var.get(u'true')})
            var.put(u'objectTypes', PyJs_Object_4006_)
            var.put(u'root', ((var.get(u'objectTypes').get(var.get(u'window',throw=False).typeof()) and var.get(u'window')) or var.get(u"this")))
            var.put(u'oldRoot', var.get(u'root'))
            var.put(u'freeExports', (var.get(u'objectTypes').get(var.get(u'exports',throw=False).typeof()) and var.get(u'exports')))
            var.put(u'freeModule', (((var.get(u'objectTypes').get(var.get(u'module',throw=False).typeof()) and var.get(u'module')) and var.get(u'module').get(u'nodeType').neg()) and var.get(u'module')))
            var.put(u'freeGlobal', (((var.get(u'freeExports') and var.get(u'freeModule')) and (var.get(u'global',throw=False).typeof()==Js(u'object'))) and var.get(u'global')))
            if (var.get(u'freeGlobal') and ((PyJsStrictEq(var.get(u'freeGlobal').get(u'global'),var.get(u'freeGlobal')) or PyJsStrictEq(var.get(u'freeGlobal').get(u'window'),var.get(u'freeGlobal'))) or PyJsStrictEq(var.get(u'freeGlobal').get(u'self'),var.get(u'freeGlobal')))):
                var.put(u'root', var.get(u'freeGlobal'))
            var.put(u'stringFromCharCode', var.get(u'String').get(u'fromCharCode'))
            var.put(u'floor', var.get(u'Math').get(u'floor'))
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            var.get(u'generate').put(u'alternative', var.get(u'generateAlternative'))
            var.get(u'generate').put(u'anchor', var.get(u'generateAnchor'))
            var.get(u'generate').put(u'characterClass', var.get(u'generateCharacterClass'))
            var.get(u'generate').put(u'characterClassEscape', var.get(u'generateCharacterClassEscape'))
            var.get(u'generate').put(u'characterClassRange', var.get(u'generateCharacterClassRange'))
            var.get(u'generate').put(u'disjunction', var.get(u'generateDisjunction'))
            var.get(u'generate').put(u'dot', var.get(u'generateDot'))
            var.get(u'generate').put(u'group', var.get(u'generateGroup'))
            var.get(u'generate').put(u'quantifier', var.get(u'generateQuantifier'))
            var.get(u'generate').put(u'reference', var.get(u'generateReference'))
            var.get(u'generate').put(u'value', var.get(u'generateValue'))
            if (((var.get(u'define',throw=False).typeof()==Js(u'function')) and (var.get(u'define').get(u'amd').typeof()==Js(u'object'))) and var.get(u'define').get(u'amd')):
                @Js
                def PyJs_anonymous_4007_(this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments}, var)
                    var.registers([])
                    PyJs_Object_4008_ = Js({u'generate':var.get(u'generate')})
                    return PyJs_Object_4008_
                PyJs_anonymous_4007_._set_name(u'anonymous')
                var.get(u'define')(PyJs_anonymous_4007_)
            else:
                if (var.get(u'freeExports') and var.get(u'freeModule')):
                    var.get(u'freeExports').put(u'generate', var.get(u'generate'))
                else:
                    PyJs_Object_4009_ = Js({u'generate':var.get(u'generate')})
                    var.get(u'root').put(u'regjsgen', PyJs_Object_4009_)
        PyJs_anonymous_4005_._set_name(u'anonymous')
        PyJs_anonymous_4005_.callprop(u'call', var.get(u"this"))
    PyJs_anonymous_4004_._set_name(u'anonymous')
    PyJs_anonymous_4004_.callprop(u'call', var.get(u"this"), (var.get(u'global') if PyJsStrictNeq(var.get(u'global',throw=False).typeof(),Js(u'undefined')) else (var.get(u'self') if PyJsStrictNeq(var.get(u'self',throw=False).typeof(),Js(u'undefined')) else (var.get(u'window') if PyJsStrictNeq(var.get(u'window',throw=False).typeof(),Js(u'undefined')) else PyJs_Object_4003_))))
PyJs_anonymous_4002_._set_name(u'anonymous')
PyJs_Object_4010_ = Js({})
@Js
def PyJs_anonymous_4011_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_4012_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'parse', u'regjsparser'])
        @Js
        def PyJsHoisted_parse_(str, flags, this, arguments, var=var):
            var = Scope({u'this':this, u'flags':flags, u'arguments':arguments, u'str':str}, var)
            var.registers([u'parseQuantifier', u'parseDisjunction', u'flattenBody', u'backrefDenied', u'skip', u'matchReg', u'pos', u'closedCaptureCounter', u'result', u'addRaw', u'parseNonemptyClassRanges', u'parseHelperClassRanges', u'bail', u'parseIdentityEscape', u'createDot', u'incr', u'parseAnchor', u'parseAtom', u'parseAtomEscape', u'next', u'current', u'updateRawStart', u'isEmpty', u'createDisjunction', u'parseClassEscape', u'parseCharacterEscape', u'parseGroup', u'parseClassAtomNoDash', u'createAnchor', u'match', u'parseCharacterClass', u'createValue', u'str', u'createReference', u'parseNonemptyClassRangesNoDash', u'createCharacterClassEscape', u'hasUnicodeFlag', u'parseAlternative', u'firstIteration', u'isIdentifierPart', u'createQuantifier', u'createCharacter', u'i', u'lookahead', u'createClassRange', u'createAlternative', u'parseClassRanges', u'createEscaped', u'parseUnicodeSurrogatePairEscape', u'flags', u'parseTerm', u'createGroup', u'parseDecimalEscape', u'parseClassAtom', u'createCharacterClass'])
            @Js
            def PyJsHoisted_parseQuantifier_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'res', u'quantifier', u'from', u'max', u'min'])
                var.put(u'from', var.get(u'pos'))
                pass
                pass
                if var.get(u'match')(Js(u'*')):
                    var.put(u'quantifier', var.get(u'createQuantifier')(Js(0.0)))
                else:
                    if var.get(u'match')(Js(u'+')):
                        var.put(u'quantifier', var.get(u'createQuantifier')(Js(1.0)))
                    else:
                        if var.get(u'match')(Js(u'?')):
                            var.put(u'quantifier', var.get(u'createQuantifier')(Js(0.0), Js(1.0)))
                        else:
                            if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^\\{([0-9]+)\\}/'))):
                                var.put(u'min', var.get(u'parseInt')(var.get(u'res').get(u'1'), Js(10.0)))
                                var.put(u'quantifier', var.get(u'createQuantifier')(var.get(u'min'), var.get(u'min'), var.get(u'res').get(u'range').get(u'0'), var.get(u'res').get(u'range').get(u'1')))
                            else:
                                if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^\\{([0-9]+),\\}/'))):
                                    var.put(u'min', var.get(u'parseInt')(var.get(u'res').get(u'1'), Js(10.0)))
                                    var.put(u'quantifier', var.get(u'createQuantifier')(var.get(u'min'), var.get(u'undefined'), var.get(u'res').get(u'range').get(u'0'), var.get(u'res').get(u'range').get(u'1')))
                                else:
                                    if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^\\{([0-9]+),([0-9]+)\\}/'))):
                                        var.put(u'min', var.get(u'parseInt')(var.get(u'res').get(u'1'), Js(10.0)))
                                        var.put(u'max', var.get(u'parseInt')(var.get(u'res').get(u'2'), Js(10.0)))
                                        if (var.get(u'min')>var.get(u'max')):
                                            var.get(u'bail')(Js(u'numbers out of order in {} quantifier'), Js(u''), var.get(u'from'), var.get(u'pos'))
                                        var.put(u'quantifier', var.get(u'createQuantifier')(var.get(u'min'), var.get(u'max'), var.get(u'res').get(u'range').get(u'0'), var.get(u'res').get(u'range').get(u'1')))
                if var.get(u'quantifier'):
                    if var.get(u'match')(Js(u'?')):
                        var.get(u'quantifier').put(u'greedy', Js(False))
                        var.get(u'quantifier').get(u'range').put(u'1', Js(1.0), u'+')
                return var.get(u'quantifier')
            PyJsHoisted_parseQuantifier_.func_name = u'parseQuantifier'
            var.put(u'parseQuantifier', PyJsHoisted_parseQuantifier_)
            @Js
            def PyJsHoisted_parseDisjunction_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'res', u'from'])
                var.put(u'res', Js([]))
                var.put(u'from', var.get(u'pos'))
                var.get(u'res').callprop(u'push', var.get(u'parseAlternative')())
                while var.get(u'match')(Js(u'|')):
                    var.get(u'res').callprop(u'push', var.get(u'parseAlternative')())
                if PyJsStrictEq(var.get(u'res').get(u'length'),Js(1.0)):
                    return var.get(u'res').get(u'0')
                return var.get(u'createDisjunction')(var.get(u'res'), var.get(u'from'), var.get(u'pos'))
            PyJsHoisted_parseDisjunction_.func_name = u'parseDisjunction'
            var.put(u'parseDisjunction', PyJsHoisted_parseDisjunction_)
            @Js
            def PyJsHoisted_flattenBody_(body, this, arguments, var=var):
                var = Scope({u'body':body, u'this':this, u'arguments':arguments}, var)
                var.registers([u'body'])
                if PyJsStrictEq(var.get(u'body').get(u'type'),Js(u'alternative')):
                    return var.get(u'body').get(u'body')
                else:
                    return Js([var.get(u'body')])
            PyJsHoisted_flattenBody_.func_name = u'flattenBody'
            var.put(u'flattenBody', PyJsHoisted_flattenBody_)
            @Js
            def PyJsHoisted_skip_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                if var.get(u'match')(var.get(u'value')).neg():
                    var.get(u'bail')(Js(u'character'), var.get(u'value'))
            PyJsHoisted_skip_.func_name = u'skip'
            var.put(u'skip', PyJsHoisted_skip_)
            @Js
            def PyJsHoisted_matchReg_(regExp, this, arguments, var=var):
                var = Scope({u'this':this, u'regExp':regExp, u'arguments':arguments}, var)
                var.registers([u'subStr', u'regExp', u'res'])
                var.put(u'subStr', var.get(u'str').callprop(u'substring', var.get(u'pos')))
                var.put(u'res', var.get(u'subStr').callprop(u'match', var.get(u'regExp')))
                if var.get(u'res'):
                    var.get(u'res').put(u'range', Js([]))
                    var.get(u'res').get(u'range').put(u'0', var.get(u'pos'))
                    var.get(u'incr')(var.get(u'res').get(u'0').get(u'length'))
                    var.get(u'res').get(u'range').put(u'1', var.get(u'pos'))
                return var.get(u'res')
            PyJsHoisted_matchReg_.func_name = u'matchReg'
            var.put(u'matchReg', PyJsHoisted_matchReg_)
            @Js
            def PyJsHoisted_addRaw_(node, this, arguments, var=var):
                var = Scope({u'node':node, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node'])
                var.get(u'node').put(u'raw', var.get(u'str').callprop(u'substring', var.get(u'node').get(u'range').get(u'0'), var.get(u'node').get(u'range').get(u'1')))
                return var.get(u'node')
            PyJsHoisted_addRaw_.func_name = u'addRaw'
            var.put(u'addRaw', PyJsHoisted_addRaw_)
            @Js
            def PyJsHoisted_parseNonemptyClassRanges_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'atom'])
                var.put(u'atom', var.get(u'parseClassAtom')())
                if var.get(u'atom').neg():
                    var.get(u'bail')(Js(u'classAtom'))
                if var.get(u'current')(Js(u']')):
                    return Js([var.get(u'atom')])
                return var.get(u'parseHelperClassRanges')(var.get(u'atom'))
            PyJsHoisted_parseNonemptyClassRanges_.func_name = u'parseNonemptyClassRanges'
            var.put(u'parseNonemptyClassRanges', PyJsHoisted_parseNonemptyClassRanges_)
            @Js
            def PyJsHoisted_parseHelperClassRanges_(atom, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'atom':atom}, var)
                var.registers([u'to', u'atom', u'from', u'classRanges', u'res'])
                pass
                if (var.get(u'current')(Js(u'-')) and var.get(u'next')(Js(u']')).neg()):
                    var.get(u'skip')(Js(u'-'))
                    var.put(u'res', var.get(u'parseClassAtom')())
                    if var.get(u'res').neg():
                        var.get(u'bail')(Js(u'classAtom'))
                    var.put(u'to', var.get(u'pos'))
                    var.put(u'classRanges', var.get(u'parseClassRanges')())
                    if var.get(u'classRanges').neg():
                        var.get(u'bail')(Js(u'classRanges'))
                    var.put(u'from', var.get(u'atom').get(u'range').get(u'0'))
                    if PyJsStrictEq(var.get(u'classRanges').get(u'type'),Js(u'empty')):
                        return Js([var.get(u'createClassRange')(var.get(u'atom'), var.get(u'res'), var.get(u'from'), var.get(u'to'))])
                    return Js([var.get(u'createClassRange')(var.get(u'atom'), var.get(u'res'), var.get(u'from'), var.get(u'to'))]).callprop(u'concat', var.get(u'classRanges'))
                var.put(u'res', var.get(u'parseNonemptyClassRangesNoDash')())
                if var.get(u'res').neg():
                    var.get(u'bail')(Js(u'nonEmptyClassRangesNoDash'))
                return Js([var.get(u'atom')]).callprop(u'concat', var.get(u'res'))
            PyJsHoisted_parseHelperClassRanges_.func_name = u'parseHelperClassRanges'
            var.put(u'parseHelperClassRanges', PyJsHoisted_parseHelperClassRanges_)
            @Js
            def PyJsHoisted_bail_(message, details, PyJsArg_66726f6d_, to, this, arguments, var=var):
                var = Scope({u'to':to, u'from':PyJsArg_66726f6d_, u'details':details, u'this':this, u'message':message, u'arguments':arguments}, var)
                var.registers([u'from', u'contextEnd', u'to', u'details', u'context', u'contextStart', u'message', u'pointer'])
                var.put(u'from', (var.get(u'pos') if (var.get(u'from')==var.get(u"null")) else var.get(u'from')))
                var.put(u'to', (var.get(u'from') if (var.get(u'to')==var.get(u"null")) else var.get(u'to')))
                var.put(u'contextStart', var.get(u'Math').callprop(u'max', Js(0.0), (var.get(u'from')-Js(10.0))))
                var.put(u'contextEnd', var.get(u'Math').callprop(u'min', (var.get(u'to')+Js(10.0)), var.get(u'str').get(u'length')))
                var.put(u'context', (Js(u'    ')+var.get(u'str').callprop(u'substring', var.get(u'contextStart'), var.get(u'contextEnd'))))
                var.put(u'pointer', ((Js(u'    ')+var.get(u'Array').create(((var.get(u'from')-var.get(u'contextStart'))+Js(1.0))).callprop(u'join', Js(u' ')))+Js(u'^')))
                PyJsTempException = JsToPyException(var.get(u'SyntaxError')((((((((var.get(u'message')+Js(u' at position '))+var.get(u'from'))+((Js(u': ')+var.get(u'details')) if var.get(u'details') else Js(u'')))+Js(u'\n'))+var.get(u'context'))+Js(u'\n'))+var.get(u'pointer'))))
                raise PyJsTempException
            PyJsHoisted_bail_.func_name = u'bail'
            var.put(u'bail', PyJsHoisted_bail_)
            @Js
            def PyJsHoisted_parseIdentityEscape_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'tmp', u'ZWNJ', u'ZWJ'])
                var.put(u'ZWJ', Js(u'\u200c'))
                var.put(u'ZWNJ', Js(u'\u200d'))
                pass
                if var.get(u'isIdentifierPart')(var.get(u'lookahead')()).neg():
                    var.put(u'tmp', var.get(u'incr')())
                    return var.get(u'createEscaped')(Js(u'identifier'), var.get(u'tmp').callprop(u'charCodeAt', Js(0.0)), var.get(u'tmp'), Js(1.0))
                if var.get(u'match')(var.get(u'ZWJ')):
                    return var.get(u'createEscaped')(Js(u'identifier'), Js(8204), var.get(u'ZWJ'))
                else:
                    if var.get(u'match')(var.get(u'ZWNJ')):
                        return var.get(u'createEscaped')(Js(u'identifier'), Js(8205), var.get(u'ZWNJ'))
                return var.get(u"null")
            PyJsHoisted_parseIdentityEscape_.func_name = u'parseIdentityEscape'
            var.put(u'parseIdentityEscape', PyJsHoisted_parseIdentityEscape_)
            @Js
            def PyJsHoisted_createDot_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                PyJs_Object_4016_ = Js({u'type':Js(u'dot'),u'range':Js([(var.get(u'pos')-Js(1.0)), var.get(u'pos')])})
                return var.get(u'addRaw')(PyJs_Object_4016_)
            PyJsHoisted_createDot_.func_name = u'createDot'
            var.put(u'createDot', PyJsHoisted_createDot_)
            @Js
            def PyJsHoisted_incr_(amount, this, arguments, var=var):
                var = Scope({u'this':this, u'amount':amount, u'arguments':arguments}, var)
                var.registers([u'res', u'amount'])
                var.put(u'amount', (var.get(u'amount') or Js(1.0)))
                var.put(u'res', var.get(u'str').callprop(u'substring', var.get(u'pos'), (var.get(u'pos')+var.get(u'amount'))))
                var.put(u'pos', (var.get(u'amount') or Js(1.0)), u'+')
                return var.get(u'res')
            PyJsHoisted_incr_.func_name = u'incr'
            var.put(u'incr', PyJsHoisted_incr_)
            @Js
            def PyJsHoisted_parseAnchor_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'res', u'from'])
                var.put(u'from', var.get(u'pos'))
                if var.get(u'match')(Js(u'^')):
                    return var.get(u'createAnchor')(Js(u'start'), Js(1.0))
                else:
                    if var.get(u'match')(Js(u'$')):
                        return var.get(u'createAnchor')(Js(u'end'), Js(1.0))
                    else:
                        if var.get(u'match')(Js(u'\\b')):
                            return var.get(u'createAnchor')(Js(u'boundary'), Js(2.0))
                        else:
                            if var.get(u'match')(Js(u'\\B')):
                                return var.get(u'createAnchor')(Js(u'not-boundary'), Js(2.0))
                            else:
                                return var.get(u'parseGroup')(Js(u'(?='), Js(u'lookahead'), Js(u'(?!'), Js(u'negativeLookahead'))
            PyJsHoisted_parseAnchor_.func_name = u'parseAnchor'
            var.put(u'parseAnchor', PyJsHoisted_parseAnchor_)
            @Js
            def PyJsHoisted_parseAtom_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'res'])
                pass
                if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^[^^$\\\\.*+?(){[|]/'))):
                    return var.get(u'createCharacter')(var.get(u'res'))
                else:
                    if var.get(u'match')(Js(u'.')):
                        return var.get(u'createDot')()
                    else:
                        if var.get(u'match')(Js(u'\\')):
                            var.put(u'res', var.get(u'parseAtomEscape')())
                            if var.get(u'res').neg():
                                var.get(u'bail')(Js(u'atomEscape'))
                            return var.get(u'res')
                        else:
                            if var.put(u'res', var.get(u'parseCharacterClass')()):
                                return var.get(u'res')
                            else:
                                return var.get(u'parseGroup')(Js(u'(?:'), Js(u'ignore'), Js(u'('), Js(u'normal'))
            PyJsHoisted_parseAtom_.func_name = u'parseAtom'
            var.put(u'parseAtom', PyJsHoisted_parseAtom_)
            @Js
            def PyJsHoisted_parseAtomEscape_(insideCharacterClass, this, arguments, var=var):
                var = Scope({u'this':this, u'insideCharacterClass':insideCharacterClass, u'arguments':arguments}, var)
                var.registers([u'res', u'insideCharacterClass', u'from'])
                var.put(u'from', var.get(u'pos'))
                var.put(u'res', var.get(u'parseDecimalEscape')())
                if var.get(u'res'):
                    return var.get(u'res')
                if var.get(u'insideCharacterClass'):
                    if var.get(u'match')(Js(u'b')):
                        return var.get(u'createEscaped')(Js(u'singleEscape'), Js(8), Js(u'\\b'))
                    else:
                        if var.get(u'match')(Js(u'B')):
                            var.get(u'bail')(Js(u'\\B not possible inside of CharacterClass'), Js(u''), var.get(u'from'))
                var.put(u'res', var.get(u'parseCharacterEscape')())
                return var.get(u'res')
            PyJsHoisted_parseAtomEscape_.func_name = u'parseAtomEscape'
            var.put(u'parseAtomEscape', PyJsHoisted_parseAtomEscape_)
            @Js
            def PyJsHoisted_next_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return PyJsStrictEq(var.get(u'str').get((var.get(u'pos')+Js(1.0))),var.get(u'value'))
            PyJsHoisted_next_.func_name = u'next'
            var.put(u'next', PyJsHoisted_next_)
            @Js
            def PyJsHoisted_current_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return PyJsStrictEq(var.get(u'str').callprop(u'indexOf', var.get(u'value'), var.get(u'pos')),var.get(u'pos'))
            PyJsHoisted_current_.func_name = u'current'
            var.put(u'current', PyJsHoisted_current_)
            @Js
            def PyJsHoisted_updateRawStart_(node, start, this, arguments, var=var):
                var = Scope({u'node':node, u'start':start, u'this':this, u'arguments':arguments}, var)
                var.registers([u'node', u'start'])
                var.get(u'node').get(u'range').put(u'0', var.get(u'start'))
                return var.get(u'addRaw')(var.get(u'node'))
            PyJsHoisted_updateRawStart_.func_name = u'updateRawStart'
            var.put(u'updateRawStart', PyJsHoisted_updateRawStart_)
            @Js
            def PyJsHoisted_isEmpty_(obj, this, arguments, var=var):
                var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
                var.registers([u'obj'])
                return PyJsStrictEq(var.get(u'obj').get(u'type'),Js(u'empty'))
            PyJsHoisted_isEmpty_.func_name = u'isEmpty'
            var.put(u'isEmpty', PyJsHoisted_isEmpty_)
            @Js
            def PyJsHoisted_createDisjunction_(alternatives, PyJsArg_66726f6d_, to, this, arguments, var=var):
                var = Scope({u'this':this, u'from':PyJsArg_66726f6d_, u'alternatives':alternatives, u'arguments':arguments, u'to':to}, var)
                var.registers([u'from', u'alternatives', u'to'])
                PyJs_Object_4015_ = Js({u'type':Js(u'disjunction'),u'body':var.get(u'alternatives'),u'range':Js([var.get(u'from'), var.get(u'to')])})
                return var.get(u'addRaw')(PyJs_Object_4015_)
            PyJsHoisted_createDisjunction_.func_name = u'createDisjunction'
            var.put(u'createDisjunction', PyJsHoisted_createDisjunction_)
            @Js
            def PyJsHoisted_parseClassEscape_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return var.get(u'parseAtomEscape')(var.get(u'true'))
            PyJsHoisted_parseClassEscape_.func_name = u'parseClassEscape'
            var.put(u'parseClassEscape', PyJsHoisted_parseClassEscape_)
            @Js
            def PyJsHoisted_parseCharacterEscape_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'res', u'codePoint'])
                pass
                if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^[fnrtv]/'))):
                    var.put(u'codePoint', Js(0.0))
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get(u'res').get(u'0'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u't')):
                            SWITCHED = True
                            var.put(u'codePoint', Js(9))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'n')):
                            SWITCHED = True
                            var.put(u'codePoint', Js(10))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'v')):
                            SWITCHED = True
                            var.put(u'codePoint', Js(11))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'f')):
                            SWITCHED = True
                            var.put(u'codePoint', Js(12))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'r')):
                            SWITCHED = True
                            var.put(u'codePoint', Js(13))
                            break
                        SWITCHED = True
                        break
                    return var.get(u'createEscaped')(Js(u'singleEscape'), var.get(u'codePoint'), (Js(u'\\')+var.get(u'res').get(u'0')))
                else:
                    if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^c([a-zA-Z])/'))):
                        return var.get(u'createEscaped')(Js(u'controlLetter'), (var.get(u'res').get(u'1').callprop(u'charCodeAt', Js(0.0))%Js(32.0)), var.get(u'res').get(u'1'), Js(2.0))
                    else:
                        if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^x([0-9a-fA-F]{2})/'))):
                            return var.get(u'createEscaped')(Js(u'hexadecimalEscape'), var.get(u'parseInt')(var.get(u'res').get(u'1'), Js(16.0)), var.get(u'res').get(u'1'), Js(2.0))
                        else:
                            if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^u([0-9a-fA-F]{4})/'))):
                                return var.get(u'parseUnicodeSurrogatePairEscape')(var.get(u'createEscaped')(Js(u'unicodeEscape'), var.get(u'parseInt')(var.get(u'res').get(u'1'), Js(16.0)), var.get(u'res').get(u'1'), Js(2.0)))
                            else:
                                if (var.get(u'hasUnicodeFlag') and var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^u\\{([0-9a-fA-F]+)\\}/')))):
                                    return var.get(u'createEscaped')(Js(u'unicodeCodePointEscape'), var.get(u'parseInt')(var.get(u'res').get(u'1'), Js(16.0)), var.get(u'res').get(u'1'), Js(4.0))
                                else:
                                    return var.get(u'parseIdentityEscape')()
            PyJsHoisted_parseCharacterEscape_.func_name = u'parseCharacterEscape'
            var.put(u'parseCharacterEscape', PyJsHoisted_parseCharacterEscape_)
            @Js
            def PyJsHoisted_parseGroup_(matchA, typeA, matchB, typeB, this, arguments, var=var):
                var = Scope({u'matchB':matchB, u'matchA':matchA, u'this':this, u'arguments':arguments, u'typeA':typeA, u'typeB':typeB}, var)
                var.registers([u'body', u'from', u'typeA', u'typeB', u'matchB', u'matchA', u'group', u'type'])
                var.put(u'type', var.get(u"null"))
                var.put(u'from', var.get(u'pos'))
                if var.get(u'match')(var.get(u'matchA')):
                    var.put(u'type', var.get(u'typeA'))
                else:
                    if var.get(u'match')(var.get(u'matchB')):
                        var.put(u'type', var.get(u'typeB'))
                    else:
                        return Js(False)
                var.put(u'body', var.get(u'parseDisjunction')())
                if var.get(u'body').neg():
                    var.get(u'bail')(Js(u'Expected disjunction'))
                var.get(u'skip')(Js(u')'))
                var.put(u'group', var.get(u'createGroup')(var.get(u'type'), var.get(u'flattenBody')(var.get(u'body')), var.get(u'from'), var.get(u'pos')))
                if (var.get(u'type')==Js(u'normal')):
                    if var.get(u'firstIteration'):
                        (var.put(u'closedCaptureCounter',Js(var.get(u'closedCaptureCounter').to_number())+Js(1))-Js(1))
                return var.get(u'group')
            PyJsHoisted_parseGroup_.func_name = u'parseGroup'
            var.put(u'parseGroup', PyJsHoisted_parseGroup_)
            @Js
            def PyJsHoisted_parseClassAtomNoDash_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'res'])
                pass
                if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^[^\\\\\\]-]/'))):
                    return var.get(u'createCharacter')(var.get(u'res').get(u'0'))
                else:
                    if var.get(u'match')(Js(u'\\')):
                        var.put(u'res', var.get(u'parseClassEscape')())
                        if var.get(u'res').neg():
                            var.get(u'bail')(Js(u'classEscape'))
                        return var.get(u'parseUnicodeSurrogatePairEscape')(var.get(u'res'))
            PyJsHoisted_parseClassAtomNoDash_.func_name = u'parseClassAtomNoDash'
            var.put(u'parseClassAtomNoDash', PyJsHoisted_parseClassAtomNoDash_)
            @Js
            def PyJsHoisted_createAnchor_(kind, rawLength, this, arguments, var=var):
                var = Scope({u'this':this, u'kind':kind, u'arguments':arguments, u'rawLength':rawLength}, var)
                var.registers([u'kind', u'rawLength'])
                PyJs_Object_4013_ = Js({u'type':Js(u'anchor'),u'kind':var.get(u'kind'),u'range':Js([(var.get(u'pos')-var.get(u'rawLength')), var.get(u'pos')])})
                return var.get(u'addRaw')(PyJs_Object_4013_)
            PyJsHoisted_createAnchor_.func_name = u'createAnchor'
            var.put(u'createAnchor', PyJsHoisted_createAnchor_)
            @Js
            def PyJsHoisted_match_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                if PyJsStrictEq(var.get(u'str').callprop(u'indexOf', var.get(u'value'), var.get(u'pos')),var.get(u'pos')):
                    return var.get(u'incr')(var.get(u'value').get(u'length'))
            PyJsHoisted_match_.func_name = u'match'
            var.put(u'match', PyJsHoisted_match_)
            @Js
            def PyJsHoisted_parseCharacterClass_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'res', u'from'])
                var.put(u'from', var.get(u'pos'))
                if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^\\[\\^/'))):
                    var.put(u'res', var.get(u'parseClassRanges')())
                    var.get(u'skip')(Js(u']'))
                    return var.get(u'createCharacterClass')(var.get(u'res'), var.get(u'true'), var.get(u'from'), var.get(u'pos'))
                else:
                    if var.get(u'match')(Js(u'[')):
                        var.put(u'res', var.get(u'parseClassRanges')())
                        var.get(u'skip')(Js(u']'))
                        return var.get(u'createCharacterClass')(var.get(u'res'), Js(False), var.get(u'from'), var.get(u'pos'))
                return var.get(u"null")
            PyJsHoisted_parseCharacterClass_.func_name = u'parseCharacterClass'
            var.put(u'parseCharacterClass', PyJsHoisted_parseCharacterClass_)
            @Js
            def PyJsHoisted_createValue_(kind, codePoint, PyJsArg_66726f6d_, to, this, arguments, var=var):
                var = Scope({u'to':to, u'kind':kind, u'from':PyJsArg_66726f6d_, u'arguments':arguments, u'this':this, u'codePoint':codePoint}, var)
                var.registers([u'to', u'kind', u'from', u'codePoint'])
                PyJs_Object_4014_ = Js({u'type':Js(u'value'),u'kind':var.get(u'kind'),u'codePoint':var.get(u'codePoint'),u'range':Js([var.get(u'from'), var.get(u'to')])})
                return var.get(u'addRaw')(PyJs_Object_4014_)
            PyJsHoisted_createValue_.func_name = u'createValue'
            var.put(u'createValue', PyJsHoisted_createValue_)
            @Js
            def PyJsHoisted_createReference_(matchIndex, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'matchIndex':matchIndex}, var)
                var.registers([u'matchIndex'])
                PyJs_Object_4018_ = Js({u'type':Js(u'reference'),u'matchIndex':var.get(u'parseInt')(var.get(u'matchIndex'), Js(10.0)),u'range':Js([((var.get(u'pos')-Js(1.0))-var.get(u'matchIndex').get(u'length')), var.get(u'pos')])})
                return var.get(u'addRaw')(PyJs_Object_4018_)
            PyJsHoisted_createReference_.func_name = u'createReference'
            var.put(u'createReference', PyJsHoisted_createReference_)
            @Js
            def PyJsHoisted_parseNonemptyClassRangesNoDash_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'res'])
                var.put(u'res', var.get(u'parseClassAtom')())
                if var.get(u'res').neg():
                    var.get(u'bail')(Js(u'classAtom'))
                if var.get(u'current')(Js(u']')):
                    return var.get(u'res')
                return var.get(u'parseHelperClassRanges')(var.get(u'res'))
            PyJsHoisted_parseNonemptyClassRangesNoDash_.func_name = u'parseNonemptyClassRangesNoDash'
            var.put(u'parseNonemptyClassRangesNoDash', PyJsHoisted_parseNonemptyClassRangesNoDash_)
            @Js
            def PyJsHoisted_createCharacterClassEscape_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                PyJs_Object_4017_ = Js({u'type':Js(u'characterClassEscape'),u'value':var.get(u'value'),u'range':Js([(var.get(u'pos')-Js(2.0)), var.get(u'pos')])})
                return var.get(u'addRaw')(PyJs_Object_4017_)
            PyJsHoisted_createCharacterClassEscape_.func_name = u'createCharacterClassEscape'
            var.put(u'createCharacterClassEscape', PyJsHoisted_createCharacterClassEscape_)
            @Js
            def PyJsHoisted_parseAlternative_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'res', u'term', u'from'])
                var.put(u'res', Js([]))
                var.put(u'from', var.get(u'pos'))
                pass
                while var.put(u'term', var.get(u'parseTerm')()):
                    var.get(u'res').callprop(u'push', var.get(u'term'))
                if PyJsStrictEq(var.get(u'res').get(u'length'),Js(1.0)):
                    return var.get(u'res').get(u'0')
                return var.get(u'createAlternative')(var.get(u'res'), var.get(u'from'), var.get(u'pos'))
            PyJsHoisted_parseAlternative_.func_name = u'parseAlternative'
            var.put(u'parseAlternative', PyJsHoisted_parseAlternative_)
            @Js
            def PyJsHoisted_isIdentifierPart_(ch, this, arguments, var=var):
                var = Scope({u'this':this, u'ch':ch, u'arguments':arguments}, var)
                var.registers([u'ch', u'NonAsciiIdentifierPart'])
                def PyJs_LONG_4024_(var=var):
                    return var.get(u'RegExp').create(Js(u'[\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u05d0-\u05ea\u05f0-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u0800-\u082d\u0840-\u085b\u08a0-\u08b2\u08e4-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7\u09c8\u09cb-\u09ce\u09d7\u09dc\u09dd\u09df-\u09e3\u09e6-\u09f1\u0a01-\u0a03\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b5c\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c03\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c58\u0c59\u0c60-\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1\u0cf2\u0d01-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d57\u0d60-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb9\u0ebb-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772\u1773\u1780-\u17d3\u17d7\u17dc\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1877\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19d9\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1cd0-\u1cd2\u1cd4-\u1cf6\u1cf8\u1cf9\u1d00-\u1df5\u1dfc-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u200c\u200d\u203f\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u2e2f\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099\u309a\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua69d\ua69f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua7ad\ua7b0\ua7b1\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua900-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab5f\uab64\uab65\uabc0-\uabea\uabec\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2d\ufe33\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]'))
                var.put(u'NonAsciiIdentifierPart', PyJs_LONG_4024_())
                def PyJs_LONG_4025_(var=var):
                    return ((((((PyJsStrictEq(var.get(u'ch'),Js(36.0)) or PyJsStrictEq(var.get(u'ch'),Js(95.0))) or ((var.get(u'ch')>=Js(65.0)) and (var.get(u'ch')<=Js(90.0)))) or ((var.get(u'ch')>=Js(97.0)) and (var.get(u'ch')<=Js(122.0)))) or ((var.get(u'ch')>=Js(48.0)) and (var.get(u'ch')<=Js(57.0)))) or PyJsStrictEq(var.get(u'ch'),Js(92.0))) or ((var.get(u'ch')>=Js(128)) and var.get(u'NonAsciiIdentifierPart').callprop(u'test', var.get(u'String').callprop(u'fromCharCode', var.get(u'ch')))))
                return PyJs_LONG_4025_()
            PyJsHoisted_isIdentifierPart_.func_name = u'isIdentifierPart'
            var.put(u'isIdentifierPart', PyJsHoisted_isIdentifierPart_)
            @Js
            def PyJsHoisted_createQuantifier_(min, max, PyJsArg_66726f6d_, to, this, arguments, var=var):
                var = Scope({u'to':to, u'from':PyJsArg_66726f6d_, u'arguments':arguments, u'min':min, u'this':this, u'max':max}, var)
                var.registers([u'max', u'from', u'to', u'min'])
                if (var.get(u'to')==var.get(u"null")):
                    var.put(u'from', (var.get(u'pos')-Js(1.0)))
                    var.put(u'to', var.get(u'pos'))
                PyJs_Object_4020_ = Js({u'type':Js(u'quantifier'),u'min':var.get(u'min'),u'max':var.get(u'max'),u'greedy':var.get(u'true'),u'body':var.get(u"null"),u'range':Js([var.get(u'from'), var.get(u'to')])})
                return var.get(u'addRaw')(PyJs_Object_4020_)
            PyJsHoisted_createQuantifier_.func_name = u'createQuantifier'
            var.put(u'createQuantifier', PyJsHoisted_createQuantifier_)
            @Js
            def PyJsHoisted_createCharacter_(matches, this, arguments, var=var):
                var = Scope({u'matches':matches, u'this':this, u'arguments':arguments}, var)
                var.registers([u'matches', u'_char', u'second', u'first'])
                var.put(u'_char', var.get(u'matches').get(u'0'))
                var.put(u'first', var.get(u'_char').callprop(u'charCodeAt', Js(0.0)))
                if var.get(u'hasUnicodeFlag'):
                    pass
                    if ((PyJsStrictEq(var.get(u'_char').get(u'length'),Js(1.0)) and (var.get(u'first')>=Js(55296))) and (var.get(u'first')<=Js(56319))):
                        var.put(u'second', var.get(u'lookahead')().callprop(u'charCodeAt', Js(0.0)))
                        if ((var.get(u'second')>=Js(56320)) and (var.get(u'second')<=Js(57343))):
                            (var.put(u'pos',Js(var.get(u'pos').to_number())+Js(1))-Js(1))
                            return var.get(u'createValue')(Js(u'symbol'), (((((var.get(u'first')-Js(55296))*Js(1024))+var.get(u'second'))-Js(56320))+Js(65536)), (var.get(u'pos')-Js(2.0)), var.get(u'pos'))
                return var.get(u'createValue')(Js(u'symbol'), var.get(u'first'), (var.get(u'pos')-Js(1.0)), var.get(u'pos'))
            PyJsHoisted_createCharacter_.func_name = u'createCharacter'
            var.put(u'createCharacter', PyJsHoisted_createCharacter_)
            @Js
            def PyJsHoisted_lookahead_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                return var.get(u'str').get(var.get(u'pos'))
            PyJsHoisted_lookahead_.func_name = u'lookahead'
            var.put(u'lookahead', PyJsHoisted_lookahead_)
            @Js
            def PyJsHoisted_createClassRange_(min, max, PyJsArg_66726f6d_, to, this, arguments, var=var):
                var = Scope({u'to':to, u'from':PyJsArg_66726f6d_, u'arguments':arguments, u'min':min, u'this':this, u'max':max}, var)
                var.registers([u'max', u'from', u'to', u'min'])
                if (var.get(u'min').get(u'codePoint')>var.get(u'max').get(u'codePoint')):
                    var.get(u'bail')(Js(u'invalid range in character class'), ((var.get(u'min').get(u'raw')+Js(u'-'))+var.get(u'max').get(u'raw')), var.get(u'from'), var.get(u'to'))
                PyJs_Object_4023_ = Js({u'type':Js(u'characterClassRange'),u'min':var.get(u'min'),u'max':var.get(u'max'),u'range':Js([var.get(u'from'), var.get(u'to')])})
                return var.get(u'addRaw')(PyJs_Object_4023_)
            PyJsHoisted_createClassRange_.func_name = u'createClassRange'
            var.put(u'createClassRange', PyJsHoisted_createClassRange_)
            @Js
            def PyJsHoisted_createAlternative_(terms, PyJsArg_66726f6d_, to, this, arguments, var=var):
                var = Scope({u'this':this, u'from':PyJsArg_66726f6d_, u'terms':terms, u'arguments':arguments, u'to':to}, var)
                var.registers([u'from', u'terms', u'to'])
                PyJs_Object_4021_ = Js({u'type':Js(u'alternative'),u'body':var.get(u'terms'),u'range':Js([var.get(u'from'), var.get(u'to')])})
                return var.get(u'addRaw')(PyJs_Object_4021_)
            PyJsHoisted_createAlternative_.func_name = u'createAlternative'
            var.put(u'createAlternative', PyJsHoisted_createAlternative_)
            @Js
            def PyJsHoisted_parseClassRanges_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'res'])
                pass
                if var.get(u'current')(Js(u']')):
                    return Js([])
                else:
                    var.put(u'res', var.get(u'parseNonemptyClassRanges')())
                    if var.get(u'res').neg():
                        var.get(u'bail')(Js(u'nonEmptyClassRanges'))
                    return var.get(u'res')
            PyJsHoisted_parseClassRanges_.func_name = u'parseClassRanges'
            var.put(u'parseClassRanges', PyJsHoisted_parseClassRanges_)
            @Js
            def PyJsHoisted_createEscaped_(kind, codePoint, value, fromOffset, this, arguments, var=var):
                var = Scope({u'kind':kind, u'arguments':arguments, u'this':this, u'fromOffset':fromOffset, u'codePoint':codePoint, u'value':value}, var)
                var.registers([u'kind', u'fromOffset', u'codePoint', u'value'])
                var.put(u'fromOffset', (var.get(u'fromOffset') or Js(0.0)))
                return var.get(u'createValue')(var.get(u'kind'), var.get(u'codePoint'), (var.get(u'pos')-(var.get(u'value').get(u'length')+var.get(u'fromOffset'))), var.get(u'pos'))
            PyJsHoisted_createEscaped_.func_name = u'createEscaped'
            var.put(u'createEscaped', PyJsHoisted_createEscaped_)
            @Js
            def PyJsHoisted_parseUnicodeSurrogatePairEscape_(firstEscape, this, arguments, var=var):
                var = Scope({u'firstEscape':firstEscape, u'this':this, u'arguments':arguments}, var)
                var.registers([u'firstEscape', u'secondEscape', u'second', u'prevPos', u'first'])
                if var.get(u'hasUnicodeFlag'):
                    pass
                    if (((((var.get(u'firstEscape').get(u'kind')==Js(u'unicodeEscape')) and (var.put(u'first', var.get(u'firstEscape').get(u'codePoint'))>=Js(55296))) and (var.get(u'first')<=Js(56319))) and var.get(u'current')(Js(u'\\'))) and var.get(u'next')(Js(u'u'))):
                        var.put(u'prevPos', var.get(u'pos'))
                        (var.put(u'pos',Js(var.get(u'pos').to_number())+Js(1))-Js(1))
                        var.put(u'secondEscape', var.get(u'parseClassEscape')())
                        if (((var.get(u'secondEscape').get(u'kind')==Js(u'unicodeEscape')) and (var.put(u'second', var.get(u'secondEscape').get(u'codePoint'))>=Js(56320))) and (var.get(u'second')<=Js(57343))):
                            var.get(u'firstEscape').get(u'range').put(u'1', var.get(u'secondEscape').get(u'range').get(u'1'))
                            var.get(u'firstEscape').put(u'codePoint', (((((var.get(u'first')-Js(55296))*Js(1024))+var.get(u'second'))-Js(56320))+Js(65536)))
                            var.get(u'firstEscape').put(u'type', Js(u'value'))
                            var.get(u'firstEscape').put(u'kind', Js(u'unicodeCodePointEscape'))
                            var.get(u'addRaw')(var.get(u'firstEscape'))
                        else:
                            var.put(u'pos', var.get(u'prevPos'))
                return var.get(u'firstEscape')
            PyJsHoisted_parseUnicodeSurrogatePairEscape_.func_name = u'parseUnicodeSurrogatePairEscape'
            var.put(u'parseUnicodeSurrogatePairEscape', PyJsHoisted_parseUnicodeSurrogatePairEscape_)
            @Js
            def PyJsHoisted_parseTerm_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'quantifier', u'anchor', u'atom'])
                if (((var.get(u'pos')>=var.get(u'str').get(u'length')) or var.get(u'current')(Js(u'|'))) or var.get(u'current')(Js(u')'))):
                    return var.get(u"null")
                var.put(u'anchor', var.get(u'parseAnchor')())
                if var.get(u'anchor'):
                    return var.get(u'anchor')
                var.put(u'atom', var.get(u'parseAtom')())
                if var.get(u'atom').neg():
                    var.get(u'bail')(Js(u'Expected atom'))
                var.put(u'quantifier', (var.get(u'parseQuantifier')() or Js(False)))
                if var.get(u'quantifier'):
                    var.get(u'quantifier').put(u'body', var.get(u'flattenBody')(var.get(u'atom')))
                    var.get(u'updateRawStart')(var.get(u'quantifier'), var.get(u'atom').get(u'range').get(u'0'))
                    return var.get(u'quantifier')
                return var.get(u'atom')
            PyJsHoisted_parseTerm_.func_name = u'parseTerm'
            var.put(u'parseTerm', PyJsHoisted_parseTerm_)
            @Js
            def PyJsHoisted_createGroup_(behavior, disjunction, PyJsArg_66726f6d_, to, this, arguments, var=var):
                var = Scope({u'to':to, u'from':PyJsArg_66726f6d_, u'arguments':arguments, u'behavior':behavior, u'this':this, u'disjunction':disjunction}, var)
                var.registers([u'to', u'disjunction', u'from', u'behavior'])
                PyJs_Object_4019_ = Js({u'type':Js(u'group'),u'behavior':var.get(u'behavior'),u'body':var.get(u'disjunction'),u'range':Js([var.get(u'from'), var.get(u'to')])})
                return var.get(u'addRaw')(PyJs_Object_4019_)
            PyJsHoisted_createGroup_.func_name = u'createGroup'
            var.put(u'createGroup', PyJsHoisted_createGroup_)
            @Js
            def PyJsHoisted_parseDecimalEscape_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'res', u'refIdx', u'match'])
                pass
                if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^(?!0)\\d+/'))):
                    var.put(u'match', var.get(u'res').get(u'0'))
                    var.put(u'refIdx', var.get(u'parseInt')(var.get(u'res').get(u'0'), Js(10.0)))
                    if (var.get(u'refIdx')<=var.get(u'closedCaptureCounter')):
                        return var.get(u'createReference')(var.get(u'res').get(u'0'))
                    else:
                        var.get(u'backrefDenied').callprop(u'push', var.get(u'refIdx'))
                        var.get(u'incr')((-var.get(u'res').get(u'0').get(u'length')))
                        if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^[0-7]{1,3}/'))):
                            return var.get(u'createEscaped')(Js(u'octal'), var.get(u'parseInt')(var.get(u'res').get(u'0'), Js(8.0)), var.get(u'res').get(u'0'), Js(1.0))
                        else:
                            var.put(u'res', var.get(u'createCharacter')(var.get(u'matchReg')(JsRegExp(u'/^[89]/'))))
                            return var.get(u'updateRawStart')(var.get(u'res'), (var.get(u'res').get(u'range').get(u'0')-Js(1.0)))
                else:
                    if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^[0-7]{1,3}/'))):
                        var.put(u'match', var.get(u'res').get(u'0'))
                        if JsRegExp(u'/^0{1,3}$/').callprop(u'test', var.get(u'match')):
                            return var.get(u'createEscaped')(Js(u'null'), Js(0), Js(u'0'), (var.get(u'match').get(u'length')+Js(1.0)))
                        else:
                            return var.get(u'createEscaped')(Js(u'octal'), var.get(u'parseInt')(var.get(u'match'), Js(8.0)), var.get(u'match'), Js(1.0))
                    else:
                        if var.put(u'res', var.get(u'matchReg')(JsRegExp(u'/^[dDsSwW]/'))):
                            return var.get(u'createCharacterClassEscape')(var.get(u'res').get(u'0'))
                return Js(False)
            PyJsHoisted_parseDecimalEscape_.func_name = u'parseDecimalEscape'
            var.put(u'parseDecimalEscape', PyJsHoisted_parseDecimalEscape_)
            @Js
            def PyJsHoisted_parseClassAtom_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                if var.get(u'match')(Js(u'-')):
                    return var.get(u'createCharacter')(Js(u'-'))
                else:
                    return var.get(u'parseClassAtomNoDash')()
            PyJsHoisted_parseClassAtom_.func_name = u'parseClassAtom'
            var.put(u'parseClassAtom', PyJsHoisted_parseClassAtom_)
            @Js
            def PyJsHoisted_createCharacterClass_(classRanges, negative, PyJsArg_66726f6d_, to, this, arguments, var=var):
                var = Scope({u'to':to, u'from':PyJsArg_66726f6d_, u'classRanges':classRanges, u'this':this, u'negative':negative, u'arguments':arguments}, var)
                var.registers([u'to', u'from', u'classRanges', u'negative'])
                PyJs_Object_4022_ = Js({u'type':Js(u'characterClass'),u'body':var.get(u'classRanges'),u'negative':var.get(u'negative'),u'range':Js([var.get(u'from'), var.get(u'to')])})
                return var.get(u'addRaw')(PyJs_Object_4022_)
            PyJsHoisted_createCharacterClass_.func_name = u'createCharacterClass'
            var.put(u'createCharacterClass', PyJsHoisted_createCharacterClass_)
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            var.put(u'backrefDenied', Js([]))
            var.put(u'closedCaptureCounter', Js(0.0))
            var.put(u'firstIteration', var.get(u'true'))
            var.put(u'hasUnicodeFlag', PyJsStrictNeq((var.get(u'flags') or Js(u'')).callprop(u'indexOf', Js(u'u')),(-Js(1.0))))
            var.put(u'pos', Js(0.0))
            var.put(u'str', var.get(u'String')(var.get(u'str')))
            if PyJsStrictEq(var.get(u'str'),Js(u'')):
                var.put(u'str', Js(u'(?:)'))
            var.put(u'result', var.get(u'parseDisjunction')())
            if PyJsStrictNeq(var.get(u'result').get(u'range').get(u'1'),var.get(u'str').get(u'length')):
                var.get(u'bail')(Js(u'Could not parse entire input - got stuck'), Js(u''), var.get(u'result').get(u'range').get(u'1'))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'backrefDenied').get(u'length')):
                try:
                    if (var.get(u'backrefDenied').get(var.get(u'i'))<=var.get(u'closedCaptureCounter')):
                        var.put(u'pos', Js(0.0))
                        var.put(u'firstIteration', Js(False))
                        return var.get(u'parseDisjunction')()
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'result')
        PyJsHoisted_parse_.func_name = u'parse'
        var.put(u'parse', PyJsHoisted_parse_)
        pass
        PyJs_Object_4026_ = Js({u'parse':var.get(u'parse')})
        var.put(u'regjsparser', PyJs_Object_4026_)
        if (PyJsStrictNeq(var.get(u'module',throw=False).typeof(),Js(u'undefined')) and var.get(u'module').get(u'exports')):
            var.get(u'module').put(u'exports', var.get(u'regjsparser'))
        else:
            var.get(u'window').put(u'regjsparser', var.get(u'regjsparser'))
    PyJs_anonymous_4012_._set_name(u'anonymous')
    PyJs_anonymous_4012_()
PyJs_anonymous_4011_._set_name(u'anonymous')
PyJs_Object_4027_ = Js({})
@Js
def PyJs_anonymous_4028_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'isFinite', u'module'])
    Js(u'use strict')
    var.put(u'isFinite', var.get(u'require')(Js(u'is-finite')))
    @Js
    def PyJs_anonymous_4029_(str, n, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str, u'n':n}, var)
        var.registers([u'str', u'ret', u'n'])
        if PyJsStrictNeq(var.get(u'str',throw=False).typeof(),Js(u'string')):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Expected `input` to be a string')))
            raise PyJsTempException
        if ((var.get(u'n')<Js(0.0)) or var.get(u'isFinite')(var.get(u'n')).neg()):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Expected `count` to be a positive finite number')))
            raise PyJsTempException
        var.put(u'ret', Js(u''))
        while 1:
            if (var.get(u'n')&Js(1.0)):
                var.put(u'ret', var.get(u'str'), u'+')
            var.put(u'str', var.get(u'str'), u'+')
            if not var.put(u'n', Js(1.0), u'>>'):
                break
        return var.get(u'ret')
    PyJs_anonymous_4029_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_4029_)
PyJs_anonymous_4028_._set_name(u'anonymous')
PyJs_Object_4030_ = Js({u'is-finite':Js(281.0)})
@Js
def PyJs_anonymous_4031_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    @Js
    def PyJs_anonymous_4032_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'isExtendedLengthPath', u'hasNonAscii', u'str'])
        var.put(u'isExtendedLengthPath', JsRegExp(u'/^\\\\\\\\\\?\\\\/').callprop(u'test', var.get(u'str')))
        var.put(u'hasNonAscii', JsRegExp(u'/[^\\x00-\\x80]+/').callprop(u'test', var.get(u'str')))
        if (var.get(u'isExtendedLengthPath') or var.get(u'hasNonAscii')):
            return var.get(u'str')
        return var.get(u'str').callprop(u'replace', JsRegExp(u'/\\\\/g'), Js(u'/'))
    PyJs_anonymous_4032_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_4032_)
PyJs_anonymous_4031_._set_name(u'anonymous')
PyJs_Object_4033_ = Js({})
@Js
def PyJs_anonymous_4034_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'require', u'module', u'util', u'ArraySet', u'has'])
    @Js
    def PyJsHoisted_ArraySet_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").put(u'_array', Js([]))
        var.get(u"this").put(u'_set', var.get(u'Object').callprop(u'create', var.get(u"null")))
    PyJsHoisted_ArraySet_.func_name = u'ArraySet'
    var.put(u'ArraySet', PyJsHoisted_ArraySet_)
    var.put(u'util', var.get(u'require')(Js(u'./util')))
    var.put(u'has', var.get(u'Object').get(u'prototype').get(u'hasOwnProperty'))
    pass
    @Js
    def PyJs_ArraySet_fromArray_4035_(aArray, aAllowDuplicates, this, arguments, var=var):
        var = Scope({u'this':this, u'ArraySet_fromArray':PyJs_ArraySet_fromArray_4035_, u'aAllowDuplicates':aAllowDuplicates, u'aArray':aArray, u'arguments':arguments}, var)
        var.registers([u'i', u'aAllowDuplicates', u'set', u'aArray', u'len'])
        var.put(u'set', var.get(u'ArraySet').create())
        #for JS loop
        var.put(u'i', Js(0.0))
        var.put(u'len', var.get(u'aArray').get(u'length'))
        while (var.get(u'i')<var.get(u'len')):
            try:
                var.get(u'set').callprop(u'add', var.get(u'aArray').get(var.get(u'i')), var.get(u'aAllowDuplicates'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'set')
    PyJs_ArraySet_fromArray_4035_._set_name(u'ArraySet_fromArray')
    var.get(u'ArraySet').put(u'fromArray', PyJs_ArraySet_fromArray_4035_)
    @Js
    def PyJs_ArraySet_size_4036_(this, arguments, var=var):
        var = Scope({u'this':this, u'ArraySet_size':PyJs_ArraySet_size_4036_, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u'Object').callprop(u'getOwnPropertyNames', var.get(u"this").get(u'_set')).get(u'length')
    PyJs_ArraySet_size_4036_._set_name(u'ArraySet_size')
    var.get(u'ArraySet').get(u'prototype').put(u'size', PyJs_ArraySet_size_4036_)
    @Js
    def PyJs_ArraySet_add_4037_(aStr, aAllowDuplicates, this, arguments, var=var):
        var = Scope({u'this':this, u'ArraySet_add':PyJs_ArraySet_add_4037_, u'aStr':aStr, u'arguments':arguments, u'aAllowDuplicates':aAllowDuplicates}, var)
        var.registers([u'sStr', u'isDuplicate', u'aStr', u'aAllowDuplicates', u'idx'])
        var.put(u'sStr', var.get(u'util').callprop(u'toSetString', var.get(u'aStr')))
        var.put(u'isDuplicate', var.get(u'has').callprop(u'call', var.get(u"this").get(u'_set'), var.get(u'sStr')))
        var.put(u'idx', var.get(u"this").get(u'_array').get(u'length'))
        if (var.get(u'isDuplicate').neg() or var.get(u'aAllowDuplicates')):
            var.get(u"this").get(u'_array').callprop(u'push', var.get(u'aStr'))
        if var.get(u'isDuplicate').neg():
            var.get(u"this").get(u'_set').put(var.get(u'sStr'), var.get(u'idx'))
    PyJs_ArraySet_add_4037_._set_name(u'ArraySet_add')
    var.get(u'ArraySet').get(u'prototype').put(u'add', PyJs_ArraySet_add_4037_)
    @Js
    def PyJs_ArraySet_has_4038_(aStr, this, arguments, var=var):
        var = Scope({u'this':this, u'ArraySet_has':PyJs_ArraySet_has_4038_, u'aStr':aStr, u'arguments':arguments}, var)
        var.registers([u'sStr', u'aStr'])
        var.put(u'sStr', var.get(u'util').callprop(u'toSetString', var.get(u'aStr')))
        return var.get(u'has').callprop(u'call', var.get(u"this").get(u'_set'), var.get(u'sStr'))
    PyJs_ArraySet_has_4038_._set_name(u'ArraySet_has')
    var.get(u'ArraySet').get(u'prototype').put(u'has', PyJs_ArraySet_has_4038_)
    @Js
    def PyJs_ArraySet_indexOf_4039_(aStr, this, arguments, var=var):
        var = Scope({u'this':this, u'aStr':aStr, u'ArraySet_indexOf':PyJs_ArraySet_indexOf_4039_, u'arguments':arguments}, var)
        var.registers([u'sStr', u'aStr'])
        var.put(u'sStr', var.get(u'util').callprop(u'toSetString', var.get(u'aStr')))
        if var.get(u'has').callprop(u'call', var.get(u"this").get(u'_set'), var.get(u'sStr')):
            return var.get(u"this").get(u'_set').get(var.get(u'sStr'))
        PyJsTempException = JsToPyException(var.get(u'Error').create(((Js(u'"')+var.get(u'aStr'))+Js(u'" is not in the set.'))))
        raise PyJsTempException
    PyJs_ArraySet_indexOf_4039_._set_name(u'ArraySet_indexOf')
    var.get(u'ArraySet').get(u'prototype').put(u'indexOf', PyJs_ArraySet_indexOf_4039_)
    @Js
    def PyJs_ArraySet_at_4040_(aIdx, this, arguments, var=var):
        var = Scope({u'this':this, u'ArraySet_at':PyJs_ArraySet_at_4040_, u'aIdx':aIdx, u'arguments':arguments}, var)
        var.registers([u'aIdx'])
        if ((var.get(u'aIdx')>=Js(0.0)) and (var.get(u'aIdx')<var.get(u"this").get(u'_array').get(u'length'))):
            return var.get(u"this").get(u'_array').get(var.get(u'aIdx'))
        PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u'No element indexed by ')+var.get(u'aIdx'))))
        raise PyJsTempException
    PyJs_ArraySet_at_4040_._set_name(u'ArraySet_at')
    var.get(u'ArraySet').get(u'prototype').put(u'at', PyJs_ArraySet_at_4040_)
    @Js
    def PyJs_ArraySet_toArray_4041_(this, arguments, var=var):
        var = Scope({u'this':this, u'ArraySet_toArray':PyJs_ArraySet_toArray_4041_, u'arguments':arguments}, var)
        var.registers([])
        return var.get(u"this").get(u'_array').callprop(u'slice')
    PyJs_ArraySet_toArray_4041_._set_name(u'ArraySet_toArray')
    var.get(u'ArraySet').get(u'prototype').put(u'toArray', PyJs_ArraySet_toArray_4041_)
    var.get(u'exports').put(u'ArraySet', var.get(u'ArraySet'))
PyJs_anonymous_4034_._set_name(u'anonymous')
PyJs_Object_4042_ = Js({u'./util':Js(518.0)})
@Js
def PyJs_anonymous_4043_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'VLQ_CONTINUATION_BIT', u'VLQ_BASE', u'require', u'base64', u'toVLQSigned', u'module', u'VLQ_BASE_MASK', u'fromVLQSigned', u'VLQ_BASE_SHIFT'])
    @Js
    def PyJsHoisted_toVLQSigned_(aValue, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'aValue':aValue}, var)
        var.registers([u'aValue'])
        return ((((-var.get(u'aValue'))<<Js(1.0))+Js(1.0)) if (var.get(u'aValue')<Js(0.0)) else ((var.get(u'aValue')<<Js(1.0))+Js(0.0)))
    PyJsHoisted_toVLQSigned_.func_name = u'toVLQSigned'
    var.put(u'toVLQSigned', PyJsHoisted_toVLQSigned_)
    @Js
    def PyJsHoisted_fromVLQSigned_(aValue, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'aValue':aValue}, var)
        var.registers([u'shifted', u'aValue', u'isNegative'])
        var.put(u'isNegative', PyJsStrictEq((var.get(u'aValue')&Js(1.0)),Js(1.0)))
        var.put(u'shifted', (var.get(u'aValue')>>Js(1.0)))
        return ((-var.get(u'shifted')) if var.get(u'isNegative') else var.get(u'shifted'))
    PyJsHoisted_fromVLQSigned_.func_name = u'fromVLQSigned'
    var.put(u'fromVLQSigned', PyJsHoisted_fromVLQSigned_)
    var.put(u'base64', var.get(u'require')(Js(u'./base64')))
    var.put(u'VLQ_BASE_SHIFT', Js(5.0))
    var.put(u'VLQ_BASE', (Js(1.0)<<var.get(u'VLQ_BASE_SHIFT')))
    var.put(u'VLQ_BASE_MASK', (var.get(u'VLQ_BASE')-Js(1.0)))
    var.put(u'VLQ_CONTINUATION_BIT', var.get(u'VLQ_BASE'))
    pass
    pass
    @Js
    def PyJs_base64VLQ_encode_4044_(aValue, this, arguments, var=var):
        var = Scope({u'this':this, u'base64VLQ_encode':PyJs_base64VLQ_encode_4044_, u'arguments':arguments, u'aValue':aValue}, var)
        var.registers([u'vlq', u'encoded', u'digit', u'aValue'])
        var.put(u'encoded', Js(u''))
        pass
        var.put(u'vlq', var.get(u'toVLQSigned')(var.get(u'aValue')))
        while 1:
            var.put(u'digit', (var.get(u'vlq')&var.get(u'VLQ_BASE_MASK')))
            var.put(u'vlq', var.get(u'VLQ_BASE_SHIFT'), u'>>>')
            if (var.get(u'vlq')>Js(0.0)):
                var.put(u'digit', var.get(u'VLQ_CONTINUATION_BIT'), u'|')
            var.put(u'encoded', var.get(u'base64').callprop(u'encode', var.get(u'digit')), u'+')
            if not (var.get(u'vlq')>Js(0.0)):
                break
        return var.get(u'encoded')
    PyJs_base64VLQ_encode_4044_._set_name(u'base64VLQ_encode')
    var.get(u'exports').put(u'encode', PyJs_base64VLQ_encode_4044_)
    @Js
    def PyJs_base64VLQ_decode_4045_(aStr, aIndex, aOutParam, this, arguments, var=var):
        var = Scope({u'base64VLQ_decode':PyJs_base64VLQ_decode_4045_, u'this':this, u'arguments':arguments, u'aStr':aStr, u'aOutParam':aOutParam, u'aIndex':aIndex}, var)
        var.registers([u'digit', u'shift', u'result', u'continuation', u'aStr', u'aOutParam', u'strLen', u'aIndex'])
        var.put(u'strLen', var.get(u'aStr').get(u'length'))
        var.put(u'result', Js(0.0))
        var.put(u'shift', Js(0.0))
        pass
        while 1:
            if (var.get(u'aIndex')>=var.get(u'strLen')):
                PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Expected more digits in base 64 VLQ value.')))
                raise PyJsTempException
            var.put(u'digit', var.get(u'base64').callprop(u'decode', var.get(u'aStr').callprop(u'charCodeAt', (var.put(u'aIndex',Js(var.get(u'aIndex').to_number())+Js(1))-Js(1)))))
            if PyJsStrictEq(var.get(u'digit'),(-Js(1.0))):
                PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u'Invalid base64 digit: ')+var.get(u'aStr').callprop(u'charAt', (var.get(u'aIndex')-Js(1.0))))))
                raise PyJsTempException
            var.put(u'continuation', (var.get(u'digit')&var.get(u'VLQ_CONTINUATION_BIT')).neg().neg())
            var.put(u'digit', var.get(u'VLQ_BASE_MASK'), u'&')
            var.put(u'result', (var.get(u'result')+(var.get(u'digit')<<var.get(u'shift'))))
            var.put(u'shift', var.get(u'VLQ_BASE_SHIFT'), u'+')
            if not var.get(u'continuation'):
                break
        var.get(u'aOutParam').put(u'value', var.get(u'fromVLQSigned')(var.get(u'result')))
        var.get(u'aOutParam').put(u'rest', var.get(u'aIndex'))
    PyJs_base64VLQ_decode_4045_._set_name(u'base64VLQ_decode')
    var.get(u'exports').put(u'decode', PyJs_base64VLQ_decode_4045_)
PyJs_anonymous_4043_._set_name(u'anonymous')
PyJs_Object_4046_ = Js({u'./base64':Js(511.0)})
@Js
def PyJs_anonymous_4047_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'intToCharMap', u'exports', u'require', u'module'])
    var.put(u'intToCharMap', Js(u'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/').callprop(u'split', Js(u'')))
    @Js
    def PyJs_anonymous_4048_(number, this, arguments, var=var):
        var = Scope({u'this':this, u'number':number, u'arguments':arguments}, var)
        var.registers([u'number'])
        if ((Js(0.0)<=var.get(u'number')) and (var.get(u'number')<var.get(u'intToCharMap').get(u'length'))):
            return var.get(u'intToCharMap').get(var.get(u'number'))
        PyJsTempException = JsToPyException(var.get(u'TypeError').create((Js(u'Must be between 0 and 63: ')+var.get(u'number'))))
        raise PyJsTempException
    PyJs_anonymous_4048_._set_name(u'anonymous')
    var.get(u'exports').put(u'encode', PyJs_anonymous_4048_)
    @Js
    def PyJs_anonymous_4049_(charCode, this, arguments, var=var):
        var = Scope({u'this':this, u'charCode':charCode, u'arguments':arguments}, var)
        var.registers([u'bigZ', u'littleOffset', u'charCode', u'numberOffset', u'littleA', u'littleZ', u'zero', u'nine', u'slash', u'plus', u'bigA'])
        var.put(u'bigA', Js(65.0))
        var.put(u'bigZ', Js(90.0))
        var.put(u'littleA', Js(97.0))
        var.put(u'littleZ', Js(122.0))
        var.put(u'zero', Js(48.0))
        var.put(u'nine', Js(57.0))
        var.put(u'plus', Js(43.0))
        var.put(u'slash', Js(47.0))
        var.put(u'littleOffset', Js(26.0))
        var.put(u'numberOffset', Js(52.0))
        if ((var.get(u'bigA')<=var.get(u'charCode')) and (var.get(u'charCode')<=var.get(u'bigZ'))):
            return (var.get(u'charCode')-var.get(u'bigA'))
        if ((var.get(u'littleA')<=var.get(u'charCode')) and (var.get(u'charCode')<=var.get(u'littleZ'))):
            return ((var.get(u'charCode')-var.get(u'littleA'))+var.get(u'littleOffset'))
        if ((var.get(u'zero')<=var.get(u'charCode')) and (var.get(u'charCode')<=var.get(u'nine'))):
            return ((var.get(u'charCode')-var.get(u'zero'))+var.get(u'numberOffset'))
        if (var.get(u'charCode')==var.get(u'plus')):
            return Js(62.0)
        if (var.get(u'charCode')==var.get(u'slash')):
            return Js(63.0)
        return (-Js(1.0))
    PyJs_anonymous_4049_._set_name(u'anonymous')
    var.get(u'exports').put(u'decode', PyJs_anonymous_4049_)
PyJs_anonymous_4047_._set_name(u'anonymous')
PyJs_Object_4050_ = Js({})
@Js
def PyJs_anonymous_4051_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module', u'recursiveSearch'])
    @Js
    def PyJsHoisted_recursiveSearch_(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias, this, arguments, var=var):
        var = Scope({u'aNeedle':aNeedle, u'this':this, u'aBias':aBias, u'aCompare':aCompare, u'aHigh':aHigh, u'aLow':aLow, u'aHaystack':aHaystack, u'arguments':arguments}, var)
        var.registers([u'aNeedle', u'aBias', u'mid', u'aCompare', u'aHigh', u'aLow', u'aHaystack', u'cmp'])
        var.put(u'mid', (var.get(u'Math').callprop(u'floor', ((var.get(u'aHigh')-var.get(u'aLow'))/Js(2.0)))+var.get(u'aLow')))
        var.put(u'cmp', var.get(u'aCompare')(var.get(u'aNeedle'), var.get(u'aHaystack').get(var.get(u'mid')), var.get(u'true')))
        if PyJsStrictEq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'mid')
        else:
            if (var.get(u'cmp')>Js(0.0)):
                if ((var.get(u'aHigh')-var.get(u'mid'))>Js(1.0)):
                    return var.get(u'recursiveSearch')(var.get(u'mid'), var.get(u'aHigh'), var.get(u'aNeedle'), var.get(u'aHaystack'), var.get(u'aCompare'), var.get(u'aBias'))
                if (var.get(u'aBias')==var.get(u'exports').get(u'LEAST_UPPER_BOUND')):
                    return (var.get(u'aHigh') if (var.get(u'aHigh')<var.get(u'aHaystack').get(u'length')) else (-Js(1.0)))
                else:
                    return var.get(u'mid')
            else:
                if ((var.get(u'mid')-var.get(u'aLow'))>Js(1.0)):
                    return var.get(u'recursiveSearch')(var.get(u'aLow'), var.get(u'mid'), var.get(u'aNeedle'), var.get(u'aHaystack'), var.get(u'aCompare'), var.get(u'aBias'))
                if (var.get(u'aBias')==var.get(u'exports').get(u'LEAST_UPPER_BOUND')):
                    return var.get(u'mid')
                else:
                    return ((-Js(1.0)) if (var.get(u'aLow')<Js(0.0)) else var.get(u'aLow'))
    PyJsHoisted_recursiveSearch_.func_name = u'recursiveSearch'
    var.put(u'recursiveSearch', PyJsHoisted_recursiveSearch_)
    var.get(u'exports').put(u'GREATEST_LOWER_BOUND', Js(1.0))
    var.get(u'exports').put(u'LEAST_UPPER_BOUND', Js(2.0))
    pass
    @Js
    def PyJs_search_4052_(aNeedle, aHaystack, aCompare, aBias, this, arguments, var=var):
        var = Scope({u'search':PyJs_search_4052_, u'aNeedle':aNeedle, u'arguments':arguments, u'aHaystack':aHaystack, u'this':this, u'aBias':aBias, u'aCompare':aCompare}, var)
        var.registers([u'aBias', u'index', u'aNeedle', u'aCompare', u'aHaystack'])
        if PyJsStrictEq(var.get(u'aHaystack').get(u'length'),Js(0.0)):
            return (-Js(1.0))
        var.put(u'index', var.get(u'recursiveSearch')((-Js(1.0)), var.get(u'aHaystack').get(u'length'), var.get(u'aNeedle'), var.get(u'aHaystack'), var.get(u'aCompare'), (var.get(u'aBias') or var.get(u'exports').get(u'GREATEST_LOWER_BOUND'))))
        if (var.get(u'index')<Js(0.0)):
            return (-Js(1.0))
        while ((var.get(u'index')-Js(1.0))>=Js(0.0)):
            if PyJsStrictNeq(var.get(u'aCompare')(var.get(u'aHaystack').get(var.get(u'index')), var.get(u'aHaystack').get((var.get(u'index')-Js(1.0))), var.get(u'true')),Js(0.0)):
                break
            var.put(u'index',Js(var.get(u'index').to_number())-Js(1))
        return var.get(u'index')
    PyJs_search_4052_._set_name(u'search')
    var.get(u'exports').put(u'search', PyJs_search_4052_)
PyJs_anonymous_4051_._set_name(u'anonymous')
PyJs_Object_4053_ = Js({})
@Js
def PyJs_anonymous_4054_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'generatedPositionAfter', u'require', u'exports', u'module', u'util', u'MappingList'])
    @Js
    def PyJsHoisted_generatedPositionAfter_(mappingA, mappingB, this, arguments, var=var):
        var = Scope({u'this':this, u'mappingB':mappingB, u'arguments':arguments, u'mappingA':mappingA}, var)
        var.registers([u'columnA', u'columnB', u'mappingB', u'mappingA', u'lineB', u'lineA'])
        var.put(u'lineA', var.get(u'mappingA').get(u'generatedLine'))
        var.put(u'lineB', var.get(u'mappingB').get(u'generatedLine'))
        var.put(u'columnA', var.get(u'mappingA').get(u'generatedColumn'))
        var.put(u'columnB', var.get(u'mappingB').get(u'generatedColumn'))
        return (((var.get(u'lineB')>var.get(u'lineA')) or ((var.get(u'lineB')==var.get(u'lineA')) and (var.get(u'columnB')>=var.get(u'columnA')))) or (var.get(u'util').callprop(u'compareByGeneratedPositionsInflated', var.get(u'mappingA'), var.get(u'mappingB'))<=Js(0.0)))
    PyJsHoisted_generatedPositionAfter_.func_name = u'generatedPositionAfter'
    var.put(u'generatedPositionAfter', PyJsHoisted_generatedPositionAfter_)
    @Js
    def PyJsHoisted_MappingList_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").put(u'_array', Js([]))
        var.get(u"this").put(u'_sorted', var.get(u'true'))
        PyJs_Object_4055_ = Js({u'generatedLine':(-Js(1.0)),u'generatedColumn':Js(0.0)})
        var.get(u"this").put(u'_last', PyJs_Object_4055_)
    PyJsHoisted_MappingList_.func_name = u'MappingList'
    var.put(u'MappingList', PyJsHoisted_MappingList_)
    var.put(u'util', var.get(u'require')(Js(u'./util')))
    pass
    pass
    @Js
    def PyJs_MappingList_forEach_4056_(aCallback, aThisArg, this, arguments, var=var):
        var = Scope({u'this':this, u'aThisArg':aThisArg, u'aCallback':aCallback, u'MappingList_forEach':PyJs_MappingList_forEach_4056_, u'arguments':arguments}, var)
        var.registers([u'aThisArg', u'aCallback'])
        var.get(u"this").get(u'_array').callprop(u'forEach', var.get(u'aCallback'), var.get(u'aThisArg'))
    PyJs_MappingList_forEach_4056_._set_name(u'MappingList_forEach')
    var.get(u'MappingList').get(u'prototype').put(u'unsortedForEach', PyJs_MappingList_forEach_4056_)
    @Js
    def PyJs_MappingList_add_4057_(aMapping, this, arguments, var=var):
        var = Scope({u'this':this, u'MappingList_add':PyJs_MappingList_add_4057_, u'aMapping':aMapping, u'arguments':arguments}, var)
        var.registers([u'aMapping'])
        if var.get(u'generatedPositionAfter')(var.get(u"this").get(u'_last'), var.get(u'aMapping')):
            var.get(u"this").put(u'_last', var.get(u'aMapping'))
            var.get(u"this").get(u'_array').callprop(u'push', var.get(u'aMapping'))
        else:
            var.get(u"this").put(u'_sorted', Js(False))
            var.get(u"this").get(u'_array').callprop(u'push', var.get(u'aMapping'))
    PyJs_MappingList_add_4057_._set_name(u'MappingList_add')
    var.get(u'MappingList').get(u'prototype').put(u'add', PyJs_MappingList_add_4057_)
    @Js
    def PyJs_MappingList_toArray_4058_(this, arguments, var=var):
        var = Scope({u'this':this, u'MappingList_toArray':PyJs_MappingList_toArray_4058_, u'arguments':arguments}, var)
        var.registers([])
        if var.get(u"this").get(u'_sorted').neg():
            var.get(u"this").get(u'_array').callprop(u'sort', var.get(u'util').get(u'compareByGeneratedPositionsInflated'))
            var.get(u"this").put(u'_sorted', var.get(u'true'))
        return var.get(u"this").get(u'_array')
    PyJs_MappingList_toArray_4058_._set_name(u'MappingList_toArray')
    var.get(u'MappingList').get(u'prototype').put(u'toArray', PyJs_MappingList_toArray_4058_)
    var.get(u'exports').put(u'MappingList', var.get(u'MappingList'))
PyJs_anonymous_4054_._set_name(u'anonymous')
PyJs_Object_4059_ = Js({u'./util':Js(518.0)})
@Js
def PyJs_anonymous_4060_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'randomIntInRange', u'require', u'module', u'doQuickSort', u'swap'])
    @Js
    def PyJsHoisted_randomIntInRange_(low, high, this, arguments, var=var):
        var = Scope({u'high':high, u'this':this, u'low':low, u'arguments':arguments}, var)
        var.registers([u'high', u'low'])
        return var.get(u'Math').callprop(u'round', (var.get(u'low')+(var.get(u'Math').callprop(u'random')*(var.get(u'high')-var.get(u'low')))))
    PyJsHoisted_randomIntInRange_.func_name = u'randomIntInRange'
    var.put(u'randomIntInRange', PyJsHoisted_randomIntInRange_)
    @Js
    def PyJsHoisted_swap_(ary, x, y, this, arguments, var=var):
        var = Scope({u'y':y, u'ary':ary, u'this':this, u'arguments':arguments, u'x':x}, var)
        var.registers([u'y', u'ary', u'temp', u'x'])
        var.put(u'temp', var.get(u'ary').get(var.get(u'x')))
        var.get(u'ary').put(var.get(u'x'), var.get(u'ary').get(var.get(u'y')))
        var.get(u'ary').put(var.get(u'y'), var.get(u'temp'))
    PyJsHoisted_swap_.func_name = u'swap'
    var.put(u'swap', PyJsHoisted_swap_)
    @Js
    def PyJsHoisted_doQuickSort_(ary, comparator, p, r, this, arguments, var=var):
        var = Scope({u'p':p, u'r':r, u'arguments':arguments, u'comparator':comparator, u'this':this, u'ary':ary}, var)
        var.registers([u'comparator', u'i', u'ary', u'pivotIndex', u'j', u'q', u'p', u'r', u'pivot'])
        if (var.get(u'p')<var.get(u'r')):
            var.put(u'pivotIndex', var.get(u'randomIntInRange')(var.get(u'p'), var.get(u'r')))
            var.put(u'i', (var.get(u'p')-Js(1.0)))
            var.get(u'swap')(var.get(u'ary'), var.get(u'pivotIndex'), var.get(u'r'))
            var.put(u'pivot', var.get(u'ary').get(var.get(u'r')))
            #for JS loop
            var.put(u'j', var.get(u'p'))
            while (var.get(u'j')<var.get(u'r')):
                try:
                    if (var.get(u'comparator')(var.get(u'ary').get(var.get(u'j')), var.get(u'pivot'))<=Js(0.0)):
                        var.put(u'i', Js(1.0), u'+')
                        var.get(u'swap')(var.get(u'ary'), var.get(u'i'), var.get(u'j'))
                finally:
                        (var.put(u'j',Js(var.get(u'j').to_number())+Js(1))-Js(1))
            var.get(u'swap')(var.get(u'ary'), (var.get(u'i')+Js(1.0)), var.get(u'j'))
            var.put(u'q', (var.get(u'i')+Js(1.0)))
            var.get(u'doQuickSort')(var.get(u'ary'), var.get(u'comparator'), var.get(u'p'), (var.get(u'q')-Js(1.0)))
            var.get(u'doQuickSort')(var.get(u'ary'), var.get(u'comparator'), (var.get(u'q')+Js(1.0)), var.get(u'r'))
    PyJsHoisted_doQuickSort_.func_name = u'doQuickSort'
    var.put(u'doQuickSort', PyJsHoisted_doQuickSort_)
    pass
    pass
    pass
    @Js
    def PyJs_anonymous_4061_(ary, comparator, this, arguments, var=var):
        var = Scope({u'this':this, u'ary':ary, u'arguments':arguments, u'comparator':comparator}, var)
        var.registers([u'ary', u'comparator'])
        var.get(u'doQuickSort')(var.get(u'ary'), var.get(u'comparator'), Js(0.0), (var.get(u'ary').get(u'length')-Js(1.0)))
    PyJs_anonymous_4061_._set_name(u'anonymous')
    var.get(u'exports').put(u'quickSort', PyJs_anonymous_4061_)
PyJs_anonymous_4060_._set_name(u'anonymous')
PyJs_Object_4062_ = Js({})
@Js
def PyJs_anonymous_4063_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'base64VLQ', u'IndexedSourceMapConsumer', u'quickSort', u'Mapping', u'SourceMapConsumer', u'binarySearch', u'util', u'ArraySet', u'module', u'require', u'BasicSourceMapConsumer'])
    @Js
    def PyJsHoisted_IndexedSourceMapConsumer_(aSourceMap, this, arguments, var=var):
        var = Scope({u'this':this, u'aSourceMap':aSourceMap, u'arguments':arguments}, var)
        var.registers([u'sourceMap', u'version', u'sections', u'aSourceMap', u'lastOffset'])
        var.put(u'sourceMap', var.get(u'aSourceMap'))
        if PyJsStrictEq(var.get(u'aSourceMap',throw=False).typeof(),Js(u'string')):
            var.put(u'sourceMap', var.get(u'JSON').callprop(u'parse', var.get(u'aSourceMap').callprop(u'replace', JsRegExp(u"/^\\)\\]\\}'/"), Js(u''))))
        var.put(u'version', var.get(u'util').callprop(u'getArg', var.get(u'sourceMap'), Js(u'version')))
        var.put(u'sections', var.get(u'util').callprop(u'getArg', var.get(u'sourceMap'), Js(u'sections')))
        if (var.get(u'version')!=var.get(u"this").get(u'_version')):
            PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u'Unsupported version: ')+var.get(u'version'))))
            raise PyJsTempException
        var.get(u"this").put(u'_sources', var.get(u'ArraySet').create())
        var.get(u"this").put(u'_names', var.get(u'ArraySet').create())
        PyJs_Object_4100_ = Js({u'line':(-Js(1.0)),u'column':Js(0.0)})
        var.put(u'lastOffset', PyJs_Object_4100_)
        @Js
        def PyJs_anonymous_4101_(s, this, arguments, var=var):
            var = Scope({u'this':this, u's':s, u'arguments':arguments}, var)
            var.registers([u'offsetLine', u's', u'offsetColumn', u'offset'])
            if var.get(u's').get(u'url'):
                PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Support for url field in sections not implemented.')))
                raise PyJsTempException
            var.put(u'offset', var.get(u'util').callprop(u'getArg', var.get(u's'), Js(u'offset')))
            var.put(u'offsetLine', var.get(u'util').callprop(u'getArg', var.get(u'offset'), Js(u'line')))
            var.put(u'offsetColumn', var.get(u'util').callprop(u'getArg', var.get(u'offset'), Js(u'column')))
            if ((var.get(u'offsetLine')<var.get(u'lastOffset').get(u'line')) or (PyJsStrictEq(var.get(u'offsetLine'),var.get(u'lastOffset').get(u'line')) and (var.get(u'offsetColumn')<var.get(u'lastOffset').get(u'column')))):
                PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Section offsets must be ordered and non-overlapping.')))
                raise PyJsTempException
            var.put(u'lastOffset', var.get(u'offset'))
            PyJs_Object_4103_ = Js({u'generatedLine':(var.get(u'offsetLine')+Js(1.0)),u'generatedColumn':(var.get(u'offsetColumn')+Js(1.0))})
            PyJs_Object_4102_ = Js({u'generatedOffset':PyJs_Object_4103_,u'consumer':var.get(u'SourceMapConsumer').create(var.get(u'util').callprop(u'getArg', var.get(u's'), Js(u'map')))})
            return PyJs_Object_4102_
        PyJs_anonymous_4101_._set_name(u'anonymous')
        var.get(u"this").put(u'_sections', var.get(u'sections').callprop(u'map', PyJs_anonymous_4101_))
    PyJsHoisted_IndexedSourceMapConsumer_.func_name = u'IndexedSourceMapConsumer'
    var.put(u'IndexedSourceMapConsumer', PyJsHoisted_IndexedSourceMapConsumer_)
    @Js
    def PyJsHoisted_Mapping_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").put(u'generatedLine', Js(0.0))
        var.get(u"this").put(u'generatedColumn', Js(0.0))
        var.get(u"this").put(u'source', var.get(u"null"))
        var.get(u"this").put(u'originalLine', var.get(u"null"))
        var.get(u"this").put(u'originalColumn', var.get(u"null"))
        var.get(u"this").put(u'name', var.get(u"null"))
    PyJsHoisted_Mapping_.func_name = u'Mapping'
    var.put(u'Mapping', PyJsHoisted_Mapping_)
    @Js
    def PyJsHoisted_SourceMapConsumer_(aSourceMap, this, arguments, var=var):
        var = Scope({u'this':this, u'aSourceMap':aSourceMap, u'arguments':arguments}, var)
        var.registers([u'sourceMap', u'aSourceMap'])
        var.put(u'sourceMap', var.get(u'aSourceMap'))
        if PyJsStrictEq(var.get(u'aSourceMap',throw=False).typeof(),Js(u'string')):
            var.put(u'sourceMap', var.get(u'JSON').callprop(u'parse', var.get(u'aSourceMap').callprop(u'replace', JsRegExp(u"/^\\)\\]\\}'/"), Js(u''))))
        return (var.get(u'IndexedSourceMapConsumer').create(var.get(u'sourceMap')) if (var.get(u'sourceMap').get(u'sections')!=var.get(u"null")) else var.get(u'BasicSourceMapConsumer').create(var.get(u'sourceMap')))
    PyJsHoisted_SourceMapConsumer_.func_name = u'SourceMapConsumer'
    var.put(u'SourceMapConsumer', PyJsHoisted_SourceMapConsumer_)
    @Js
    def PyJsHoisted_BasicSourceMapConsumer_(aSourceMap, this, arguments, var=var):
        var = Scope({u'this':this, u'aSourceMap':aSourceMap, u'arguments':arguments}, var)
        var.registers([u'mappings', u'sourcesContent', u'aSourceMap', u'sourceRoot', u'sources', u'sourceMap', u'version', u'names', u'file'])
        var.put(u'sourceMap', var.get(u'aSourceMap'))
        if PyJsStrictEq(var.get(u'aSourceMap',throw=False).typeof(),Js(u'string')):
            var.put(u'sourceMap', var.get(u'JSON').callprop(u'parse', var.get(u'aSourceMap').callprop(u'replace', JsRegExp(u"/^\\)\\]\\}'/"), Js(u''))))
        var.put(u'version', var.get(u'util').callprop(u'getArg', var.get(u'sourceMap'), Js(u'version')))
        var.put(u'sources', var.get(u'util').callprop(u'getArg', var.get(u'sourceMap'), Js(u'sources')))
        var.put(u'names', var.get(u'util').callprop(u'getArg', var.get(u'sourceMap'), Js(u'names'), Js([])))
        var.put(u'sourceRoot', var.get(u'util').callprop(u'getArg', var.get(u'sourceMap'), Js(u'sourceRoot'), var.get(u"null")))
        var.put(u'sourcesContent', var.get(u'util').callprop(u'getArg', var.get(u'sourceMap'), Js(u'sourcesContent'), var.get(u"null")))
        var.put(u'mappings', var.get(u'util').callprop(u'getArg', var.get(u'sourceMap'), Js(u'mappings')))
        var.put(u'file', var.get(u'util').callprop(u'getArg', var.get(u'sourceMap'), Js(u'file'), var.get(u"null")))
        if (var.get(u'version')!=var.get(u"this").get(u'_version')):
            PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u'Unsupported version: ')+var.get(u'version'))))
            raise PyJsTempException
        @Js
        def PyJs_anonymous_4078_(source, this, arguments, var=var):
            var = Scope({u'this':this, u'source':source, u'arguments':arguments}, var)
            var.registers([u'source'])
            return (var.get(u'util').callprop(u'relative', var.get(u'sourceRoot'), var.get(u'source')) if ((var.get(u'sourceRoot') and var.get(u'util').callprop(u'isAbsolute', var.get(u'sourceRoot'))) and var.get(u'util').callprop(u'isAbsolute', var.get(u'source'))) else var.get(u'source'))
        PyJs_anonymous_4078_._set_name(u'anonymous')
        var.put(u'sources', var.get(u'sources').callprop(u'map', var.get(u'String')).callprop(u'map', var.get(u'util').get(u'normalize')).callprop(u'map', PyJs_anonymous_4078_))
        var.get(u"this").put(u'_names', var.get(u'ArraySet').callprop(u'fromArray', var.get(u'names').callprop(u'map', var.get(u'String')), var.get(u'true')))
        var.get(u"this").put(u'_sources', var.get(u'ArraySet').callprop(u'fromArray', var.get(u'sources'), var.get(u'true')))
        var.get(u"this").put(u'sourceRoot', var.get(u'sourceRoot'))
        var.get(u"this").put(u'sourcesContent', var.get(u'sourcesContent'))
        var.get(u"this").put(u'_mappings', var.get(u'mappings'))
        var.get(u"this").put(u'file', var.get(u'file'))
    PyJsHoisted_BasicSourceMapConsumer_.func_name = u'BasicSourceMapConsumer'
    var.put(u'BasicSourceMapConsumer', PyJsHoisted_BasicSourceMapConsumer_)
    var.put(u'util', var.get(u'require')(Js(u'./util')))
    var.put(u'binarySearch', var.get(u'require')(Js(u'./binary-search')))
    var.put(u'ArraySet', var.get(u'require')(Js(u'./array-set')).get(u'ArraySet'))
    var.put(u'base64VLQ', var.get(u'require')(Js(u'./base64-vlq')))
    var.put(u'quickSort', var.get(u'require')(Js(u'./quick-sort')).get(u'quickSort'))
    pass
    @Js
    def PyJs_anonymous_4064_(aSourceMap, this, arguments, var=var):
        var = Scope({u'this':this, u'aSourceMap':aSourceMap, u'arguments':arguments}, var)
        var.registers([u'aSourceMap'])
        return var.get(u'BasicSourceMapConsumer').callprop(u'fromSourceMap', var.get(u'aSourceMap'))
    PyJs_anonymous_4064_._set_name(u'anonymous')
    var.get(u'SourceMapConsumer').put(u'fromSourceMap', PyJs_anonymous_4064_)
    var.get(u'SourceMapConsumer').get(u'prototype').put(u'_version', Js(3.0))
    var.get(u'SourceMapConsumer').get(u'prototype').put(u'__generatedMappings', var.get(u"null"))
    @Js
    def PyJs_anonymous_4066_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if var.get(u"this").get(u'__generatedMappings').neg():
            var.get(u"this").callprop(u'_parseMappings', var.get(u"this").get(u'_mappings'), var.get(u"this").get(u'sourceRoot'))
        return var.get(u"this").get(u'__generatedMappings')
    PyJs_anonymous_4066_._set_name(u'anonymous')
    PyJs_Object_4065_ = Js({u'get':PyJs_anonymous_4066_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'SourceMapConsumer').get(u'prototype'), Js(u'_generatedMappings'), PyJs_Object_4065_)
    var.get(u'SourceMapConsumer').get(u'prototype').put(u'__originalMappings', var.get(u"null"))
    @Js
    def PyJs_anonymous_4068_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        if var.get(u"this").get(u'__originalMappings').neg():
            var.get(u"this").callprop(u'_parseMappings', var.get(u"this").get(u'_mappings'), var.get(u"this").get(u'sourceRoot'))
        return var.get(u"this").get(u'__originalMappings')
    PyJs_anonymous_4068_._set_name(u'anonymous')
    PyJs_Object_4067_ = Js({u'get':PyJs_anonymous_4068_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'SourceMapConsumer').get(u'prototype'), Js(u'_originalMappings'), PyJs_Object_4067_)
    @Js
    def PyJs_SourceMapConsumer_charIsMappingSeparator_4069_(aStr, index, this, arguments, var=var):
        var = Scope({u'this':this, u'index':index, u'aStr':aStr, u'arguments':arguments, u'SourceMapConsumer_charIsMappingSeparator':PyJs_SourceMapConsumer_charIsMappingSeparator_4069_}, var)
        var.registers([u'index', u'c', u'aStr'])
        var.put(u'c', var.get(u'aStr').callprop(u'charAt', var.get(u'index')))
        return (PyJsStrictEq(var.get(u'c'),Js(u';')) or PyJsStrictEq(var.get(u'c'),Js(u',')))
    PyJs_SourceMapConsumer_charIsMappingSeparator_4069_._set_name(u'SourceMapConsumer_charIsMappingSeparator')
    var.get(u'SourceMapConsumer').get(u'prototype').put(u'_charIsMappingSeparator', PyJs_SourceMapConsumer_charIsMappingSeparator_4069_)
    @Js
    def PyJs_SourceMapConsumer_parseMappings_4070_(aStr, aSourceRoot, this, arguments, var=var):
        var = Scope({u'this':this, u'SourceMapConsumer_parseMappings':PyJs_SourceMapConsumer_parseMappings_4070_, u'aStr':aStr, u'aSourceRoot':aSourceRoot, u'arguments':arguments}, var)
        var.registers([u'aStr', u'aSourceRoot'])
        PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Subclasses must implement _parseMappings')))
        raise PyJsTempException
    PyJs_SourceMapConsumer_parseMappings_4070_._set_name(u'SourceMapConsumer_parseMappings')
    var.get(u'SourceMapConsumer').get(u'prototype').put(u'_parseMappings', PyJs_SourceMapConsumer_parseMappings_4070_)
    var.get(u'SourceMapConsumer').put(u'GENERATED_ORDER', Js(1.0))
    var.get(u'SourceMapConsumer').put(u'ORIGINAL_ORDER', Js(2.0))
    var.get(u'SourceMapConsumer').put(u'GREATEST_LOWER_BOUND', Js(1.0))
    var.get(u'SourceMapConsumer').put(u'LEAST_UPPER_BOUND', Js(2.0))
    @Js
    def PyJs_SourceMapConsumer_eachMapping_4071_(aCallback, aContext, aOrder, this, arguments, var=var):
        var = Scope({u'this':this, u'aCallback':aCallback, u'aOrder':aOrder, u'arguments':arguments, u'aContext':aContext, u'SourceMapConsumer_eachMapping':PyJs_SourceMapConsumer_eachMapping_4071_}, var)
        var.registers([u'context', u'aCallback', u'sourceRoot', u'aOrder', u'aContext', u'order', u'mappings'])
        var.put(u'context', (var.get(u'aContext') or var.get(u"null")))
        var.put(u'order', (var.get(u'aOrder') or var.get(u'SourceMapConsumer').get(u'GENERATED_ORDER')))
        pass
        while 1:
            SWITCHED = False
            CONDITION = (var.get(u'order'))
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'SourceMapConsumer').get(u'GENERATED_ORDER')):
                SWITCHED = True
                var.put(u'mappings', var.get(u"this").get(u'_generatedMappings'))
                break
            if SWITCHED or PyJsStrictEq(CONDITION, var.get(u'SourceMapConsumer').get(u'ORIGINAL_ORDER')):
                SWITCHED = True
                var.put(u'mappings', var.get(u"this").get(u'_originalMappings'))
                break
            if True:
                SWITCHED = True
                PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Unknown order of iteration.')))
                raise PyJsTempException
            SWITCHED = True
            break
        var.put(u'sourceRoot', var.get(u"this").get(u'sourceRoot'))
        @Js
        def PyJs_anonymous_4072_(mapping, this, arguments, var=var):
            var = Scope({u'this':this, u'mapping':mapping, u'arguments':arguments}, var)
            var.registers([u'source', u'mapping'])
            var.put(u'source', (var.get(u"null") if PyJsStrictEq(var.get(u'mapping').get(u'source'),var.get(u"null")) else var.get(u"this").get(u'_sources').callprop(u'at', var.get(u'mapping').get(u'source'))))
            if ((var.get(u'source')!=var.get(u"null")) and (var.get(u'sourceRoot')!=var.get(u"null"))):
                var.put(u'source', var.get(u'util').callprop(u'join', var.get(u'sourceRoot'), var.get(u'source')))
            PyJs_Object_4073_ = Js({u'source':var.get(u'source'),u'generatedLine':var.get(u'mapping').get(u'generatedLine'),u'generatedColumn':var.get(u'mapping').get(u'generatedColumn'),u'originalLine':var.get(u'mapping').get(u'originalLine'),u'originalColumn':var.get(u'mapping').get(u'originalColumn'),u'name':(var.get(u"null") if PyJsStrictEq(var.get(u'mapping').get(u'name'),var.get(u"null")) else var.get(u"this").get(u'_names').callprop(u'at', var.get(u'mapping').get(u'name')))})
            return PyJs_Object_4073_
        PyJs_anonymous_4072_._set_name(u'anonymous')
        var.get(u'mappings').callprop(u'map', PyJs_anonymous_4072_, var.get(u"this")).callprop(u'forEach', var.get(u'aCallback'), var.get(u'context'))
    PyJs_SourceMapConsumer_eachMapping_4071_._set_name(u'SourceMapConsumer_eachMapping')
    var.get(u'SourceMapConsumer').get(u'prototype').put(u'eachMapping', PyJs_SourceMapConsumer_eachMapping_4071_)
    @Js
    def PyJs_SourceMapConsumer_allGeneratedPositionsFor_4074_(aArgs, this, arguments, var=var):
        var = Scope({u'this':this, u'SourceMapConsumer_allGeneratedPositionsFor':PyJs_SourceMapConsumer_allGeneratedPositionsFor_4074_, u'arguments':arguments, u'aArgs':aArgs}, var)
        var.registers([u'index', u'mappings', u'originalColumn', u'needle', u'mapping', u'originalLine', u'aArgs', u'line'])
        var.put(u'line', var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'line')))
        PyJs_Object_4075_ = Js({u'source':var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'source')),u'originalLine':var.get(u'line'),u'originalColumn':var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'column'), Js(0.0))})
        var.put(u'needle', PyJs_Object_4075_)
        if (var.get(u"this").get(u'sourceRoot')!=var.get(u"null")):
            var.get(u'needle').put(u'source', var.get(u'util').callprop(u'relative', var.get(u"this").get(u'sourceRoot'), var.get(u'needle').get(u'source')))
        if var.get(u"this").get(u'_sources').callprop(u'has', var.get(u'needle').get(u'source')).neg():
            return Js([])
        var.get(u'needle').put(u'source', var.get(u"this").get(u'_sources').callprop(u'indexOf', var.get(u'needle').get(u'source')))
        var.put(u'mappings', Js([]))
        var.put(u'index', var.get(u"this").callprop(u'_findMapping', var.get(u'needle'), var.get(u"this").get(u'_originalMappings'), Js(u'originalLine'), Js(u'originalColumn'), var.get(u'util').get(u'compareByOriginalPositions'), var.get(u'binarySearch').get(u'LEAST_UPPER_BOUND')))
        if (var.get(u'index')>=Js(0.0)):
            var.put(u'mapping', var.get(u"this").get(u'_originalMappings').get(var.get(u'index')))
            if PyJsStrictEq(var.get(u'aArgs').get(u'column'),var.get(u'undefined')):
                var.put(u'originalLine', var.get(u'mapping').get(u'originalLine'))
                while (var.get(u'mapping') and PyJsStrictEq(var.get(u'mapping').get(u'originalLine'),var.get(u'originalLine'))):
                    PyJs_Object_4076_ = Js({u'line':var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'generatedLine'), var.get(u"null")),u'column':var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'generatedColumn'), var.get(u"null")),u'lastColumn':var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'lastGeneratedColumn'), var.get(u"null"))})
                    var.get(u'mappings').callprop(u'push', PyJs_Object_4076_)
                    var.put(u'mapping', var.get(u"this").get(u'_originalMappings').get(var.put(u'index',Js(var.get(u'index').to_number())+Js(1))))
            else:
                var.put(u'originalColumn', var.get(u'mapping').get(u'originalColumn'))
                while ((var.get(u'mapping') and PyJsStrictEq(var.get(u'mapping').get(u'originalLine'),var.get(u'line'))) and (var.get(u'mapping').get(u'originalColumn')==var.get(u'originalColumn'))):
                    PyJs_Object_4077_ = Js({u'line':var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'generatedLine'), var.get(u"null")),u'column':var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'generatedColumn'), var.get(u"null")),u'lastColumn':var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'lastGeneratedColumn'), var.get(u"null"))})
                    var.get(u'mappings').callprop(u'push', PyJs_Object_4077_)
                    var.put(u'mapping', var.get(u"this").get(u'_originalMappings').get(var.put(u'index',Js(var.get(u'index').to_number())+Js(1))))
        return var.get(u'mappings')
    PyJs_SourceMapConsumer_allGeneratedPositionsFor_4074_._set_name(u'SourceMapConsumer_allGeneratedPositionsFor')
    var.get(u'SourceMapConsumer').get(u'prototype').put(u'allGeneratedPositionsFor', PyJs_SourceMapConsumer_allGeneratedPositionsFor_4074_)
    var.get(u'exports').put(u'SourceMapConsumer', var.get(u'SourceMapConsumer'))
    pass
    var.get(u'BasicSourceMapConsumer').put(u'prototype', var.get(u'Object').callprop(u'create', var.get(u'SourceMapConsumer').get(u'prototype')))
    var.get(u'BasicSourceMapConsumer').get(u'prototype').put(u'consumer', var.get(u'SourceMapConsumer'))
    @Js
    def PyJs_SourceMapConsumer_fromSourceMap_4079_(aSourceMap, this, arguments, var=var):
        var = Scope({u'this':this, u'aSourceMap':aSourceMap, u'SourceMapConsumer_fromSourceMap':PyJs_SourceMapConsumer_fromSourceMap_4079_, u'arguments':arguments}, var)
        var.registers([u'i', u'aSourceMap', u'srcMapping', u'destGeneratedMappings', u'destMapping', u'destOriginalMappings', u'sources', u'length', u'generatedMappings', u'names', u'smc'])
        var.put(u'smc', var.get(u'Object').callprop(u'create', var.get(u'BasicSourceMapConsumer').get(u'prototype')))
        var.put(u'names', var.get(u'smc').put(u'_names', var.get(u'ArraySet').callprop(u'fromArray', var.get(u'aSourceMap').get(u'_names').callprop(u'toArray'), var.get(u'true'))))
        var.put(u'sources', var.get(u'smc').put(u'_sources', var.get(u'ArraySet').callprop(u'fromArray', var.get(u'aSourceMap').get(u'_sources').callprop(u'toArray'), var.get(u'true'))))
        var.get(u'smc').put(u'sourceRoot', var.get(u'aSourceMap').get(u'_sourceRoot'))
        var.get(u'smc').put(u'sourcesContent', var.get(u'aSourceMap').callprop(u'_generateSourcesContent', var.get(u'smc').get(u'_sources').callprop(u'toArray'), var.get(u'smc').get(u'sourceRoot')))
        var.get(u'smc').put(u'file', var.get(u'aSourceMap').get(u'_file'))
        var.put(u'generatedMappings', var.get(u'aSourceMap').get(u'_mappings').callprop(u'toArray').callprop(u'slice'))
        var.put(u'destGeneratedMappings', var.get(u'smc').put(u'__generatedMappings', Js([])))
        var.put(u'destOriginalMappings', var.get(u'smc').put(u'__originalMappings', Js([])))
        #for JS loop
        var.put(u'i', Js(0.0))
        var.put(u'length', var.get(u'generatedMappings').get(u'length'))
        while (var.get(u'i')<var.get(u'length')):
            try:
                var.put(u'srcMapping', var.get(u'generatedMappings').get(var.get(u'i')))
                var.put(u'destMapping', var.get(u'Mapping').create())
                var.get(u'destMapping').put(u'generatedLine', var.get(u'srcMapping').get(u'generatedLine'))
                var.get(u'destMapping').put(u'generatedColumn', var.get(u'srcMapping').get(u'generatedColumn'))
                if var.get(u'srcMapping').get(u'source'):
                    var.get(u'destMapping').put(u'source', var.get(u'sources').callprop(u'indexOf', var.get(u'srcMapping').get(u'source')))
                    var.get(u'destMapping').put(u'originalLine', var.get(u'srcMapping').get(u'originalLine'))
                    var.get(u'destMapping').put(u'originalColumn', var.get(u'srcMapping').get(u'originalColumn'))
                    if var.get(u'srcMapping').get(u'name'):
                        var.get(u'destMapping').put(u'name', var.get(u'names').callprop(u'indexOf', var.get(u'srcMapping').get(u'name')))
                    var.get(u'destOriginalMappings').callprop(u'push', var.get(u'destMapping'))
                var.get(u'destGeneratedMappings').callprop(u'push', var.get(u'destMapping'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        var.get(u'quickSort')(var.get(u'smc').get(u'__originalMappings'), var.get(u'util').get(u'compareByOriginalPositions'))
        return var.get(u'smc')
    PyJs_SourceMapConsumer_fromSourceMap_4079_._set_name(u'SourceMapConsumer_fromSourceMap')
    var.get(u'BasicSourceMapConsumer').put(u'fromSourceMap', PyJs_SourceMapConsumer_fromSourceMap_4079_)
    var.get(u'BasicSourceMapConsumer').get(u'prototype').put(u'_version', Js(3.0))
    @Js
    def PyJs_anonymous_4081_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        @Js
        def PyJs_anonymous_4082_(s, this, arguments, var=var):
            var = Scope({u'this':this, u's':s, u'arguments':arguments}, var)
            var.registers([u's'])
            return (var.get(u'util').callprop(u'join', var.get(u"this").get(u'sourceRoot'), var.get(u's')) if (var.get(u"this").get(u'sourceRoot')!=var.get(u"null")) else var.get(u's'))
        PyJs_anonymous_4082_._set_name(u'anonymous')
        return var.get(u"this").get(u'_sources').callprop(u'toArray').callprop(u'map', PyJs_anonymous_4082_, var.get(u"this"))
    PyJs_anonymous_4081_._set_name(u'anonymous')
    PyJs_Object_4080_ = Js({u'get':PyJs_anonymous_4081_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'BasicSourceMapConsumer').get(u'prototype'), Js(u'sources'), PyJs_Object_4080_)
    pass
    @Js
    def PyJs_SourceMapConsumer_parseMappings_4083_(aStr, aSourceRoot, this, arguments, var=var):
        var = Scope({u'this':this, u'SourceMapConsumer_parseMappings':PyJs_SourceMapConsumer_parseMappings_4083_, u'aStr':aStr, u'aSourceRoot':aSourceRoot, u'arguments':arguments}, var)
        var.registers([u'originalMappings', u'index', u'previousOriginalLine', u'previousOriginalColumn', u'previousSource', u'previousGeneratedColumn', u'end', u'mapping', u'previousName', u'aSourceRoot', u'length', u'generatedMappings', u'generatedLine', u'temp', u'str', u'cachedSegments', u'aStr', u'value', u'segment'])
        var.put(u'generatedLine', Js(1.0))
        var.put(u'previousGeneratedColumn', Js(0.0))
        var.put(u'previousOriginalLine', Js(0.0))
        var.put(u'previousOriginalColumn', Js(0.0))
        var.put(u'previousSource', Js(0.0))
        var.put(u'previousName', Js(0.0))
        var.put(u'length', var.get(u'aStr').get(u'length'))
        var.put(u'index', Js(0.0))
        PyJs_Object_4084_ = Js({})
        var.put(u'cachedSegments', PyJs_Object_4084_)
        PyJs_Object_4085_ = Js({})
        var.put(u'temp', PyJs_Object_4085_)
        var.put(u'originalMappings', Js([]))
        var.put(u'generatedMappings', Js([]))
        pass
        while (var.get(u'index')<var.get(u'length')):
            if PyJsStrictEq(var.get(u'aStr').callprop(u'charAt', var.get(u'index')),Js(u';')):
                (var.put(u'generatedLine',Js(var.get(u'generatedLine').to_number())+Js(1))-Js(1))
                (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1))
                var.put(u'previousGeneratedColumn', Js(0.0))
            else:
                if PyJsStrictEq(var.get(u'aStr').callprop(u'charAt', var.get(u'index')),Js(u',')):
                    (var.put(u'index',Js(var.get(u'index').to_number())+Js(1))-Js(1))
                else:
                    var.put(u'mapping', var.get(u'Mapping').create())
                    var.get(u'mapping').put(u'generatedLine', var.get(u'generatedLine'))
                    #for JS loop
                    var.put(u'end', var.get(u'index'))
                    while (var.get(u'end')<var.get(u'length')):
                        try:
                            if var.get(u"this").callprop(u'_charIsMappingSeparator', var.get(u'aStr'), var.get(u'end')):
                                break
                        finally:
                                (var.put(u'end',Js(var.get(u'end').to_number())+Js(1))-Js(1))
                    var.put(u'str', var.get(u'aStr').callprop(u'slice', var.get(u'index'), var.get(u'end')))
                    var.put(u'segment', var.get(u'cachedSegments').get(var.get(u'str')))
                    if var.get(u'segment'):
                        var.put(u'index', var.get(u'str').get(u'length'), u'+')
                    else:
                        var.put(u'segment', Js([]))
                        while (var.get(u'index')<var.get(u'end')):
                            var.get(u'base64VLQ').callprop(u'decode', var.get(u'aStr'), var.get(u'index'), var.get(u'temp'))
                            var.put(u'value', var.get(u'temp').get(u'value'))
                            var.put(u'index', var.get(u'temp').get(u'rest'))
                            var.get(u'segment').callprop(u'push', var.get(u'value'))
                        if PyJsStrictEq(var.get(u'segment').get(u'length'),Js(2.0)):
                            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Found a source, but no line and column')))
                            raise PyJsTempException
                        if PyJsStrictEq(var.get(u'segment').get(u'length'),Js(3.0)):
                            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Found a source and line, but no column')))
                            raise PyJsTempException
                        var.get(u'cachedSegments').put(var.get(u'str'), var.get(u'segment'))
                    var.get(u'mapping').put(u'generatedColumn', (var.get(u'previousGeneratedColumn')+var.get(u'segment').get(u'0')))
                    var.put(u'previousGeneratedColumn', var.get(u'mapping').get(u'generatedColumn'))
                    if (var.get(u'segment').get(u'length')>Js(1.0)):
                        var.get(u'mapping').put(u'source', (var.get(u'previousSource')+var.get(u'segment').get(u'1')))
                        var.put(u'previousSource', var.get(u'segment').get(u'1'), u'+')
                        var.get(u'mapping').put(u'originalLine', (var.get(u'previousOriginalLine')+var.get(u'segment').get(u'2')))
                        var.put(u'previousOriginalLine', var.get(u'mapping').get(u'originalLine'))
                        var.get(u'mapping').put(u'originalLine', Js(1.0), u'+')
                        var.get(u'mapping').put(u'originalColumn', (var.get(u'previousOriginalColumn')+var.get(u'segment').get(u'3')))
                        var.put(u'previousOriginalColumn', var.get(u'mapping').get(u'originalColumn'))
                        if (var.get(u'segment').get(u'length')>Js(4.0)):
                            var.get(u'mapping').put(u'name', (var.get(u'previousName')+var.get(u'segment').get(u'4')))
                            var.put(u'previousName', var.get(u'segment').get(u'4'), u'+')
                    var.get(u'generatedMappings').callprop(u'push', var.get(u'mapping'))
                    if PyJsStrictEq(var.get(u'mapping').get(u'originalLine').typeof(),Js(u'number')):
                        var.get(u'originalMappings').callprop(u'push', var.get(u'mapping'))
        var.get(u'quickSort')(var.get(u'generatedMappings'), var.get(u'util').get(u'compareByGeneratedPositionsDeflated'))
        var.get(u"this").put(u'__generatedMappings', var.get(u'generatedMappings'))
        var.get(u'quickSort')(var.get(u'originalMappings'), var.get(u'util').get(u'compareByOriginalPositions'))
        var.get(u"this").put(u'__originalMappings', var.get(u'originalMappings'))
    PyJs_SourceMapConsumer_parseMappings_4083_._set_name(u'SourceMapConsumer_parseMappings')
    var.get(u'BasicSourceMapConsumer').get(u'prototype').put(u'_parseMappings', PyJs_SourceMapConsumer_parseMappings_4083_)
    @Js
    def PyJs_SourceMapConsumer_findMapping_4086_(aNeedle, aMappings, aLineName, aColumnName, aComparator, aBias, this, arguments, var=var):
        var = Scope({u'aNeedle':aNeedle, u'SourceMapConsumer_findMapping':PyJs_SourceMapConsumer_findMapping_4086_, u'this':this, u'aBias':aBias, u'aColumnName':aColumnName, u'aComparator':aComparator, u'arguments':arguments, u'aMappings':aMappings, u'aLineName':aLineName}, var)
        var.registers([u'aNeedle', u'aBias', u'aColumnName', u'aComparator', u'aMappings', u'aLineName'])
        if (var.get(u'aNeedle').get(var.get(u'aLineName'))<=Js(0.0)):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create((Js(u'Line must be greater than or equal to 1, got ')+var.get(u'aNeedle').get(var.get(u'aLineName')))))
            raise PyJsTempException
        if (var.get(u'aNeedle').get(var.get(u'aColumnName'))<Js(0.0)):
            PyJsTempException = JsToPyException(var.get(u'TypeError').create((Js(u'Column must be greater than or equal to 0, got ')+var.get(u'aNeedle').get(var.get(u'aColumnName')))))
            raise PyJsTempException
        return var.get(u'binarySearch').callprop(u'search', var.get(u'aNeedle'), var.get(u'aMappings'), var.get(u'aComparator'), var.get(u'aBias'))
    PyJs_SourceMapConsumer_findMapping_4086_._set_name(u'SourceMapConsumer_findMapping')
    var.get(u'BasicSourceMapConsumer').get(u'prototype').put(u'_findMapping', PyJs_SourceMapConsumer_findMapping_4086_)
    @Js
    def PyJs_SourceMapConsumer_computeColumnSpans_4087_(this, arguments, var=var):
        var = Scope({u'this':this, u'SourceMapConsumer_computeColumnSpans':PyJs_SourceMapConsumer_computeColumnSpans_4087_, u'arguments':arguments}, var)
        var.registers([u'nextMapping', u'index', u'mapping'])
        #for JS loop
        var.put(u'index', Js(0.0))
        while (var.get(u'index')<var.get(u"this").get(u'_generatedMappings').get(u'length')):
            try:
                var.put(u'mapping', var.get(u"this").get(u'_generatedMappings').get(var.get(u'index')))
                if ((var.get(u'index')+Js(1.0))<var.get(u"this").get(u'_generatedMappings').get(u'length')):
                    var.put(u'nextMapping', var.get(u"this").get(u'_generatedMappings').get((var.get(u'index')+Js(1.0))))
                    if PyJsStrictEq(var.get(u'mapping').get(u'generatedLine'),var.get(u'nextMapping').get(u'generatedLine')):
                        var.get(u'mapping').put(u'lastGeneratedColumn', (var.get(u'nextMapping').get(u'generatedColumn')-Js(1.0)))
                        continue
                var.get(u'mapping').put(u'lastGeneratedColumn', var.get(u'Infinity'))
            finally:
                    var.put(u'index',Js(var.get(u'index').to_number())+Js(1))
    PyJs_SourceMapConsumer_computeColumnSpans_4087_._set_name(u'SourceMapConsumer_computeColumnSpans')
    var.get(u'BasicSourceMapConsumer').get(u'prototype').put(u'computeColumnSpans', PyJs_SourceMapConsumer_computeColumnSpans_4087_)
    @Js
    def PyJs_SourceMapConsumer_originalPositionFor_4088_(aArgs, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'SourceMapConsumer_originalPositionFor':PyJs_SourceMapConsumer_originalPositionFor_4088_, u'aArgs':aArgs}, var)
        var.registers([u'index', u'name', u'aArgs', u'needle', u'mapping', u'source'])
        PyJs_Object_4089_ = Js({u'generatedLine':var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'line')),u'generatedColumn':var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'column'))})
        var.put(u'needle', PyJs_Object_4089_)
        var.put(u'index', var.get(u"this").callprop(u'_findMapping', var.get(u'needle'), var.get(u"this").get(u'_generatedMappings'), Js(u'generatedLine'), Js(u'generatedColumn'), var.get(u'util').get(u'compareByGeneratedPositionsDeflated'), var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'bias'), var.get(u'SourceMapConsumer').get(u'GREATEST_LOWER_BOUND'))))
        if (var.get(u'index')>=Js(0.0)):
            var.put(u'mapping', var.get(u"this").get(u'_generatedMappings').get(var.get(u'index')))
            if PyJsStrictEq(var.get(u'mapping').get(u'generatedLine'),var.get(u'needle').get(u'generatedLine')):
                var.put(u'source', var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'source'), var.get(u"null")))
                if PyJsStrictNeq(var.get(u'source'),var.get(u"null")):
                    var.put(u'source', var.get(u"this").get(u'_sources').callprop(u'at', var.get(u'source')))
                    if (var.get(u"this").get(u'sourceRoot')!=var.get(u"null")):
                        var.put(u'source', var.get(u'util').callprop(u'join', var.get(u"this").get(u'sourceRoot'), var.get(u'source')))
                var.put(u'name', var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'name'), var.get(u"null")))
                if PyJsStrictNeq(var.get(u'name'),var.get(u"null")):
                    var.put(u'name', var.get(u"this").get(u'_names').callprop(u'at', var.get(u'name')))
                PyJs_Object_4090_ = Js({u'source':var.get(u'source'),u'line':var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'originalLine'), var.get(u"null")),u'column':var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'originalColumn'), var.get(u"null")),u'name':var.get(u'name')})
                return PyJs_Object_4090_
        PyJs_Object_4091_ = Js({u'source':var.get(u"null"),u'line':var.get(u"null"),u'column':var.get(u"null"),u'name':var.get(u"null")})
        return PyJs_Object_4091_
    PyJs_SourceMapConsumer_originalPositionFor_4088_._set_name(u'SourceMapConsumer_originalPositionFor')
    var.get(u'BasicSourceMapConsumer').get(u'prototype').put(u'originalPositionFor', PyJs_SourceMapConsumer_originalPositionFor_4088_)
    @Js
    def PyJs_BasicSourceMapConsumer_hasContentsOfAllSources_4092_(this, arguments, var=var):
        var = Scope({u'this':this, u'BasicSourceMapConsumer_hasContentsOfAllSources':PyJs_BasicSourceMapConsumer_hasContentsOfAllSources_4092_, u'arguments':arguments}, var)
        var.registers([])
        if var.get(u"this").get(u'sourcesContent').neg():
            return Js(False)
        @Js
        def PyJs_anonymous_4093_(sc, this, arguments, var=var):
            var = Scope({u'sc':sc, u'this':this, u'arguments':arguments}, var)
            var.registers([u'sc'])
            return (var.get(u'sc')==var.get(u"null"))
        PyJs_anonymous_4093_._set_name(u'anonymous')
        return ((var.get(u"this").get(u'sourcesContent').get(u'length')>=var.get(u"this").get(u'_sources').callprop(u'size')) and var.get(u"this").get(u'sourcesContent').callprop(u'some', PyJs_anonymous_4093_).neg())
    PyJs_BasicSourceMapConsumer_hasContentsOfAllSources_4092_._set_name(u'BasicSourceMapConsumer_hasContentsOfAllSources')
    var.get(u'BasicSourceMapConsumer').get(u'prototype').put(u'hasContentsOfAllSources', PyJs_BasicSourceMapConsumer_hasContentsOfAllSources_4092_)
    @Js
    def PyJs_SourceMapConsumer_sourceContentFor_4094_(aSource, nullOnMissing, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'SourceMapConsumer_sourceContentFor':PyJs_SourceMapConsumer_sourceContentFor_4094_, u'aSource':aSource, u'nullOnMissing':nullOnMissing}, var)
        var.registers([u'url', u'fileUriAbsPath', u'aSource', u'nullOnMissing'])
        if var.get(u"this").get(u'sourcesContent').neg():
            return var.get(u"null")
        if (var.get(u"this").get(u'sourceRoot')!=var.get(u"null")):
            var.put(u'aSource', var.get(u'util').callprop(u'relative', var.get(u"this").get(u'sourceRoot'), var.get(u'aSource')))
        if var.get(u"this").get(u'_sources').callprop(u'has', var.get(u'aSource')):
            return var.get(u"this").get(u'sourcesContent').get(var.get(u"this").get(u'_sources').callprop(u'indexOf', var.get(u'aSource')))
        pass
        if ((var.get(u"this").get(u'sourceRoot')!=var.get(u"null")) and var.put(u'url', var.get(u'util').callprop(u'urlParse', var.get(u"this").get(u'sourceRoot')))):
            var.put(u'fileUriAbsPath', var.get(u'aSource').callprop(u'replace', JsRegExp(u'/^file:\\/\\//'), Js(u'')))
            if ((var.get(u'url').get(u'scheme')==Js(u'file')) and var.get(u"this").get(u'_sources').callprop(u'has', var.get(u'fileUriAbsPath'))):
                return var.get(u"this").get(u'sourcesContent').get(var.get(u"this").get(u'_sources').callprop(u'indexOf', var.get(u'fileUriAbsPath')))
            if ((var.get(u'url').get(u'path').neg() or (var.get(u'url').get(u'path')==Js(u'/'))) and var.get(u"this").get(u'_sources').callprop(u'has', (Js(u'/')+var.get(u'aSource')))):
                return var.get(u"this").get(u'sourcesContent').get(var.get(u"this").get(u'_sources').callprop(u'indexOf', (Js(u'/')+var.get(u'aSource'))))
        if var.get(u'nullOnMissing'):
            return var.get(u"null")
        else:
            PyJsTempException = JsToPyException(var.get(u'Error').create(((Js(u'"')+var.get(u'aSource'))+Js(u'" is not in the SourceMap.'))))
            raise PyJsTempException
    PyJs_SourceMapConsumer_sourceContentFor_4094_._set_name(u'SourceMapConsumer_sourceContentFor')
    var.get(u'BasicSourceMapConsumer').get(u'prototype').put(u'sourceContentFor', PyJs_SourceMapConsumer_sourceContentFor_4094_)
    @Js
    def PyJs_SourceMapConsumer_generatedPositionFor_4095_(aArgs, this, arguments, var=var):
        var = Scope({u'this':this, u'SourceMapConsumer_generatedPositionFor':PyJs_SourceMapConsumer_generatedPositionFor_4095_, u'arguments':arguments, u'aArgs':aArgs}, var)
        var.registers([u'aArgs', u'source', u'needle', u'mapping', u'index'])
        var.put(u'source', var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'source')))
        if (var.get(u"this").get(u'sourceRoot')!=var.get(u"null")):
            var.put(u'source', var.get(u'util').callprop(u'relative', var.get(u"this").get(u'sourceRoot'), var.get(u'source')))
        if var.get(u"this").get(u'_sources').callprop(u'has', var.get(u'source')).neg():
            PyJs_Object_4096_ = Js({u'line':var.get(u"null"),u'column':var.get(u"null"),u'lastColumn':var.get(u"null")})
            return PyJs_Object_4096_
        var.put(u'source', var.get(u"this").get(u'_sources').callprop(u'indexOf', var.get(u'source')))
        PyJs_Object_4097_ = Js({u'source':var.get(u'source'),u'originalLine':var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'line')),u'originalColumn':var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'column'))})
        var.put(u'needle', PyJs_Object_4097_)
        var.put(u'index', var.get(u"this").callprop(u'_findMapping', var.get(u'needle'), var.get(u"this").get(u'_originalMappings'), Js(u'originalLine'), Js(u'originalColumn'), var.get(u'util').get(u'compareByOriginalPositions'), var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'bias'), var.get(u'SourceMapConsumer').get(u'GREATEST_LOWER_BOUND'))))
        if (var.get(u'index')>=Js(0.0)):
            var.put(u'mapping', var.get(u"this").get(u'_originalMappings').get(var.get(u'index')))
            if PyJsStrictEq(var.get(u'mapping').get(u'source'),var.get(u'needle').get(u'source')):
                PyJs_Object_4098_ = Js({u'line':var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'generatedLine'), var.get(u"null")),u'column':var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'generatedColumn'), var.get(u"null")),u'lastColumn':var.get(u'util').callprop(u'getArg', var.get(u'mapping'), Js(u'lastGeneratedColumn'), var.get(u"null"))})
                return PyJs_Object_4098_
        PyJs_Object_4099_ = Js({u'line':var.get(u"null"),u'column':var.get(u"null"),u'lastColumn':var.get(u"null")})
        return PyJs_Object_4099_
    PyJs_SourceMapConsumer_generatedPositionFor_4095_._set_name(u'SourceMapConsumer_generatedPositionFor')
    var.get(u'BasicSourceMapConsumer').get(u'prototype').put(u'generatedPositionFor', PyJs_SourceMapConsumer_generatedPositionFor_4095_)
    var.get(u'exports').put(u'BasicSourceMapConsumer', var.get(u'BasicSourceMapConsumer'))
    pass
    var.get(u'IndexedSourceMapConsumer').put(u'prototype', var.get(u'Object').callprop(u'create', var.get(u'SourceMapConsumer').get(u'prototype')))
    var.get(u'IndexedSourceMapConsumer').get(u'prototype').put(u'constructor', var.get(u'SourceMapConsumer'))
    var.get(u'IndexedSourceMapConsumer').get(u'prototype').put(u'_version', Js(3.0))
    @Js
    def PyJs_anonymous_4105_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'i', u'sources', u'j'])
        var.put(u'sources', Js([]))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u"this").get(u'_sections').get(u'length')):
            try:
                #for JS loop
                var.put(u'j', Js(0.0))
                while (var.get(u'j')<var.get(u"this").get(u'_sections').get(var.get(u'i')).get(u'consumer').get(u'sources').get(u'length')):
                    try:
                        var.get(u'sources').callprop(u'push', var.get(u"this").get(u'_sections').get(var.get(u'i')).get(u'consumer').get(u'sources').get(var.get(u'j')))
                    finally:
                            (var.put(u'j',Js(var.get(u'j').to_number())+Js(1))-Js(1))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'sources')
    PyJs_anonymous_4105_._set_name(u'anonymous')
    PyJs_Object_4104_ = Js({u'get':PyJs_anonymous_4105_})
    var.get(u'Object').callprop(u'defineProperty', var.get(u'IndexedSourceMapConsumer').get(u'prototype'), Js(u'sources'), PyJs_Object_4104_)
    @Js
    def PyJs_IndexedSourceMapConsumer_originalPositionFor_4106_(aArgs, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'IndexedSourceMapConsumer_originalPositionFor':PyJs_IndexedSourceMapConsumer_originalPositionFor_4106_, u'aArgs':aArgs}, var)
        var.registers([u'section', u'needle', u'aArgs', u'sectionIndex'])
        PyJs_Object_4107_ = Js({u'generatedLine':var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'line')),u'generatedColumn':var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'column'))})
        var.put(u'needle', PyJs_Object_4107_)
        @Js
        def PyJs_anonymous_4108_(needle, section, this, arguments, var=var):
            var = Scope({u'this':this, u'section':section, u'needle':needle, u'arguments':arguments}, var)
            var.registers([u'section', u'needle', u'cmp'])
            var.put(u'cmp', (var.get(u'needle').get(u'generatedLine')-var.get(u'section').get(u'generatedOffset').get(u'generatedLine')))
            if var.get(u'cmp'):
                return var.get(u'cmp')
            return (var.get(u'needle').get(u'generatedColumn')-var.get(u'section').get(u'generatedOffset').get(u'generatedColumn'))
        PyJs_anonymous_4108_._set_name(u'anonymous')
        var.put(u'sectionIndex', var.get(u'binarySearch').callprop(u'search', var.get(u'needle'), var.get(u"this").get(u'_sections'), PyJs_anonymous_4108_))
        var.put(u'section', var.get(u"this").get(u'_sections').get(var.get(u'sectionIndex')))
        if var.get(u'section').neg():
            PyJs_Object_4109_ = Js({u'source':var.get(u"null"),u'line':var.get(u"null"),u'column':var.get(u"null"),u'name':var.get(u"null")})
            return PyJs_Object_4109_
        PyJs_Object_4110_ = Js({u'line':(var.get(u'needle').get(u'generatedLine')-(var.get(u'section').get(u'generatedOffset').get(u'generatedLine')-Js(1.0))),u'column':(var.get(u'needle').get(u'generatedColumn')-((var.get(u'section').get(u'generatedOffset').get(u'generatedColumn')-Js(1.0)) if PyJsStrictEq(var.get(u'section').get(u'generatedOffset').get(u'generatedLine'),var.get(u'needle').get(u'generatedLine')) else Js(0.0))),u'bias':var.get(u'aArgs').get(u'bias')})
        return var.get(u'section').get(u'consumer').callprop(u'originalPositionFor', PyJs_Object_4110_)
    PyJs_IndexedSourceMapConsumer_originalPositionFor_4106_._set_name(u'IndexedSourceMapConsumer_originalPositionFor')
    var.get(u'IndexedSourceMapConsumer').get(u'prototype').put(u'originalPositionFor', PyJs_IndexedSourceMapConsumer_originalPositionFor_4106_)
    @Js
    def PyJs_IndexedSourceMapConsumer_hasContentsOfAllSources_4111_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'IndexedSourceMapConsumer_hasContentsOfAllSources':PyJs_IndexedSourceMapConsumer_hasContentsOfAllSources_4111_}, var)
        var.registers([])
        @Js
        def PyJs_anonymous_4112_(s, this, arguments, var=var):
            var = Scope({u'this':this, u's':s, u'arguments':arguments}, var)
            var.registers([u's'])
            return var.get(u's').get(u'consumer').callprop(u'hasContentsOfAllSources')
        PyJs_anonymous_4112_._set_name(u'anonymous')
        return var.get(u"this").get(u'_sections').callprop(u'every', PyJs_anonymous_4112_)
    PyJs_IndexedSourceMapConsumer_hasContentsOfAllSources_4111_._set_name(u'IndexedSourceMapConsumer_hasContentsOfAllSources')
    var.get(u'IndexedSourceMapConsumer').get(u'prototype').put(u'hasContentsOfAllSources', PyJs_IndexedSourceMapConsumer_hasContentsOfAllSources_4111_)
    @Js
    def PyJs_IndexedSourceMapConsumer_sourceContentFor_4113_(aSource, nullOnMissing, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'IndexedSourceMapConsumer_sourceContentFor':PyJs_IndexedSourceMapConsumer_sourceContentFor_4113_, u'aSource':aSource, u'nullOnMissing':nullOnMissing}, var)
        var.registers([u'i', u'content', u'section', u'aSource', u'nullOnMissing'])
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u"this").get(u'_sections').get(u'length')):
            try:
                var.put(u'section', var.get(u"this").get(u'_sections').get(var.get(u'i')))
                var.put(u'content', var.get(u'section').get(u'consumer').callprop(u'sourceContentFor', var.get(u'aSource'), var.get(u'true')))
                if var.get(u'content'):
                    return var.get(u'content')
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        if var.get(u'nullOnMissing'):
            return var.get(u"null")
        else:
            PyJsTempException = JsToPyException(var.get(u'Error').create(((Js(u'"')+var.get(u'aSource'))+Js(u'" is not in the SourceMap.'))))
            raise PyJsTempException
    PyJs_IndexedSourceMapConsumer_sourceContentFor_4113_._set_name(u'IndexedSourceMapConsumer_sourceContentFor')
    var.get(u'IndexedSourceMapConsumer').get(u'prototype').put(u'sourceContentFor', PyJs_IndexedSourceMapConsumer_sourceContentFor_4113_)
    @Js
    def PyJs_IndexedSourceMapConsumer_generatedPositionFor_4114_(aArgs, this, arguments, var=var):
        var = Scope({u'this':this, u'IndexedSourceMapConsumer_generatedPositionFor':PyJs_IndexedSourceMapConsumer_generatedPositionFor_4114_, u'arguments':arguments, u'aArgs':aArgs}, var)
        var.registers([u'i', u'section', u'generatedPosition', u'ret', u'aArgs'])
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u"this").get(u'_sections').get(u'length')):
            try:
                var.put(u'section', var.get(u"this").get(u'_sections').get(var.get(u'i')))
                if PyJsStrictEq(var.get(u'section').get(u'consumer').get(u'sources').callprop(u'indexOf', var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'source'))),(-Js(1.0))):
                    continue
                var.put(u'generatedPosition', var.get(u'section').get(u'consumer').callprop(u'generatedPositionFor', var.get(u'aArgs')))
                if var.get(u'generatedPosition'):
                    PyJs_Object_4115_ = Js({u'line':(var.get(u'generatedPosition').get(u'line')+(var.get(u'section').get(u'generatedOffset').get(u'generatedLine')-Js(1.0))),u'column':(var.get(u'generatedPosition').get(u'column')+((var.get(u'section').get(u'generatedOffset').get(u'generatedColumn')-Js(1.0)) if PyJsStrictEq(var.get(u'section').get(u'generatedOffset').get(u'generatedLine'),var.get(u'generatedPosition').get(u'line')) else Js(0.0)))})
                    var.put(u'ret', PyJs_Object_4115_)
                    return var.get(u'ret')
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        PyJs_Object_4116_ = Js({u'line':var.get(u"null"),u'column':var.get(u"null")})
        return PyJs_Object_4116_
    PyJs_IndexedSourceMapConsumer_generatedPositionFor_4114_._set_name(u'IndexedSourceMapConsumer_generatedPositionFor')
    var.get(u'IndexedSourceMapConsumer').get(u'prototype').put(u'generatedPositionFor', PyJs_IndexedSourceMapConsumer_generatedPositionFor_4114_)
    @Js
    def PyJs_IndexedSourceMapConsumer_parseMappings_4117_(aStr, aSourceRoot, this, arguments, var=var):
        var = Scope({u'this':this, u'aStr':aStr, u'aSourceRoot':aSourceRoot, u'IndexedSourceMapConsumer_parseMappings':PyJs_IndexedSourceMapConsumer_parseMappings_4117_, u'arguments':arguments}, var)
        var.registers([u'name', u'i', u'section', u'j', u'aSourceRoot', u'mapping', u'adjustedMapping', u'source', u'sectionMappings', u'aStr'])
        var.get(u"this").put(u'__generatedMappings', Js([]))
        var.get(u"this").put(u'__originalMappings', Js([]))
        #for JS loop
        var.put(u'i', Js(0.0))
        while (var.get(u'i')<var.get(u"this").get(u'_sections').get(u'length')):
            try:
                var.put(u'section', var.get(u"this").get(u'_sections').get(var.get(u'i')))
                var.put(u'sectionMappings', var.get(u'section').get(u'consumer').get(u'_generatedMappings'))
                #for JS loop
                var.put(u'j', Js(0.0))
                while (var.get(u'j')<var.get(u'sectionMappings').get(u'length')):
                    try:
                        var.put(u'mapping', var.get(u'sectionMappings').get(var.get(u'j')))
                        var.put(u'source', var.get(u'section').get(u'consumer').get(u'_sources').callprop(u'at', var.get(u'mapping').get(u'source')))
                        if PyJsStrictNeq(var.get(u'section').get(u'consumer').get(u'sourceRoot'),var.get(u"null")):
                            var.put(u'source', var.get(u'util').callprop(u'join', var.get(u'section').get(u'consumer').get(u'sourceRoot'), var.get(u'source')))
                        var.get(u"this").get(u'_sources').callprop(u'add', var.get(u'source'))
                        var.put(u'source', var.get(u"this").get(u'_sources').callprop(u'indexOf', var.get(u'source')))
                        var.put(u'name', var.get(u'section').get(u'consumer').get(u'_names').callprop(u'at', var.get(u'mapping').get(u'name')))
                        var.get(u"this").get(u'_names').callprop(u'add', var.get(u'name'))
                        var.put(u'name', var.get(u"this").get(u'_names').callprop(u'indexOf', var.get(u'name')))
                        PyJs_Object_4118_ = Js({u'source':var.get(u'source'),u'generatedLine':(var.get(u'mapping').get(u'generatedLine')+(var.get(u'section').get(u'generatedOffset').get(u'generatedLine')-Js(1.0))),u'generatedColumn':(var.get(u'mapping').get(u'generatedColumn')+((var.get(u'section').get(u'generatedOffset').get(u'generatedColumn')-Js(1.0)) if PyJsStrictEq(var.get(u'section').get(u'generatedOffset').get(u'generatedLine'),var.get(u'mapping').get(u'generatedLine')) else Js(0.0))),u'originalLine':var.get(u'mapping').get(u'originalLine'),u'originalColumn':var.get(u'mapping').get(u'originalColumn'),u'name':var.get(u'name')})
                        var.put(u'adjustedMapping', PyJs_Object_4118_)
                        var.get(u"this").get(u'__generatedMappings').callprop(u'push', var.get(u'adjustedMapping'))
                        if PyJsStrictEq(var.get(u'adjustedMapping').get(u'originalLine').typeof(),Js(u'number')):
                            var.get(u"this").get(u'__originalMappings').callprop(u'push', var.get(u'adjustedMapping'))
                    finally:
                            (var.put(u'j',Js(var.get(u'j').to_number())+Js(1))-Js(1))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        var.get(u'quickSort')(var.get(u"this").get(u'__generatedMappings'), var.get(u'util').get(u'compareByGeneratedPositionsDeflated'))
        var.get(u'quickSort')(var.get(u"this").get(u'__originalMappings'), var.get(u'util').get(u'compareByOriginalPositions'))
    PyJs_IndexedSourceMapConsumer_parseMappings_4117_._set_name(u'IndexedSourceMapConsumer_parseMappings')
    var.get(u'IndexedSourceMapConsumer').get(u'prototype').put(u'_parseMappings', PyJs_IndexedSourceMapConsumer_parseMappings_4117_)
    var.get(u'exports').put(u'IndexedSourceMapConsumer', var.get(u'IndexedSourceMapConsumer'))
PyJs_anonymous_4063_._set_name(u'anonymous')
PyJs_Object_4119_ = Js({u'./array-set':Js(509.0),u'./base64-vlq':Js(510.0),u'./binary-search':Js(512.0),u'./quick-sort':Js(514.0),u'./util':Js(518.0)})
@Js
def PyJs_anonymous_4120_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'SourceMapGenerator', u'exports', u'base64VLQ', u'require', u'module', u'util', u'ArraySet', u'MappingList'])
    @Js
    def PyJsHoisted_SourceMapGenerator_(aArgs, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'aArgs':aArgs}, var)
        var.registers([u'aArgs'])
        if var.get(u'aArgs').neg():
            PyJs_Object_4121_ = Js({})
            var.put(u'aArgs', PyJs_Object_4121_)
        var.get(u"this").put(u'_file', var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'file'), var.get(u"null")))
        var.get(u"this").put(u'_sourceRoot', var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'sourceRoot'), var.get(u"null")))
        var.get(u"this").put(u'_skipValidation', var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'skipValidation'), Js(False)))
        var.get(u"this").put(u'_sources', var.get(u'ArraySet').create())
        var.get(u"this").put(u'_names', var.get(u'ArraySet').create())
        var.get(u"this").put(u'_mappings', var.get(u'MappingList').create())
        var.get(u"this").put(u'_sourcesContents', var.get(u"null"))
    PyJsHoisted_SourceMapGenerator_.func_name = u'SourceMapGenerator'
    var.put(u'SourceMapGenerator', PyJsHoisted_SourceMapGenerator_)
    var.put(u'base64VLQ', var.get(u'require')(Js(u'./base64-vlq')))
    var.put(u'util', var.get(u'require')(Js(u'./util')))
    var.put(u'ArraySet', var.get(u'require')(Js(u'./array-set')).get(u'ArraySet'))
    var.put(u'MappingList', var.get(u'require')(Js(u'./mapping-list')).get(u'MappingList'))
    pass
    var.get(u'SourceMapGenerator').get(u'prototype').put(u'_version', Js(3.0))
    @Js
    def PyJs_SourceMapGenerator_fromSourceMap_4122_(aSourceMapConsumer, this, arguments, var=var):
        var = Scope({u'this':this, u'SourceMapGenerator_fromSourceMap':PyJs_SourceMapGenerator_fromSourceMap_4122_, u'arguments':arguments, u'aSourceMapConsumer':aSourceMapConsumer}, var)
        var.registers([u'aSourceMapConsumer', u'sourceRoot', u'generator'])
        var.put(u'sourceRoot', var.get(u'aSourceMapConsumer').get(u'sourceRoot'))
        PyJs_Object_4123_ = Js({u'file':var.get(u'aSourceMapConsumer').get(u'file'),u'sourceRoot':var.get(u'sourceRoot')})
        var.put(u'generator', var.get(u'SourceMapGenerator').create(PyJs_Object_4123_))
        @Js
        def PyJs_anonymous_4124_(mapping, this, arguments, var=var):
            var = Scope({u'this':this, u'mapping':mapping, u'arguments':arguments}, var)
            var.registers([u'newMapping', u'mapping'])
            PyJs_Object_4126_ = Js({u'line':var.get(u'mapping').get(u'generatedLine'),u'column':var.get(u'mapping').get(u'generatedColumn')})
            PyJs_Object_4125_ = Js({u'generated':PyJs_Object_4126_})
            var.put(u'newMapping', PyJs_Object_4125_)
            if (var.get(u'mapping').get(u'source')!=var.get(u"null")):
                var.get(u'newMapping').put(u'source', var.get(u'mapping').get(u'source'))
                if (var.get(u'sourceRoot')!=var.get(u"null")):
                    var.get(u'newMapping').put(u'source', var.get(u'util').callprop(u'relative', var.get(u'sourceRoot'), var.get(u'newMapping').get(u'source')))
                PyJs_Object_4127_ = Js({u'line':var.get(u'mapping').get(u'originalLine'),u'column':var.get(u'mapping').get(u'originalColumn')})
                var.get(u'newMapping').put(u'original', PyJs_Object_4127_)
                if (var.get(u'mapping').get(u'name')!=var.get(u"null")):
                    var.get(u'newMapping').put(u'name', var.get(u'mapping').get(u'name'))
            var.get(u'generator').callprop(u'addMapping', var.get(u'newMapping'))
        PyJs_anonymous_4124_._set_name(u'anonymous')
        var.get(u'aSourceMapConsumer').callprop(u'eachMapping', PyJs_anonymous_4124_)
        @Js
        def PyJs_anonymous_4128_(sourceFile, this, arguments, var=var):
            var = Scope({u'this':this, u'sourceFile':sourceFile, u'arguments':arguments}, var)
            var.registers([u'content', u'sourceFile'])
            var.put(u'content', var.get(u'aSourceMapConsumer').callprop(u'sourceContentFor', var.get(u'sourceFile')))
            if (var.get(u'content')!=var.get(u"null")):
                var.get(u'generator').callprop(u'setSourceContent', var.get(u'sourceFile'), var.get(u'content'))
        PyJs_anonymous_4128_._set_name(u'anonymous')
        var.get(u'aSourceMapConsumer').get(u'sources').callprop(u'forEach', PyJs_anonymous_4128_)
        return var.get(u'generator')
    PyJs_SourceMapGenerator_fromSourceMap_4122_._set_name(u'SourceMapGenerator_fromSourceMap')
    var.get(u'SourceMapGenerator').put(u'fromSourceMap', PyJs_SourceMapGenerator_fromSourceMap_4122_)
    @Js
    def PyJs_SourceMapGenerator_addMapping_4129_(aArgs, this, arguments, var=var):
        var = Scope({u'this':this, u'SourceMapGenerator_addMapping':PyJs_SourceMapGenerator_addMapping_4129_, u'arguments':arguments, u'aArgs':aArgs}, var)
        var.registers([u'source', u'generated', u'aArgs', u'original', u'name'])
        var.put(u'generated', var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'generated')))
        var.put(u'original', var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'original'), var.get(u"null")))
        var.put(u'source', var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'source'), var.get(u"null")))
        var.put(u'name', var.get(u'util').callprop(u'getArg', var.get(u'aArgs'), Js(u'name'), var.get(u"null")))
        if var.get(u"this").get(u'_skipValidation').neg():
            var.get(u"this").callprop(u'_validateMapping', var.get(u'generated'), var.get(u'original'), var.get(u'source'), var.get(u'name'))
        if (var.get(u'source')!=var.get(u"null")):
            var.put(u'source', var.get(u'String')(var.get(u'source')))
            if var.get(u"this").get(u'_sources').callprop(u'has', var.get(u'source')).neg():
                var.get(u"this").get(u'_sources').callprop(u'add', var.get(u'source'))
        if (var.get(u'name')!=var.get(u"null")):
            var.put(u'name', var.get(u'String')(var.get(u'name')))
            if var.get(u"this").get(u'_names').callprop(u'has', var.get(u'name')).neg():
                var.get(u"this").get(u'_names').callprop(u'add', var.get(u'name'))
        PyJs_Object_4130_ = Js({u'generatedLine':var.get(u'generated').get(u'line'),u'generatedColumn':var.get(u'generated').get(u'column'),u'originalLine':((var.get(u'original')!=var.get(u"null")) and var.get(u'original').get(u'line')),u'originalColumn':((var.get(u'original')!=var.get(u"null")) and var.get(u'original').get(u'column')),u'source':var.get(u'source'),u'name':var.get(u'name')})
        var.get(u"this").get(u'_mappings').callprop(u'add', PyJs_Object_4130_)
    PyJs_SourceMapGenerator_addMapping_4129_._set_name(u'SourceMapGenerator_addMapping')
    var.get(u'SourceMapGenerator').get(u'prototype').put(u'addMapping', PyJs_SourceMapGenerator_addMapping_4129_)
    @Js
    def PyJs_SourceMapGenerator_setSourceContent_4131_(aSourceFile, aSourceContent, this, arguments, var=var):
        var = Scope({u'this':this, u'SourceMapGenerator_setSourceContent':PyJs_SourceMapGenerator_setSourceContent_4131_, u'aSourceContent':aSourceContent, u'aSourceFile':aSourceFile, u'arguments':arguments}, var)
        var.registers([u'source', u'aSourceContent', u'aSourceFile'])
        var.put(u'source', var.get(u'aSourceFile'))
        if (var.get(u"this").get(u'_sourceRoot')!=var.get(u"null")):
            var.put(u'source', var.get(u'util').callprop(u'relative', var.get(u"this").get(u'_sourceRoot'), var.get(u'source')))
        if (var.get(u'aSourceContent')!=var.get(u"null")):
            if var.get(u"this").get(u'_sourcesContents').neg():
                var.get(u"this").put(u'_sourcesContents', var.get(u'Object').callprop(u'create', var.get(u"null")))
            var.get(u"this").get(u'_sourcesContents').put(var.get(u'util').callprop(u'toSetString', var.get(u'source')), var.get(u'aSourceContent'))
        else:
            if var.get(u"this").get(u'_sourcesContents'):
                var.get(u"this").get(u'_sourcesContents').delete(var.get(u'util').callprop(u'toSetString', var.get(u'source')))
                if PyJsStrictEq(var.get(u'Object').callprop(u'keys', var.get(u"this").get(u'_sourcesContents')).get(u'length'),Js(0.0)):
                    var.get(u"this").put(u'_sourcesContents', var.get(u"null"))
    PyJs_SourceMapGenerator_setSourceContent_4131_._set_name(u'SourceMapGenerator_setSourceContent')
    var.get(u'SourceMapGenerator').get(u'prototype').put(u'setSourceContent', PyJs_SourceMapGenerator_setSourceContent_4131_)
    @Js
    def PyJs_SourceMapGenerator_applySourceMap_4132_(aSourceMapConsumer, aSourceFile, aSourceMapPath, this, arguments, var=var):
        var = Scope({u'SourceMapGenerator_applySourceMap':PyJs_SourceMapGenerator_applySourceMap_4132_, u'aSourceMapConsumer':aSourceMapConsumer, u'this':this, u'aSourceMapPath':aSourceMapPath, u'arguments':arguments, u'aSourceFile':aSourceFile}, var)
        var.registers([u'aSourceMapConsumer', u'sourceFile', u'sourceRoot', u'aSourceMapPath', u'newNames', u'newSources', u'aSourceFile'])
        var.put(u'sourceFile', var.get(u'aSourceFile'))
        if (var.get(u'aSourceFile')==var.get(u"null")):
            if (var.get(u'aSourceMapConsumer').get(u'file')==var.get(u"null")):
                PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ')+Js(u'or the source map\'s "file" property. Both were omitted.'))))
                raise PyJsTempException
            var.put(u'sourceFile', var.get(u'aSourceMapConsumer').get(u'file'))
        var.put(u'sourceRoot', var.get(u"this").get(u'_sourceRoot'))
        if (var.get(u'sourceRoot')!=var.get(u"null")):
            var.put(u'sourceFile', var.get(u'util').callprop(u'relative', var.get(u'sourceRoot'), var.get(u'sourceFile')))
        var.put(u'newSources', var.get(u'ArraySet').create())
        var.put(u'newNames', var.get(u'ArraySet').create())
        @Js
        def PyJs_anonymous_4133_(mapping, this, arguments, var=var):
            var = Scope({u'this':this, u'mapping':mapping, u'arguments':arguments}, var)
            var.registers([u'source', u'mapping', u'original', u'name'])
            if (PyJsStrictEq(var.get(u'mapping').get(u'source'),var.get(u'sourceFile')) and (var.get(u'mapping').get(u'originalLine')!=var.get(u"null"))):
                PyJs_Object_4134_ = Js({u'line':var.get(u'mapping').get(u'originalLine'),u'column':var.get(u'mapping').get(u'originalColumn')})
                var.put(u'original', var.get(u'aSourceMapConsumer').callprop(u'originalPositionFor', PyJs_Object_4134_))
                if (var.get(u'original').get(u'source')!=var.get(u"null")):
                    var.get(u'mapping').put(u'source', var.get(u'original').get(u'source'))
                    if (var.get(u'aSourceMapPath')!=var.get(u"null")):
                        var.get(u'mapping').put(u'source', var.get(u'util').callprop(u'join', var.get(u'aSourceMapPath'), var.get(u'mapping').get(u'source')))
                    if (var.get(u'sourceRoot')!=var.get(u"null")):
                        var.get(u'mapping').put(u'source', var.get(u'util').callprop(u'relative', var.get(u'sourceRoot'), var.get(u'mapping').get(u'source')))
                    var.get(u'mapping').put(u'originalLine', var.get(u'original').get(u'line'))
                    var.get(u'mapping').put(u'originalColumn', var.get(u'original').get(u'column'))
                    if (var.get(u'original').get(u'name')!=var.get(u"null")):
                        var.get(u'mapping').put(u'name', var.get(u'original').get(u'name'))
            var.put(u'source', var.get(u'mapping').get(u'source'))
            if ((var.get(u'source')!=var.get(u"null")) and var.get(u'newSources').callprop(u'has', var.get(u'source')).neg()):
                var.get(u'newSources').callprop(u'add', var.get(u'source'))
            var.put(u'name', var.get(u'mapping').get(u'name'))
            if ((var.get(u'name')!=var.get(u"null")) and var.get(u'newNames').callprop(u'has', var.get(u'name')).neg()):
                var.get(u'newNames').callprop(u'add', var.get(u'name'))
        PyJs_anonymous_4133_._set_name(u'anonymous')
        var.get(u"this").get(u'_mappings').callprop(u'unsortedForEach', PyJs_anonymous_4133_, var.get(u"this"))
        var.get(u"this").put(u'_sources', var.get(u'newSources'))
        var.get(u"this").put(u'_names', var.get(u'newNames'))
        @Js
        def PyJs_anonymous_4135_(sourceFile, this, arguments, var=var):
            var = Scope({u'this':this, u'sourceFile':sourceFile, u'arguments':arguments}, var)
            var.registers([u'content', u'sourceFile'])
            var.put(u'content', var.get(u'aSourceMapConsumer').callprop(u'sourceContentFor', var.get(u'sourceFile')))
            if (var.get(u'content')!=var.get(u"null")):
                if (var.get(u'aSourceMapPath')!=var.get(u"null")):
                    var.put(u'sourceFile', var.get(u'util').callprop(u'join', var.get(u'aSourceMapPath'), var.get(u'sourceFile')))
                if (var.get(u'sourceRoot')!=var.get(u"null")):
                    var.put(u'sourceFile', var.get(u'util').callprop(u'relative', var.get(u'sourceRoot'), var.get(u'sourceFile')))
                var.get(u"this").callprop(u'setSourceContent', var.get(u'sourceFile'), var.get(u'content'))
        PyJs_anonymous_4135_._set_name(u'anonymous')
        var.get(u'aSourceMapConsumer').get(u'sources').callprop(u'forEach', PyJs_anonymous_4135_, var.get(u"this"))
    PyJs_SourceMapGenerator_applySourceMap_4132_._set_name(u'SourceMapGenerator_applySourceMap')
    var.get(u'SourceMapGenerator').get(u'prototype').put(u'applySourceMap', PyJs_SourceMapGenerator_applySourceMap_4132_)
    @Js
    def PyJs_SourceMapGenerator_validateMapping_4136_(aGenerated, aOriginal, aSource, aName, this, arguments, var=var):
        var = Scope({u'aOriginal':aOriginal, u'aGenerated':aGenerated, u'SourceMapGenerator_validateMapping':PyJs_SourceMapGenerator_validateMapping_4136_, u'aSource':aSource, u'this':this, u'aName':aName, u'arguments':arguments}, var)
        var.registers([u'aOriginal', u'aGenerated', u'aSource', u'aName'])
        if (((((((var.get(u'aGenerated') and var.get(u'aGenerated').contains(Js(u'line'))) and var.get(u'aGenerated').contains(Js(u'column'))) and (var.get(u'aGenerated').get(u'line')>Js(0.0))) and (var.get(u'aGenerated').get(u'column')>=Js(0.0))) and var.get(u'aOriginal').neg()) and var.get(u'aSource').neg()) and var.get(u'aName').neg()):
            return var.get('undefined')
        else:
            def PyJs_LONG_4137_(var=var):
                return ((((((((var.get(u'aGenerated') and var.get(u'aGenerated').contains(Js(u'line'))) and var.get(u'aGenerated').contains(Js(u'column'))) and var.get(u'aOriginal')) and var.get(u'aOriginal').contains(Js(u'line'))) and var.get(u'aOriginal').contains(Js(u'column'))) and (var.get(u'aGenerated').get(u'line')>Js(0.0))) and (var.get(u'aGenerated').get(u'column')>=Js(0.0))) and (var.get(u'aOriginal').get(u'line')>Js(0.0)))
            if ((PyJs_LONG_4137_() and (var.get(u'aOriginal').get(u'column')>=Js(0.0))) and var.get(u'aSource')):
                return var.get('undefined')
            else:
                PyJs_Object_4138_ = Js({u'generated':var.get(u'aGenerated'),u'source':var.get(u'aSource'),u'original':var.get(u'aOriginal'),u'name':var.get(u'aName')})
                PyJsTempException = JsToPyException(var.get(u'Error').create((Js(u'Invalid mapping: ')+var.get(u'JSON').callprop(u'stringify', PyJs_Object_4138_))))
                raise PyJsTempException
    PyJs_SourceMapGenerator_validateMapping_4136_._set_name(u'SourceMapGenerator_validateMapping')
    var.get(u'SourceMapGenerator').get(u'prototype').put(u'_validateMapping', PyJs_SourceMapGenerator_validateMapping_4136_)
    @Js
    def PyJs_SourceMapGenerator_serializeMappings_4139_(this, arguments, var=var):
        var = Scope({u'this':this, u'SourceMapGenerator_serializeMappings':PyJs_SourceMapGenerator_serializeMappings_4139_, u'arguments':arguments}, var)
        var.registers([u'previousOriginalColumn', u'previousOriginalLine', u'previousGeneratedLine', u'previousSource', u'previousGeneratedColumn', u'i', u'mapping', u'previousName', u'next', u'len', u'nameIdx', u'sourceIdx', u'result', u'mappings'])
        var.put(u'previousGeneratedColumn', Js(0.0))
        var.put(u'previousGeneratedLine', Js(1.0))
        var.put(u'previousOriginalColumn', Js(0.0))
        var.put(u'previousOriginalLine', Js(0.0))
        var.put(u'previousName', Js(0.0))
        var.put(u'previousSource', Js(0.0))
        var.put(u'result', Js(u''))
        pass
        pass
        pass
        pass
        var.put(u'mappings', var.get(u"this").get(u'_mappings').callprop(u'toArray'))
        #for JS loop
        var.put(u'i', Js(0.0))
        var.put(u'len', var.get(u'mappings').get(u'length'))
        while (var.get(u'i')<var.get(u'len')):
            try:
                var.put(u'mapping', var.get(u'mappings').get(var.get(u'i')))
                var.put(u'next', Js(u''))
                if PyJsStrictNeq(var.get(u'mapping').get(u'generatedLine'),var.get(u'previousGeneratedLine')):
                    var.put(u'previousGeneratedColumn', Js(0.0))
                    while PyJsStrictNeq(var.get(u'mapping').get(u'generatedLine'),var.get(u'previousGeneratedLine')):
                        var.put(u'next', Js(u';'), u'+')
                        (var.put(u'previousGeneratedLine',Js(var.get(u'previousGeneratedLine').to_number())+Js(1))-Js(1))
                else:
                    if (var.get(u'i')>Js(0.0)):
                        if var.get(u'util').callprop(u'compareByGeneratedPositionsInflated', var.get(u'mapping'), var.get(u'mappings').get((var.get(u'i')-Js(1.0)))).neg():
                            continue
                        var.put(u'next', Js(u','), u'+')
                var.put(u'next', var.get(u'base64VLQ').callprop(u'encode', (var.get(u'mapping').get(u'generatedColumn')-var.get(u'previousGeneratedColumn'))), u'+')
                var.put(u'previousGeneratedColumn', var.get(u'mapping').get(u'generatedColumn'))
                if (var.get(u'mapping').get(u'source')!=var.get(u"null")):
                    var.put(u'sourceIdx', var.get(u"this").get(u'_sources').callprop(u'indexOf', var.get(u'mapping').get(u'source')))
                    var.put(u'next', var.get(u'base64VLQ').callprop(u'encode', (var.get(u'sourceIdx')-var.get(u'previousSource'))), u'+')
                    var.put(u'previousSource', var.get(u'sourceIdx'))
                    var.put(u'next', var.get(u'base64VLQ').callprop(u'encode', ((var.get(u'mapping').get(u'originalLine')-Js(1.0))-var.get(u'previousOriginalLine'))), u'+')
                    var.put(u'previousOriginalLine', (var.get(u'mapping').get(u'originalLine')-Js(1.0)))
                    var.put(u'next', var.get(u'base64VLQ').callprop(u'encode', (var.get(u'mapping').get(u'originalColumn')-var.get(u'previousOriginalColumn'))), u'+')
                    var.put(u'previousOriginalColumn', var.get(u'mapping').get(u'originalColumn'))
                    if (var.get(u'mapping').get(u'name')!=var.get(u"null")):
                        var.put(u'nameIdx', var.get(u"this").get(u'_names').callprop(u'indexOf', var.get(u'mapping').get(u'name')))
                        var.put(u'next', var.get(u'base64VLQ').callprop(u'encode', (var.get(u'nameIdx')-var.get(u'previousName'))), u'+')
                        var.put(u'previousName', var.get(u'nameIdx'))
                var.put(u'result', var.get(u'next'), u'+')
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        return var.get(u'result')
    PyJs_SourceMapGenerator_serializeMappings_4139_._set_name(u'SourceMapGenerator_serializeMappings')
    var.get(u'SourceMapGenerator').get(u'prototype').put(u'_serializeMappings', PyJs_SourceMapGenerator_serializeMappings_4139_)
    @Js
    def PyJs_SourceMapGenerator_generateSourcesContent_4140_(aSources, aSourceRoot, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'SourceMapGenerator_generateSourcesContent':PyJs_SourceMapGenerator_generateSourcesContent_4140_, u'aSources':aSources, u'aSourceRoot':aSourceRoot}, var)
        var.registers([u'aSources', u'aSourceRoot'])
        @Js
        def PyJs_anonymous_4141_(source, this, arguments, var=var):
            var = Scope({u'this':this, u'source':source, u'arguments':arguments}, var)
            var.registers([u'source', u'key'])
            if var.get(u"this").get(u'_sourcesContents').neg():
                return var.get(u"null")
            if (var.get(u'aSourceRoot')!=var.get(u"null")):
                var.put(u'source', var.get(u'util').callprop(u'relative', var.get(u'aSourceRoot'), var.get(u'source')))
            var.put(u'key', var.get(u'util').callprop(u'toSetString', var.get(u'source')))
            return (var.get(u"this").get(u'_sourcesContents').get(var.get(u'key')) if var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u"this").get(u'_sourcesContents'), var.get(u'key')) else var.get(u"null"))
        PyJs_anonymous_4141_._set_name(u'anonymous')
        return var.get(u'aSources').callprop(u'map', PyJs_anonymous_4141_, var.get(u"this"))
    PyJs_SourceMapGenerator_generateSourcesContent_4140_._set_name(u'SourceMapGenerator_generateSourcesContent')
    var.get(u'SourceMapGenerator').get(u'prototype').put(u'_generateSourcesContent', PyJs_SourceMapGenerator_generateSourcesContent_4140_)
    @Js
    def PyJs_SourceMapGenerator_toJSON_4142_(this, arguments, var=var):
        var = Scope({u'this':this, u'SourceMapGenerator_toJSON':PyJs_SourceMapGenerator_toJSON_4142_, u'arguments':arguments}, var)
        var.registers([u'map'])
        PyJs_Object_4143_ = Js({u'version':var.get(u"this").get(u'_version'),u'sources':var.get(u"this").get(u'_sources').callprop(u'toArray'),u'names':var.get(u"this").get(u'_names').callprop(u'toArray'),u'mappings':var.get(u"this").callprop(u'_serializeMappings')})
        var.put(u'map', PyJs_Object_4143_)
        if (var.get(u"this").get(u'_file')!=var.get(u"null")):
            var.get(u'map').put(u'file', var.get(u"this").get(u'_file'))
        if (var.get(u"this").get(u'_sourceRoot')!=var.get(u"null")):
            var.get(u'map').put(u'sourceRoot', var.get(u"this").get(u'_sourceRoot'))
        if var.get(u"this").get(u'_sourcesContents'):
            var.get(u'map').put(u'sourcesContent', var.get(u"this").callprop(u'_generateSourcesContent', var.get(u'map').get(u'sources'), var.get(u'map').get(u'sourceRoot')))
        return var.get(u'map')
    PyJs_SourceMapGenerator_toJSON_4142_._set_name(u'SourceMapGenerator_toJSON')
    var.get(u'SourceMapGenerator').get(u'prototype').put(u'toJSON', PyJs_SourceMapGenerator_toJSON_4142_)
    @Js
    def PyJs_SourceMapGenerator_toString_4144_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'SourceMapGenerator_toString':PyJs_SourceMapGenerator_toString_4144_}, var)
        var.registers([])
        return var.get(u'JSON').callprop(u'stringify', var.get(u"this").callprop(u'toJSON'))
    PyJs_SourceMapGenerator_toString_4144_._set_name(u'SourceMapGenerator_toString')
    var.get(u'SourceMapGenerator').get(u'prototype').put(u'toString', PyJs_SourceMapGenerator_toString_4144_)
    var.get(u'exports').put(u'SourceMapGenerator', var.get(u'SourceMapGenerator'))
PyJs_anonymous_4120_._set_name(u'anonymous')
PyJs_Object_4145_ = Js({u'./array-set':Js(509.0),u'./base64-vlq':Js(510.0),u'./mapping-list':Js(513.0),u'./util':Js(518.0)})
@Js
def PyJs_anonymous_4146_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'util', u'exports', u'NEWLINE_CODE', u'SourceNode', u'require', u'isSourceNode', u'module', u'SourceMapGenerator', u'REGEX_NEWLINE'])
    @Js
    def PyJsHoisted_SourceNode_(aLine, aColumn, aSource, aChunks, aName, this, arguments, var=var):
        var = Scope({u'aChunks':aChunks, u'aSource':aSource, u'aLine':aLine, u'this':this, u'aColumn':aColumn, u'aName':aName, u'arguments':arguments}, var)
        var.registers([u'aChunks', u'aColumn', u'aSource', u'aLine', u'aName'])
        var.get(u"this").put(u'children', Js([]))
        PyJs_Object_4147_ = Js({})
        var.get(u"this").put(u'sourceContents', PyJs_Object_4147_)
        var.get(u"this").put(u'line', (var.get(u"null") if (var.get(u'aLine')==var.get(u"null")) else var.get(u'aLine')))
        var.get(u"this").put(u'column', (var.get(u"null") if (var.get(u'aColumn')==var.get(u"null")) else var.get(u'aColumn')))
        var.get(u"this").put(u'source', (var.get(u"null") if (var.get(u'aSource')==var.get(u"null")) else var.get(u'aSource')))
        var.get(u"this").put(u'name', (var.get(u"null") if (var.get(u'aName')==var.get(u"null")) else var.get(u'aName')))
        var.get(u"this").put(var.get(u'isSourceNode'), var.get(u'true'))
        if (var.get(u'aChunks')!=var.get(u"null")):
            var.get(u"this").callprop(u'add', var.get(u'aChunks'))
    PyJsHoisted_SourceNode_.func_name = u'SourceNode'
    var.put(u'SourceNode', PyJsHoisted_SourceNode_)
    var.put(u'SourceMapGenerator', var.get(u'require')(Js(u'./source-map-generator')).get(u'SourceMapGenerator'))
    var.put(u'util', var.get(u'require')(Js(u'./util')))
    var.put(u'REGEX_NEWLINE', JsRegExp(u'/(\\r?\\n)/'))
    var.put(u'NEWLINE_CODE', Js(10.0))
    var.put(u'isSourceNode', Js(u'$$$isSourceNode$$$'))
    pass
    @Js
    def PyJs_SourceNode_fromStringWithSourceMap_4148_(aGeneratedCode, aSourceMapConsumer, aRelativePath, this, arguments, var=var):
        var = Scope({u'aSourceMapConsumer':aSourceMapConsumer, u'this':this, u'aRelativePath':aRelativePath, u'aGeneratedCode':aGeneratedCode, u'SourceNode_fromStringWithSourceMap':PyJs_SourceNode_fromStringWithSourceMap_4148_, u'arguments':arguments}, var)
        var.registers([u'node', u'lastMapping', u'remainingLines', u'aSourceMapConsumer', u'aGeneratedCode', u'lastGeneratedLine', u'aRelativePath', u'addMappingWithCode', u'shiftNextLine', u'lastGeneratedColumn'])
        @Js
        def PyJsHoisted_addMappingWithCode_(mapping, code, this, arguments, var=var):
            var = Scope({u'this':this, u'code':code, u'mapping':mapping, u'arguments':arguments}, var)
            var.registers([u'source', u'code', u'mapping'])
            if (PyJsStrictEq(var.get(u'mapping'),var.get(u"null")) or PyJsStrictEq(var.get(u'mapping').get(u'source'),var.get(u'undefined'))):
                var.get(u'node').callprop(u'add', var.get(u'code'))
            else:
                var.put(u'source', (var.get(u'util').callprop(u'join', var.get(u'aRelativePath'), var.get(u'mapping').get(u'source')) if var.get(u'aRelativePath') else var.get(u'mapping').get(u'source')))
                var.get(u'node').callprop(u'add', var.get(u'SourceNode').create(var.get(u'mapping').get(u'originalLine'), var.get(u'mapping').get(u'originalColumn'), var.get(u'source'), var.get(u'code'), var.get(u'mapping').get(u'name')))
        PyJsHoisted_addMappingWithCode_.func_name = u'addMappingWithCode'
        var.put(u'addMappingWithCode', PyJsHoisted_addMappingWithCode_)
        var.put(u'node', var.get(u'SourceNode').create())
        var.put(u'remainingLines', var.get(u'aGeneratedCode').callprop(u'split', var.get(u'REGEX_NEWLINE')))
        @Js
        def PyJs_anonymous_4149_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'newLine', u'lineContents'])
            var.put(u'lineContents', var.get(u'remainingLines').callprop(u'shift'))
            var.put(u'newLine', (var.get(u'remainingLines').callprop(u'shift') or Js(u'')))
            return (var.get(u'lineContents')+var.get(u'newLine'))
        PyJs_anonymous_4149_._set_name(u'anonymous')
        var.put(u'shiftNextLine', PyJs_anonymous_4149_)
        var.put(u'lastGeneratedLine', Js(1.0))
        var.put(u'lastGeneratedColumn', Js(0.0))
        var.put(u'lastMapping', var.get(u"null"))
        @Js
        def PyJs_anonymous_4150_(mapping, this, arguments, var=var):
            var = Scope({u'this':this, u'mapping':mapping, u'arguments':arguments}, var)
            var.registers([u'nextLine', u'code', u'mapping'])
            if PyJsStrictNeq(var.get(u'lastMapping'),var.get(u"null")):
                if (var.get(u'lastGeneratedLine')<var.get(u'mapping').get(u'generatedLine')):
                    var.get(u'addMappingWithCode')(var.get(u'lastMapping'), var.get(u'shiftNextLine')())
                    (var.put(u'lastGeneratedLine',Js(var.get(u'lastGeneratedLine').to_number())+Js(1))-Js(1))
                    var.put(u'lastGeneratedColumn', Js(0.0))
                else:
                    var.put(u'nextLine', var.get(u'remainingLines').get(u'0'))
                    var.put(u'code', var.get(u'nextLine').callprop(u'substr', Js(0.0), (var.get(u'mapping').get(u'generatedColumn')-var.get(u'lastGeneratedColumn'))))
                    var.get(u'remainingLines').put(u'0', var.get(u'nextLine').callprop(u'substr', (var.get(u'mapping').get(u'generatedColumn')-var.get(u'lastGeneratedColumn'))))
                    var.put(u'lastGeneratedColumn', var.get(u'mapping').get(u'generatedColumn'))
                    var.get(u'addMappingWithCode')(var.get(u'lastMapping'), var.get(u'code'))
                    var.put(u'lastMapping', var.get(u'mapping'))
                    return var.get('undefined')
            while (var.get(u'lastGeneratedLine')<var.get(u'mapping').get(u'generatedLine')):
                var.get(u'node').callprop(u'add', var.get(u'shiftNextLine')())
                (var.put(u'lastGeneratedLine',Js(var.get(u'lastGeneratedLine').to_number())+Js(1))-Js(1))
            if (var.get(u'lastGeneratedColumn')<var.get(u'mapping').get(u'generatedColumn')):
                var.put(u'nextLine', var.get(u'remainingLines').get(u'0'))
                var.get(u'node').callprop(u'add', var.get(u'nextLine').callprop(u'substr', Js(0.0), var.get(u'mapping').get(u'generatedColumn')))
                var.get(u'remainingLines').put(u'0', var.get(u'nextLine').callprop(u'substr', var.get(u'mapping').get(u'generatedColumn')))
                var.put(u'lastGeneratedColumn', var.get(u'mapping').get(u'generatedColumn'))
            var.put(u'lastMapping', var.get(u'mapping'))
        PyJs_anonymous_4150_._set_name(u'anonymous')
        var.get(u'aSourceMapConsumer').callprop(u'eachMapping', PyJs_anonymous_4150_, var.get(u"this"))
        if (var.get(u'remainingLines').get(u'length')>Js(0.0)):
            if var.get(u'lastMapping'):
                var.get(u'addMappingWithCode')(var.get(u'lastMapping'), var.get(u'shiftNextLine')())
            var.get(u'node').callprop(u'add', var.get(u'remainingLines').callprop(u'join', Js(u'')))
        @Js
        def PyJs_anonymous_4151_(sourceFile, this, arguments, var=var):
            var = Scope({u'this':this, u'sourceFile':sourceFile, u'arguments':arguments}, var)
            var.registers([u'content', u'sourceFile'])
            var.put(u'content', var.get(u'aSourceMapConsumer').callprop(u'sourceContentFor', var.get(u'sourceFile')))
            if (var.get(u'content')!=var.get(u"null")):
                if (var.get(u'aRelativePath')!=var.get(u"null")):
                    var.put(u'sourceFile', var.get(u'util').callprop(u'join', var.get(u'aRelativePath'), var.get(u'sourceFile')))
                var.get(u'node').callprop(u'setSourceContent', var.get(u'sourceFile'), var.get(u'content'))
        PyJs_anonymous_4151_._set_name(u'anonymous')
        var.get(u'aSourceMapConsumer').get(u'sources').callprop(u'forEach', PyJs_anonymous_4151_)
        return var.get(u'node')
        pass
    PyJs_SourceNode_fromStringWithSourceMap_4148_._set_name(u'SourceNode_fromStringWithSourceMap')
    var.get(u'SourceNode').put(u'fromStringWithSourceMap', PyJs_SourceNode_fromStringWithSourceMap_4148_)
    @Js
    def PyJs_SourceNode_add_4152_(aChunk, this, arguments, var=var):
        var = Scope({u'this':this, u'SourceNode_add':PyJs_SourceNode_add_4152_, u'arguments':arguments, u'aChunk':aChunk}, var)
        var.registers([u'aChunk'])
        if var.get(u'Array').callprop(u'isArray', var.get(u'aChunk')):
            @Js
            def PyJs_anonymous_4153_(chunk, this, arguments, var=var):
                var = Scope({u'this':this, u'chunk':chunk, u'arguments':arguments}, var)
                var.registers([u'chunk'])
                var.get(u"this").callprop(u'add', var.get(u'chunk'))
            PyJs_anonymous_4153_._set_name(u'anonymous')
            var.get(u'aChunk').callprop(u'forEach', PyJs_anonymous_4153_, var.get(u"this"))
        else:
            if (var.get(u'aChunk').get(var.get(u'isSourceNode')) or PyJsStrictEq(var.get(u'aChunk',throw=False).typeof(),Js(u'string'))):
                if var.get(u'aChunk'):
                    var.get(u"this").get(u'children').callprop(u'push', var.get(u'aChunk'))
            else:
                PyJsTempException = JsToPyException(var.get(u'TypeError').create((Js(u'Expected a SourceNode, string, or an array of SourceNodes and strings. Got ')+var.get(u'aChunk'))))
                raise PyJsTempException
        return var.get(u"this")
    PyJs_SourceNode_add_4152_._set_name(u'SourceNode_add')
    var.get(u'SourceNode').get(u'prototype').put(u'add', PyJs_SourceNode_add_4152_)
    @Js
    def PyJs_SourceNode_prepend_4154_(aChunk, this, arguments, var=var):
        var = Scope({u'this':this, u'SourceNode_prepend':PyJs_SourceNode_prepend_4154_, u'arguments':arguments, u'aChunk':aChunk}, var)
        var.registers([u'i', u'aChunk'])
        if var.get(u'Array').callprop(u'isArray', var.get(u'aChunk')):
            #for JS loop
            var.put(u'i', (var.get(u'aChunk').get(u'length')-Js(1.0)))
            while (var.get(u'i')>=Js(0.0)):
                try:
                    var.get(u"this").callprop(u'prepend', var.get(u'aChunk').get(var.get(u'i')))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
        else:
            if (var.get(u'aChunk').get(var.get(u'isSourceNode')) or PyJsStrictEq(var.get(u'aChunk',throw=False).typeof(),Js(u'string'))):
                var.get(u"this").get(u'children').callprop(u'unshift', var.get(u'aChunk'))
            else:
                PyJsTempException = JsToPyException(var.get(u'TypeError').create((Js(u'Expected a SourceNode, string, or an array of SourceNodes and strings. Got ')+var.get(u'aChunk'))))
                raise PyJsTempException
        return var.get(u"this")
    PyJs_SourceNode_prepend_4154_._set_name(u'SourceNode_prepend')
    var.get(u'SourceNode').get(u'prototype').put(u'prepend', PyJs_SourceNode_prepend_4154_)
    @Js
    def PyJs_SourceNode_walk_4155_(aFn, this, arguments, var=var):
        var = Scope({u'this':this, u'aFn':aFn, u'arguments':arguments, u'SourceNode_walk':PyJs_SourceNode_walk_4155_}, var)
        var.registers([u'i', u'chunk', u'aFn', u'len'])
        pass
        #for JS loop
        var.put(u'i', Js(0.0))
        var.put(u'len', var.get(u"this").get(u'children').get(u'length'))
        while (var.get(u'i')<var.get(u'len')):
            try:
                var.put(u'chunk', var.get(u"this").get(u'children').get(var.get(u'i')))
                if var.get(u'chunk').get(var.get(u'isSourceNode')):
                    var.get(u'chunk').callprop(u'walk', var.get(u'aFn'))
                else:
                    if PyJsStrictNeq(var.get(u'chunk'),Js(u'')):
                        PyJs_Object_4156_ = Js({u'source':var.get(u"this").get(u'source'),u'line':var.get(u"this").get(u'line'),u'column':var.get(u"this").get(u'column'),u'name':var.get(u"this").get(u'name')})
                        var.get(u'aFn')(var.get(u'chunk'), PyJs_Object_4156_)
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
    PyJs_SourceNode_walk_4155_._set_name(u'SourceNode_walk')
    var.get(u'SourceNode').get(u'prototype').put(u'walk', PyJs_SourceNode_walk_4155_)
    @Js
    def PyJs_SourceNode_join_4157_(aSep, this, arguments, var=var):
        var = Scope({u'this':this, u'SourceNode_join':PyJs_SourceNode_join_4157_, u'aSep':aSep, u'arguments':arguments}, var)
        var.registers([u'newChildren', u'i', u'aSep', u'len'])
        pass
        pass
        var.put(u'len', var.get(u"this").get(u'children').get(u'length'))
        if (var.get(u'len')>Js(0.0)):
            var.put(u'newChildren', Js([]))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<(var.get(u'len')-Js(1.0))):
                try:
                    var.get(u'newChildren').callprop(u'push', var.get(u"this").get(u'children').get(var.get(u'i')))
                    var.get(u'newChildren').callprop(u'push', var.get(u'aSep'))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            var.get(u'newChildren').callprop(u'push', var.get(u"this").get(u'children').get(var.get(u'i')))
            var.get(u"this").put(u'children', var.get(u'newChildren'))
        return var.get(u"this")
    PyJs_SourceNode_join_4157_._set_name(u'SourceNode_join')
    var.get(u'SourceNode').get(u'prototype').put(u'join', PyJs_SourceNode_join_4157_)
    @Js
    def PyJs_SourceNode_replaceRight_4158_(aPattern, aReplacement, this, arguments, var=var):
        var = Scope({u'this':this, u'aPattern':aPattern, u'aReplacement':aReplacement, u'arguments':arguments, u'SourceNode_replaceRight':PyJs_SourceNode_replaceRight_4158_}, var)
        var.registers([u'aPattern', u'lastChild', u'aReplacement'])
        var.put(u'lastChild', var.get(u"this").get(u'children').get((var.get(u"this").get(u'children').get(u'length')-Js(1.0))))
        if var.get(u'lastChild').get(var.get(u'isSourceNode')):
            var.get(u'lastChild').callprop(u'replaceRight', var.get(u'aPattern'), var.get(u'aReplacement'))
        else:
            if PyJsStrictEq(var.get(u'lastChild',throw=False).typeof(),Js(u'string')):
                var.get(u"this").get(u'children').put((var.get(u"this").get(u'children').get(u'length')-Js(1.0)), var.get(u'lastChild').callprop(u'replace', var.get(u'aPattern'), var.get(u'aReplacement')))
            else:
                var.get(u"this").get(u'children').callprop(u'push', Js(u'').callprop(u'replace', var.get(u'aPattern'), var.get(u'aReplacement')))
        return var.get(u"this")
    PyJs_SourceNode_replaceRight_4158_._set_name(u'SourceNode_replaceRight')
    var.get(u'SourceNode').get(u'prototype').put(u'replaceRight', PyJs_SourceNode_replaceRight_4158_)
    @Js
    def PyJs_SourceNode_setSourceContent_4159_(aSourceFile, aSourceContent, this, arguments, var=var):
        var = Scope({u'this':this, u'aSourceContent':aSourceContent, u'aSourceFile':aSourceFile, u'arguments':arguments, u'SourceNode_setSourceContent':PyJs_SourceNode_setSourceContent_4159_}, var)
        var.registers([u'aSourceContent', u'aSourceFile'])
        var.get(u"this").get(u'sourceContents').put(var.get(u'util').callprop(u'toSetString', var.get(u'aSourceFile')), var.get(u'aSourceContent'))
    PyJs_SourceNode_setSourceContent_4159_._set_name(u'SourceNode_setSourceContent')
    var.get(u'SourceNode').get(u'prototype').put(u'setSourceContent', PyJs_SourceNode_setSourceContent_4159_)
    @Js
    def PyJs_SourceNode_walkSourceContents_4160_(aFn, this, arguments, var=var):
        var = Scope({u'this':this, u'aFn':aFn, u'arguments':arguments, u'SourceNode_walkSourceContents':PyJs_SourceNode_walkSourceContents_4160_}, var)
        var.registers([u'i', u'sources', u'aFn', u'len'])
        #for JS loop
        var.put(u'i', Js(0.0))
        var.put(u'len', var.get(u"this").get(u'children').get(u'length'))
        while (var.get(u'i')<var.get(u'len')):
            try:
                if var.get(u"this").get(u'children').get(var.get(u'i')).get(var.get(u'isSourceNode')):
                    var.get(u"this").get(u'children').get(var.get(u'i')).callprop(u'walkSourceContents', var.get(u'aFn'))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        var.put(u'sources', var.get(u'Object').callprop(u'keys', var.get(u"this").get(u'sourceContents')))
        #for JS loop
        var.put(u'i', Js(0.0))
        var.put(u'len', var.get(u'sources').get(u'length'))
        while (var.get(u'i')<var.get(u'len')):
            try:
                var.get(u'aFn')(var.get(u'util').callprop(u'fromSetString', var.get(u'sources').get(var.get(u'i'))), var.get(u"this").get(u'sourceContents').get(var.get(u'sources').get(var.get(u'i'))))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
    PyJs_SourceNode_walkSourceContents_4160_._set_name(u'SourceNode_walkSourceContents')
    var.get(u'SourceNode').get(u'prototype').put(u'walkSourceContents', PyJs_SourceNode_walkSourceContents_4160_)
    @Js
    def PyJs_SourceNode_toString_4161_(this, arguments, var=var):
        var = Scope({u'this':this, u'SourceNode_toString':PyJs_SourceNode_toString_4161_, u'arguments':arguments}, var)
        var.registers([u'str'])
        var.put(u'str', Js(u''))
        @Js
        def PyJs_anonymous_4162_(chunk, this, arguments, var=var):
            var = Scope({u'this':this, u'chunk':chunk, u'arguments':arguments}, var)
            var.registers([u'chunk'])
            var.put(u'str', var.get(u'chunk'), u'+')
        PyJs_anonymous_4162_._set_name(u'anonymous')
        var.get(u"this").callprop(u'walk', PyJs_anonymous_4162_)
        return var.get(u'str')
    PyJs_SourceNode_toString_4161_._set_name(u'SourceNode_toString')
    var.get(u'SourceNode').get(u'prototype').put(u'toString', PyJs_SourceNode_toString_4161_)
    @Js
    def PyJs_SourceNode_toStringWithSourceMap_4163_(aArgs, this, arguments, var=var):
        var = Scope({u'this':this, u'SourceNode_toStringWithSourceMap':PyJs_SourceNode_toStringWithSourceMap_4163_, u'arguments':arguments, u'aArgs':aArgs}, var)
        var.registers([u'map', u'lastOriginalName', u'sourceMappingActive', u'aArgs', u'lastOriginalSource', u'lastOriginalLine', u'generated', u'lastOriginalColumn'])
        PyJs_Object_4164_ = Js({u'code':Js(u''),u'line':Js(1.0),u'column':Js(0.0)})
        var.put(u'generated', PyJs_Object_4164_)
        var.put(u'map', var.get(u'SourceMapGenerator').create(var.get(u'aArgs')))
        var.put(u'sourceMappingActive', Js(False))
        var.put(u'lastOriginalSource', var.get(u"null"))
        var.put(u'lastOriginalLine', var.get(u"null"))
        var.put(u'lastOriginalColumn', var.get(u"null"))
        var.put(u'lastOriginalName', var.get(u"null"))
        @Js
        def PyJs_anonymous_4165_(chunk, original, this, arguments, var=var):
            var = Scope({u'this':this, u'chunk':chunk, u'original':original, u'arguments':arguments}, var)
            var.registers([u'length', u'chunk', u'idx', u'original'])
            var.get(u'generated').put(u'code', var.get(u'chunk'), u'+')
            if ((PyJsStrictNeq(var.get(u'original').get(u'source'),var.get(u"null")) and PyJsStrictNeq(var.get(u'original').get(u'line'),var.get(u"null"))) and PyJsStrictNeq(var.get(u'original').get(u'column'),var.get(u"null"))):
                if (((PyJsStrictNeq(var.get(u'lastOriginalSource'),var.get(u'original').get(u'source')) or PyJsStrictNeq(var.get(u'lastOriginalLine'),var.get(u'original').get(u'line'))) or PyJsStrictNeq(var.get(u'lastOriginalColumn'),var.get(u'original').get(u'column'))) or PyJsStrictNeq(var.get(u'lastOriginalName'),var.get(u'original').get(u'name'))):
                    PyJs_Object_4167_ = Js({u'line':var.get(u'original').get(u'line'),u'column':var.get(u'original').get(u'column')})
                    PyJs_Object_4168_ = Js({u'line':var.get(u'generated').get(u'line'),u'column':var.get(u'generated').get(u'column')})
                    PyJs_Object_4166_ = Js({u'source':var.get(u'original').get(u'source'),u'original':PyJs_Object_4167_,u'generated':PyJs_Object_4168_,u'name':var.get(u'original').get(u'name')})
                    var.get(u'map').callprop(u'addMapping', PyJs_Object_4166_)
                var.put(u'lastOriginalSource', var.get(u'original').get(u'source'))
                var.put(u'lastOriginalLine', var.get(u'original').get(u'line'))
                var.put(u'lastOriginalColumn', var.get(u'original').get(u'column'))
                var.put(u'lastOriginalName', var.get(u'original').get(u'name'))
                var.put(u'sourceMappingActive', var.get(u'true'))
            else:
                if var.get(u'sourceMappingActive'):
                    PyJs_Object_4170_ = Js({u'line':var.get(u'generated').get(u'line'),u'column':var.get(u'generated').get(u'column')})
                    PyJs_Object_4169_ = Js({u'generated':PyJs_Object_4170_})
                    var.get(u'map').callprop(u'addMapping', PyJs_Object_4169_)
                    var.put(u'lastOriginalSource', var.get(u"null"))
                    var.put(u'sourceMappingActive', Js(False))
            #for JS loop
            var.put(u'idx', Js(0.0))
            var.put(u'length', var.get(u'chunk').get(u'length'))
            while (var.get(u'idx')<var.get(u'length')):
                try:
                    if PyJsStrictEq(var.get(u'chunk').callprop(u'charCodeAt', var.get(u'idx')),var.get(u'NEWLINE_CODE')):
                        (var.get(u'generated').put(u'line',Js(var.get(u'generated').get(u'line').to_number())+Js(1))-Js(1))
                        var.get(u'generated').put(u'column', Js(0.0))
                        if PyJsStrictEq((var.get(u'idx')+Js(1.0)),var.get(u'length')):
                            var.put(u'lastOriginalSource', var.get(u"null"))
                            var.put(u'sourceMappingActive', Js(False))
                        else:
                            if var.get(u'sourceMappingActive'):
                                PyJs_Object_4172_ = Js({u'line':var.get(u'original').get(u'line'),u'column':var.get(u'original').get(u'column')})
                                PyJs_Object_4173_ = Js({u'line':var.get(u'generated').get(u'line'),u'column':var.get(u'generated').get(u'column')})
                                PyJs_Object_4171_ = Js({u'source':var.get(u'original').get(u'source'),u'original':PyJs_Object_4172_,u'generated':PyJs_Object_4173_,u'name':var.get(u'original').get(u'name')})
                                var.get(u'map').callprop(u'addMapping', PyJs_Object_4171_)
                    else:
                        (var.get(u'generated').put(u'column',Js(var.get(u'generated').get(u'column').to_number())+Js(1))-Js(1))
                finally:
                        (var.put(u'idx',Js(var.get(u'idx').to_number())+Js(1))-Js(1))
        PyJs_anonymous_4165_._set_name(u'anonymous')
        var.get(u"this").callprop(u'walk', PyJs_anonymous_4165_)
        @Js
        def PyJs_anonymous_4174_(sourceFile, sourceContent, this, arguments, var=var):
            var = Scope({u'this':this, u'sourceFile':sourceFile, u'sourceContent':sourceContent, u'arguments':arguments}, var)
            var.registers([u'sourceFile', u'sourceContent'])
            var.get(u'map').callprop(u'setSourceContent', var.get(u'sourceFile'), var.get(u'sourceContent'))
        PyJs_anonymous_4174_._set_name(u'anonymous')
        var.get(u"this").callprop(u'walkSourceContents', PyJs_anonymous_4174_)
        PyJs_Object_4175_ = Js({u'code':var.get(u'generated').get(u'code'),u'map':var.get(u'map')})
        return PyJs_Object_4175_
    PyJs_SourceNode_toStringWithSourceMap_4163_._set_name(u'SourceNode_toStringWithSourceMap')
    var.get(u'SourceNode').get(u'prototype').put(u'toStringWithSourceMap', PyJs_SourceNode_toStringWithSourceMap_4163_)
    var.get(u'exports').put(u'SourceNode', var.get(u'SourceNode'))
PyJs_anonymous_4146_._set_name(u'anonymous')
PyJs_Object_4176_ = Js({u'./source-map-generator':Js(516.0),u'./util':Js(518.0)})
@Js
def PyJs_anonymous_4177_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'normalize', u'urlGenerate', u'exports', u'compareByGeneratedPositionsDeflated', u'join', u'module', u'relative', u'require', u'fromSetString', u'strcmp', u'urlParse', u'dataUrlRegexp', u'identity', u'supportsNullProto', u'compareByGeneratedPositionsInflated', u'isProtoString', u'compareByOriginalPositions', u'urlRegexp', u'getArg', u'toSetString'])
    @Js
    def PyJsHoisted_normalize_(aPath, this, arguments, var=var):
        var = Scope({u'this':this, u'aPath':aPath, u'arguments':arguments}, var)
        var.registers([u'url', u'parts', u'up', u'i', u'part', u'isAbsolute', u'aPath', u'path'])
        var.put(u'path', var.get(u'aPath'))
        var.put(u'url', var.get(u'urlParse')(var.get(u'aPath')))
        if var.get(u'url'):
            if var.get(u'url').get(u'path').neg():
                return var.get(u'aPath')
            var.put(u'path', var.get(u'url').get(u'path'))
        var.put(u'isAbsolute', var.get(u'exports').callprop(u'isAbsolute', var.get(u'path')))
        var.put(u'parts', var.get(u'path').callprop(u'split', JsRegExp(u'/\\/+/')))
        #for JS loop
        var.put(u'up', Js(0.0))
        var.put(u'i', (var.get(u'parts').get(u'length')-Js(1.0)))
        while (var.get(u'i')>=Js(0.0)):
            try:
                var.put(u'part', var.get(u'parts').get(var.get(u'i')))
                if PyJsStrictEq(var.get(u'part'),Js(u'.')):
                    var.get(u'parts').callprop(u'splice', var.get(u'i'), Js(1.0))
                else:
                    if PyJsStrictEq(var.get(u'part'),Js(u'..')):
                        (var.put(u'up',Js(var.get(u'up').to_number())+Js(1))-Js(1))
                    else:
                        if (var.get(u'up')>Js(0.0)):
                            if PyJsStrictEq(var.get(u'part'),Js(u'')):
                                var.get(u'parts').callprop(u'splice', (var.get(u'i')+Js(1.0)), var.get(u'up'))
                                var.put(u'up', Js(0.0))
                            else:
                                var.get(u'parts').callprop(u'splice', var.get(u'i'), Js(2.0))
                                (var.put(u'up',Js(var.get(u'up').to_number())-Js(1))+Js(1))
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
        var.put(u'path', var.get(u'parts').callprop(u'join', Js(u'/')))
        if PyJsStrictEq(var.get(u'path'),Js(u'')):
            var.put(u'path', (Js(u'/') if var.get(u'isAbsolute') else Js(u'.')))
        if var.get(u'url'):
            var.get(u'url').put(u'path', var.get(u'path'))
            return var.get(u'urlGenerate')(var.get(u'url'))
        return var.get(u'path')
    PyJsHoisted_normalize_.func_name = u'normalize'
    var.put(u'normalize', PyJsHoisted_normalize_)
    @Js
    def PyJsHoisted_urlGenerate_(aParsedUrl, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'aParsedUrl':aParsedUrl}, var)
        var.registers([u'url', u'aParsedUrl'])
        var.put(u'url', Js(u''))
        if var.get(u'aParsedUrl').get(u'scheme'):
            var.put(u'url', (var.get(u'aParsedUrl').get(u'scheme')+Js(u':')), u'+')
        var.put(u'url', Js(u'//'), u'+')
        if var.get(u'aParsedUrl').get(u'auth'):
            var.put(u'url', (var.get(u'aParsedUrl').get(u'auth')+Js(u'@')), u'+')
        if var.get(u'aParsedUrl').get(u'host'):
            var.put(u'url', var.get(u'aParsedUrl').get(u'host'), u'+')
        if var.get(u'aParsedUrl').get(u'port'):
            var.put(u'url', (Js(u':')+var.get(u'aParsedUrl').get(u'port')), u'+')
        if var.get(u'aParsedUrl').get(u'path'):
            var.put(u'url', var.get(u'aParsedUrl').get(u'path'), u'+')
        return var.get(u'url')
    PyJsHoisted_urlGenerate_.func_name = u'urlGenerate'
    var.put(u'urlGenerate', PyJsHoisted_urlGenerate_)
    @Js
    def PyJsHoisted_compareByGeneratedPositionsDeflated_(mappingA, mappingB, onlyCompareGenerated, this, arguments, var=var):
        var = Scope({u'this':this, u'mappingB':mappingB, u'arguments':arguments, u'onlyCompareGenerated':onlyCompareGenerated, u'mappingA':mappingA}, var)
        var.registers([u'mappingA', u'mappingB', u'onlyCompareGenerated', u'cmp'])
        var.put(u'cmp', (var.get(u'mappingA').get(u'generatedLine')-var.get(u'mappingB').get(u'generatedLine')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        var.put(u'cmp', (var.get(u'mappingA').get(u'generatedColumn')-var.get(u'mappingB').get(u'generatedColumn')))
        if (PyJsStrictNeq(var.get(u'cmp'),Js(0.0)) or var.get(u'onlyCompareGenerated')):
            return var.get(u'cmp')
        var.put(u'cmp', (var.get(u'mappingA').get(u'source')-var.get(u'mappingB').get(u'source')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        var.put(u'cmp', (var.get(u'mappingA').get(u'originalLine')-var.get(u'mappingB').get(u'originalLine')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        var.put(u'cmp', (var.get(u'mappingA').get(u'originalColumn')-var.get(u'mappingB').get(u'originalColumn')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        return (var.get(u'mappingA').get(u'name')-var.get(u'mappingB').get(u'name'))
    PyJsHoisted_compareByGeneratedPositionsDeflated_.func_name = u'compareByGeneratedPositionsDeflated'
    var.put(u'compareByGeneratedPositionsDeflated', PyJsHoisted_compareByGeneratedPositionsDeflated_)
    @Js
    def PyJsHoisted_join_(aRoot, aPath, this, arguments, var=var):
        var = Scope({u'aRoot':aRoot, u'aPath':aPath, u'this':this, u'arguments':arguments}, var)
        var.registers([u'aRootUrl', u'aRoot', u'aPath', u'joined', u'aPathUrl'])
        if PyJsStrictEq(var.get(u'aRoot'),Js(u'')):
            var.put(u'aRoot', Js(u'.'))
        if PyJsStrictEq(var.get(u'aPath'),Js(u'')):
            var.put(u'aPath', Js(u'.'))
        var.put(u'aPathUrl', var.get(u'urlParse')(var.get(u'aPath')))
        var.put(u'aRootUrl', var.get(u'urlParse')(var.get(u'aRoot')))
        if var.get(u'aRootUrl'):
            var.put(u'aRoot', (var.get(u'aRootUrl').get(u'path') or Js(u'/')))
        if (var.get(u'aPathUrl') and var.get(u'aPathUrl').get(u'scheme').neg()):
            if var.get(u'aRootUrl'):
                var.get(u'aPathUrl').put(u'scheme', var.get(u'aRootUrl').get(u'scheme'))
            return var.get(u'urlGenerate')(var.get(u'aPathUrl'))
        if (var.get(u'aPathUrl') or var.get(u'aPath').callprop(u'match', var.get(u'dataUrlRegexp'))):
            return var.get(u'aPath')
        if ((var.get(u'aRootUrl') and var.get(u'aRootUrl').get(u'host').neg()) and var.get(u'aRootUrl').get(u'path').neg()):
            var.get(u'aRootUrl').put(u'host', var.get(u'aPath'))
            return var.get(u'urlGenerate')(var.get(u'aRootUrl'))
        var.put(u'joined', (var.get(u'aPath') if PyJsStrictEq(var.get(u'aPath').callprop(u'charAt', Js(0.0)),Js(u'/')) else var.get(u'normalize')(((var.get(u'aRoot').callprop(u'replace', JsRegExp(u'/\\/+$/'), Js(u''))+Js(u'/'))+var.get(u'aPath')))))
        if var.get(u'aRootUrl'):
            var.get(u'aRootUrl').put(u'path', var.get(u'joined'))
            return var.get(u'urlGenerate')(var.get(u'aRootUrl'))
        return var.get(u'joined')
    PyJsHoisted_join_.func_name = u'join'
    var.put(u'join', PyJsHoisted_join_)
    @Js
    def PyJsHoisted_relative_(aRoot, aPath, this, arguments, var=var):
        var = Scope({u'aRoot':aRoot, u'aPath':aPath, u'this':this, u'arguments':arguments}, var)
        var.registers([u'aRoot', u'index', u'aPath', u'level'])
        if PyJsStrictEq(var.get(u'aRoot'),Js(u'')):
            var.put(u'aRoot', Js(u'.'))
        var.put(u'aRoot', var.get(u'aRoot').callprop(u'replace', JsRegExp(u'/\\/$/'), Js(u'')))
        var.put(u'level', Js(0.0))
        while PyJsStrictNeq(var.get(u'aPath').callprop(u'indexOf', (var.get(u'aRoot')+Js(u'/'))),Js(0.0)):
            var.put(u'index', var.get(u'aRoot').callprop(u'lastIndexOf', Js(u'/')))
            if (var.get(u'index')<Js(0.0)):
                return var.get(u'aPath')
            var.put(u'aRoot', var.get(u'aRoot').callprop(u'slice', Js(0.0), var.get(u'index')))
            if var.get(u'aRoot').callprop(u'match', JsRegExp(u'/^([^\\/]+:\\/)?\\/*$/')):
                return var.get(u'aPath')
            var.put(u'level',Js(var.get(u'level').to_number())+Js(1))
        return (var.get(u'Array')((var.get(u'level')+Js(1.0))).callprop(u'join', Js(u'../'))+var.get(u'aPath').callprop(u'substr', (var.get(u'aRoot').get(u'length')+Js(1.0))))
    PyJsHoisted_relative_.func_name = u'relative'
    var.put(u'relative', PyJsHoisted_relative_)
    @Js
    def PyJsHoisted_fromSetString_(aStr, this, arguments, var=var):
        var = Scope({u'this':this, u'aStr':aStr, u'arguments':arguments}, var)
        var.registers([u'aStr'])
        if var.get(u'isProtoString')(var.get(u'aStr')):
            return var.get(u'aStr').callprop(u'slice', Js(1.0))
        return var.get(u'aStr')
    PyJsHoisted_fromSetString_.func_name = u'fromSetString'
    var.put(u'fromSetString', PyJsHoisted_fromSetString_)
    @Js
    def PyJsHoisted_urlParse_(aUrl, this, arguments, var=var):
        var = Scope({u'aUrl':aUrl, u'this':this, u'arguments':arguments}, var)
        var.registers([u'aUrl', u'match'])
        var.put(u'match', var.get(u'aUrl').callprop(u'match', var.get(u'urlRegexp')))
        if var.get(u'match').neg():
            return var.get(u"null")
        PyJs_Object_4178_ = Js({u'scheme':var.get(u'match').get(u'1'),u'auth':var.get(u'match').get(u'2'),u'host':var.get(u'match').get(u'3'),u'port':var.get(u'match').get(u'4'),u'path':var.get(u'match').get(u'5')})
        return PyJs_Object_4178_
    PyJsHoisted_urlParse_.func_name = u'urlParse'
    var.put(u'urlParse', PyJsHoisted_urlParse_)
    @Js
    def PyJsHoisted_identity_(s, this, arguments, var=var):
        var = Scope({u'this':this, u's':s, u'arguments':arguments}, var)
        var.registers([u's'])
        return var.get(u's')
    PyJsHoisted_identity_.func_name = u'identity'
    var.put(u'identity', PyJsHoisted_identity_)
    @Js
    def PyJsHoisted_compareByGeneratedPositionsInflated_(mappingA, mappingB, this, arguments, var=var):
        var = Scope({u'this':this, u'mappingB':mappingB, u'arguments':arguments, u'mappingA':mappingA}, var)
        var.registers([u'mappingA', u'mappingB', u'cmp'])
        var.put(u'cmp', (var.get(u'mappingA').get(u'generatedLine')-var.get(u'mappingB').get(u'generatedLine')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        var.put(u'cmp', (var.get(u'mappingA').get(u'generatedColumn')-var.get(u'mappingB').get(u'generatedColumn')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        var.put(u'cmp', var.get(u'strcmp')(var.get(u'mappingA').get(u'source'), var.get(u'mappingB').get(u'source')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        var.put(u'cmp', (var.get(u'mappingA').get(u'originalLine')-var.get(u'mappingB').get(u'originalLine')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        var.put(u'cmp', (var.get(u'mappingA').get(u'originalColumn')-var.get(u'mappingB').get(u'originalColumn')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        return var.get(u'strcmp')(var.get(u'mappingA').get(u'name'), var.get(u'mappingB').get(u'name'))
    PyJsHoisted_compareByGeneratedPositionsInflated_.func_name = u'compareByGeneratedPositionsInflated'
    var.put(u'compareByGeneratedPositionsInflated', PyJsHoisted_compareByGeneratedPositionsInflated_)
    @Js
    def PyJsHoisted_isProtoString_(s, this, arguments, var=var):
        var = Scope({u'this':this, u's':s, u'arguments':arguments}, var)
        var.registers([u'i', u'length', u's'])
        if var.get(u's').neg():
            return Js(False)
        var.put(u'length', var.get(u's').get(u'length'))
        if (var.get(u'length')<Js(9.0)):
            return Js(False)
        def PyJs_LONG_4182_(var=var):
            def PyJs_LONG_4181_(var=var):
                return ((((PyJsStrictNeq(var.get(u's').callprop(u'charCodeAt', (var.get(u'length')-Js(1.0))),Js(95.0)) or PyJsStrictNeq(var.get(u's').callprop(u'charCodeAt', (var.get(u'length')-Js(2.0))),Js(95.0))) or PyJsStrictNeq(var.get(u's').callprop(u'charCodeAt', (var.get(u'length')-Js(3.0))),Js(111.0))) or PyJsStrictNeq(var.get(u's').callprop(u'charCodeAt', (var.get(u'length')-Js(4.0))),Js(116.0))) or PyJsStrictNeq(var.get(u's').callprop(u'charCodeAt', (var.get(u'length')-Js(5.0))),Js(111.0)))
            return ((((PyJs_LONG_4181_() or PyJsStrictNeq(var.get(u's').callprop(u'charCodeAt', (var.get(u'length')-Js(6.0))),Js(114.0))) or PyJsStrictNeq(var.get(u's').callprop(u'charCodeAt', (var.get(u'length')-Js(7.0))),Js(112.0))) or PyJsStrictNeq(var.get(u's').callprop(u'charCodeAt', (var.get(u'length')-Js(8.0))),Js(95.0))) or PyJsStrictNeq(var.get(u's').callprop(u'charCodeAt', (var.get(u'length')-Js(9.0))),Js(95.0)))
        if PyJs_LONG_4182_():
            return Js(False)
        #for JS loop
        var.put(u'i', (var.get(u'length')-Js(10.0)))
        while (var.get(u'i')>=Js(0.0)):
            try:
                if PyJsStrictNeq(var.get(u's').callprop(u'charCodeAt', var.get(u'i')),Js(36.0)):
                    return Js(False)
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
        return var.get(u'true')
    PyJsHoisted_isProtoString_.func_name = u'isProtoString'
    var.put(u'isProtoString', PyJsHoisted_isProtoString_)
    @Js
    def PyJsHoisted_compareByOriginalPositions_(mappingA, mappingB, onlyCompareOriginal, this, arguments, var=var):
        var = Scope({u'this':this, u'onlyCompareOriginal':onlyCompareOriginal, u'mappingB':mappingB, u'arguments':arguments, u'mappingA':mappingA}, var)
        var.registers([u'onlyCompareOriginal', u'mappingA', u'mappingB', u'cmp'])
        var.put(u'cmp', (var.get(u'mappingA').get(u'source')-var.get(u'mappingB').get(u'source')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        var.put(u'cmp', (var.get(u'mappingA').get(u'originalLine')-var.get(u'mappingB').get(u'originalLine')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        var.put(u'cmp', (var.get(u'mappingA').get(u'originalColumn')-var.get(u'mappingB').get(u'originalColumn')))
        if (PyJsStrictNeq(var.get(u'cmp'),Js(0.0)) or var.get(u'onlyCompareOriginal')):
            return var.get(u'cmp')
        var.put(u'cmp', (var.get(u'mappingA').get(u'generatedColumn')-var.get(u'mappingB').get(u'generatedColumn')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        var.put(u'cmp', (var.get(u'mappingA').get(u'generatedLine')-var.get(u'mappingB').get(u'generatedLine')))
        if PyJsStrictNeq(var.get(u'cmp'),Js(0.0)):
            return var.get(u'cmp')
        return (var.get(u'mappingA').get(u'name')-var.get(u'mappingB').get(u'name'))
    PyJsHoisted_compareByOriginalPositions_.func_name = u'compareByOriginalPositions'
    var.put(u'compareByOriginalPositions', PyJsHoisted_compareByOriginalPositions_)
    @Js
    def PyJsHoisted_strcmp_(aStr1, aStr2, this, arguments, var=var):
        var = Scope({u'this':this, u'aStr2':aStr2, u'aStr1':aStr1, u'arguments':arguments}, var)
        var.registers([u'aStr2', u'aStr1'])
        if PyJsStrictEq(var.get(u'aStr1'),var.get(u'aStr2')):
            return Js(0.0)
        if (var.get(u'aStr1')>var.get(u'aStr2')):
            return Js(1.0)
        return (-Js(1.0))
    PyJsHoisted_strcmp_.func_name = u'strcmp'
    var.put(u'strcmp', PyJsHoisted_strcmp_)
    @Js
    def PyJsHoisted_getArg_(aArgs, aName, aDefaultValue, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'aDefaultValue':aDefaultValue, u'aName':aName, u'aArgs':aArgs}, var)
        var.registers([u'aDefaultValue', u'aName', u'aArgs'])
        if var.get(u'aArgs').contains(var.get(u'aName')):
            return var.get(u'aArgs').get(var.get(u'aName'))
        else:
            if PyJsStrictEq(var.get(u'arguments').get(u'length'),Js(3.0)):
                return var.get(u'aDefaultValue')
            else:
                PyJsTempException = JsToPyException(var.get(u'Error').create(((Js(u'"')+var.get(u'aName'))+Js(u'" is a required argument.'))))
                raise PyJsTempException
    PyJsHoisted_getArg_.func_name = u'getArg'
    var.put(u'getArg', PyJsHoisted_getArg_)
    @Js
    def PyJsHoisted_toSetString_(aStr, this, arguments, var=var):
        var = Scope({u'this':this, u'aStr':aStr, u'arguments':arguments}, var)
        var.registers([u'aStr'])
        if var.get(u'isProtoString')(var.get(u'aStr')):
            return (Js(u'$')+var.get(u'aStr'))
        return var.get(u'aStr')
    PyJsHoisted_toSetString_.func_name = u'toSetString'
    var.put(u'toSetString', PyJsHoisted_toSetString_)
    pass
    var.get(u'exports').put(u'getArg', var.get(u'getArg'))
    var.put(u'urlRegexp', JsRegExp(u'/^(?:([\\w+\\-.]+):)?\\/\\/(?:(\\w+:\\w+)@)?([\\w.]*)(?::(\\d+))?(\\S*)$/'))
    var.put(u'dataUrlRegexp', JsRegExp(u'/^data:.+\\,.+$/'))
    pass
    var.get(u'exports').put(u'urlParse', var.get(u'urlParse'))
    pass
    var.get(u'exports').put(u'urlGenerate', var.get(u'urlGenerate'))
    pass
    var.get(u'exports').put(u'normalize', var.get(u'normalize'))
    pass
    var.get(u'exports').put(u'join', var.get(u'join'))
    @Js
    def PyJs_anonymous_4179_(aPath, this, arguments, var=var):
        var = Scope({u'this':this, u'aPath':aPath, u'arguments':arguments}, var)
        var.registers([u'aPath'])
        return (PyJsStrictEq(var.get(u'aPath').callprop(u'charAt', Js(0.0)),Js(u'/')) or var.get(u'aPath').callprop(u'match', var.get(u'urlRegexp')).neg().neg())
    PyJs_anonymous_4179_._set_name(u'anonymous')
    var.get(u'exports').put(u'isAbsolute', PyJs_anonymous_4179_)
    pass
    var.get(u'exports').put(u'relative', var.get(u'relative'))
    @Js
    def PyJs_anonymous_4180_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'obj'])
        var.put(u'obj', var.get(u'Object').callprop(u'create', var.get(u"null")))
        return var.get(u'obj').contains(Js(u'__proto__')).neg()
    PyJs_anonymous_4180_._set_name(u'anonymous')
    var.put(u'supportsNullProto', PyJs_anonymous_4180_())
    pass
    pass
    var.get(u'exports').put(u'toSetString', (var.get(u'identity') if var.get(u'supportsNullProto') else var.get(u'toSetString')))
    pass
    var.get(u'exports').put(u'fromSetString', (var.get(u'identity') if var.get(u'supportsNullProto') else var.get(u'fromSetString')))
    pass
    pass
    var.get(u'exports').put(u'compareByOriginalPositions', var.get(u'compareByOriginalPositions'))
    pass
    var.get(u'exports').put(u'compareByGeneratedPositionsDeflated', var.get(u'compareByGeneratedPositionsDeflated'))
    pass
    pass
    var.get(u'exports').put(u'compareByGeneratedPositionsInflated', var.get(u'compareByGeneratedPositionsInflated'))
PyJs_anonymous_4177_._set_name(u'anonymous')
PyJs_Object_4183_ = Js({})
@Js
def PyJs_anonymous_4184_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'exports').put(u'SourceMapGenerator', var.get(u'require')(Js(u'./lib/source-map-generator')).get(u'SourceMapGenerator'))
    var.get(u'exports').put(u'SourceMapConsumer', var.get(u'require')(Js(u'./lib/source-map-consumer')).get(u'SourceMapConsumer'))
    var.get(u'exports').put(u'SourceNode', var.get(u'require')(Js(u'./lib/source-node')).get(u'SourceNode'))
PyJs_anonymous_4184_._set_name(u'anonymous')
PyJs_Object_4185_ = Js({u'./lib/source-map-consumer':Js(515.0),u'./lib/source-map-generator':Js(516.0),u'./lib/source-node':Js(517.0)})
@Js
def PyJs_anonymous_4186_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'ansiRegex', u'exports', u'module'])
    Js(u'use strict')
    var.put(u'ansiRegex', var.get(u'require')(Js(u'ansi-regex'))())
    @Js
    def PyJs_anonymous_4187_(str, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
        var.registers([u'str'])
        return (var.get(u'str').callprop(u'replace', var.get(u'ansiRegex'), Js(u'')) if PyJsStrictEq(var.get(u'str',throw=False).typeof(),Js(u'string')) else var.get(u'str'))
    PyJs_anonymous_4187_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', PyJs_anonymous_4187_)
PyJs_anonymous_4186_._set_name(u'anonymous')
PyJs_Object_4188_ = Js({u'ansi-regex':Js(2.0)})
@Js
def PyJs_anonymous_4189_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_4190_(process, this, arguments, var=var):
        var = Scope({u'process':process, u'this':this, u'arguments':arguments}, var)
        var.registers([u'process', u'hasFlag', u'terminator', u'argv'])
        Js(u'use strict')
        var.put(u'argv', var.get(u'process').get(u'argv'))
        var.put(u'terminator', var.get(u'argv').callprop(u'indexOf', Js(u'--')))
        @Js
        def PyJs_anonymous_4191_(flag, this, arguments, var=var):
            var = Scope({u'this':this, u'flag':flag, u'arguments':arguments}, var)
            var.registers([u'flag', u'pos'])
            var.put(u'flag', (Js(u'--')+var.get(u'flag')))
            var.put(u'pos', var.get(u'argv').callprop(u'indexOf', var.get(u'flag')))
            return (PyJsStrictNeq(var.get(u'pos'),(-Js(1.0))) and ((var.get(u'pos')<var.get(u'terminator')) if PyJsStrictNeq(var.get(u'terminator'),(-Js(1.0))) else var.get(u'true')))
        PyJs_anonymous_4191_._set_name(u'anonymous')
        var.put(u'hasFlag', PyJs_anonymous_4191_)
        @Js
        def PyJs_anonymous_4192_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            if var.get(u'process').get(u'env').contains(Js(u'FORCE_COLOR')):
                return var.get(u'true')
            if ((var.get(u'hasFlag')(Js(u'no-color')) or var.get(u'hasFlag')(Js(u'no-colors'))) or var.get(u'hasFlag')(Js(u'color=false'))):
                return Js(False)
            if (((var.get(u'hasFlag')(Js(u'color')) or var.get(u'hasFlag')(Js(u'colors'))) or var.get(u'hasFlag')(Js(u'color=true'))) or var.get(u'hasFlag')(Js(u'color=always'))):
                return var.get(u'true')
            if (var.get(u'process').get(u'stdout') and var.get(u'process').get(u'stdout').get(u'isTTY').neg()):
                return Js(False)
            if PyJsStrictEq(var.get(u'process').get(u'platform'),Js(u'win32')):
                return var.get(u'true')
            if var.get(u'process').get(u'env').contains(Js(u'COLORTERM')):
                return var.get(u'true')
            if PyJsStrictEq(var.get(u'process').get(u'env').get(u'TERM'),Js(u'dumb')):
                return Js(False)
            if JsRegExp(u'/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i').callprop(u'test', var.get(u'process').get(u'env').get(u'TERM')):
                return var.get(u'true')
            return Js(False)
        PyJs_anonymous_4192_._set_name(u'anonymous')
        var.get(u'module').put(u'exports', PyJs_anonymous_4192_())
    PyJs_anonymous_4190_._set_name(u'anonymous')
    PyJs_anonymous_4190_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')))
PyJs_anonymous_4189_._set_name(u'anonymous')
PyJs_Object_4193_ = Js({u'_process':Js(531.0)})
@Js
def PyJs_anonymous_4194_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    Js(u'use strict')
    @Js
    def PyJs_toFastProperties_4195_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments, u'toFastProperties':PyJs_toFastProperties_4195_}, var)
        var.registers([u'obj', u'f'])
        @Js
        def PyJsHoisted_f_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            pass
        PyJsHoisted_f_.func_name = u'f'
        var.put(u'f', PyJsHoisted_f_)
        pass
        var.get(u'f').put(u'prototype', var.get(u'obj'))
        var.get(u'f').create()
        return var.get('undefined')
        var.get(u'eval')(var.get(u'obj'))
    PyJs_toFastProperties_4195_._set_name(u'toFastProperties')
    var.get(u'module').put(u'exports', PyJs_toFastProperties_4195_)
PyJs_anonymous_4194_._set_name(u'anonymous')
PyJs_Object_4196_ = Js({})
@Js
def PyJs_anonymous_4197_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    var.get(u'arguments').get(u'4').get(u'212').get(u'0').callprop(u'apply', var.get(u'exports'), var.get(u'arguments'))
PyJs_anonymous_4197_._set_name(u'anonymous')
PyJs_Object_4198_ = Js({u'dup':Js(212.0)})
@Js
def PyJs_anonymous_4199_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'pSlice', u'replacer', u'_throws', u'ok', u'_deepEqual', u'truncate', u'assert', u'expectedException', u'exports', u'hasOwn', u'util', u'getMessage', u'module', u'objectKeys', u'fail', u'objEquiv', u'require', u'isArguments'])
    @Js
    def PyJsHoisted_replacer_(key, value, this, arguments, var=var):
        var = Scope({u'this':this, u'value':value, u'key':key, u'arguments':arguments}, var)
        var.registers([u'value', u'key'])
        if var.get(u'util').callprop(u'isUndefined', var.get(u'value')):
            return (Js(u'')+var.get(u'value'))
        if (var.get(u'util').callprop(u'isNumber', var.get(u'value')) and var.get(u'isFinite')(var.get(u'value')).neg()):
            return var.get(u'value').callprop(u'toString')
        if (var.get(u'util').callprop(u'isFunction', var.get(u'value')) or var.get(u'util').callprop(u'isRegExp', var.get(u'value'))):
            return var.get(u'value').callprop(u'toString')
        return var.get(u'value')
    PyJsHoisted_replacer_.func_name = u'replacer'
    var.put(u'replacer', PyJsHoisted_replacer_)
    @Js
    def PyJsHoisted__throws_(shouldThrow, block, expected, message, this, arguments, var=var):
        var = Scope({u'this':this, u'shouldThrow':shouldThrow, u'arguments':arguments, u'expected':expected, u'message':message, u'block':block}, var)
        var.registers([u'expected', u'shouldThrow', u'message', u'actual', u'block'])
        pass
        if var.get(u'util').callprop(u'isString', var.get(u'expected')):
            var.put(u'message', var.get(u'expected'))
            var.put(u'expected', var.get(u"null"))
        try:
            var.get(u'block')()
        except PyJsException as PyJsTempException:
            PyJsHolder_65_5622760 = var.own.get(u'e')
            var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
            try:
                var.put(u'actual', var.get(u'e'))
            finally:
                if PyJsHolder_65_5622760 is not None:
                    var.own[u'e'] = PyJsHolder_65_5622760
                else:
                    del var.own[u'e']
                del PyJsHolder_65_5622760
        var.put(u'message', ((((Js(u' (')+var.get(u'expected').get(u'name'))+Js(u').')) if (var.get(u'expected') and var.get(u'expected').get(u'name')) else Js(u'.'))+((Js(u' ')+var.get(u'message')) if var.get(u'message') else Js(u'.'))))
        if (var.get(u'shouldThrow') and var.get(u'actual').neg()):
            var.get(u'fail')(var.get(u'actual'), var.get(u'expected'), (Js(u'Missing expected exception')+var.get(u'message')))
        if (var.get(u'shouldThrow').neg() and var.get(u'expectedException')(var.get(u'actual'), var.get(u'expected'))):
            var.get(u'fail')(var.get(u'actual'), var.get(u'expected'), (Js(u'Got unwanted exception')+var.get(u'message')))
        if ((((var.get(u'shouldThrow') and var.get(u'actual')) and var.get(u'expected')) and var.get(u'expectedException')(var.get(u'actual'), var.get(u'expected')).neg()) or (var.get(u'shouldThrow').neg() and var.get(u'actual'))):
            PyJsTempException = JsToPyException(var.get(u'actual'))
            raise PyJsTempException
    PyJsHoisted__throws_.func_name = u'_throws'
    var.put(u'_throws', PyJsHoisted__throws_)
    @Js
    def PyJsHoisted_ok_(value, message, this, arguments, var=var):
        var = Scope({u'this':this, u'message':message, u'arguments':arguments, u'value':value}, var)
        var.registers([u'message', u'value'])
        if var.get(u'value').neg():
            var.get(u'fail')(var.get(u'value'), var.get(u'true'), var.get(u'message'), Js(u'=='), var.get(u'assert').get(u'ok'))
    PyJsHoisted_ok_.func_name = u'ok'
    var.put(u'ok', PyJsHoisted_ok_)
    @Js
    def PyJsHoisted__deepEqual_(actual, expected, this, arguments, var=var):
        var = Scope({u'expected':expected, u'this':this, u'actual':actual, u'arguments':arguments}, var)
        var.registers([u'i', u'expected', u'actual'])
        if PyJsStrictEq(var.get(u'actual'),var.get(u'expected')):
            return var.get(u'true')
        else:
            if (var.get(u'util').callprop(u'isBuffer', var.get(u'actual')) and var.get(u'util').callprop(u'isBuffer', var.get(u'expected'))):
                if (var.get(u'actual').get(u'length')!=var.get(u'expected').get(u'length')):
                    return Js(False)
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'actual').get(u'length')):
                    try:
                        if PyJsStrictNeq(var.get(u'actual').get(var.get(u'i')),var.get(u'expected').get(var.get(u'i'))):
                            return Js(False)
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                return var.get(u'true')
            else:
                if (var.get(u'util').callprop(u'isDate', var.get(u'actual')) and var.get(u'util').callprop(u'isDate', var.get(u'expected'))):
                    return PyJsStrictEq(var.get(u'actual').callprop(u'getTime'),var.get(u'expected').callprop(u'getTime'))
                else:
                    if (var.get(u'util').callprop(u'isRegExp', var.get(u'actual')) and var.get(u'util').callprop(u'isRegExp', var.get(u'expected'))):
                        def PyJs_LONG_4205_(var=var):
                            return ((((PyJsStrictEq(var.get(u'actual').get(u'source'),var.get(u'expected').get(u'source')) and PyJsStrictEq(var.get(u'actual').get(u'global'),var.get(u'expected').get(u'global'))) and PyJsStrictEq(var.get(u'actual').get(u'multiline'),var.get(u'expected').get(u'multiline'))) and PyJsStrictEq(var.get(u'actual').get(u'lastIndex'),var.get(u'expected').get(u'lastIndex'))) and PyJsStrictEq(var.get(u'actual').get(u'ignoreCase'),var.get(u'expected').get(u'ignoreCase')))
                        return PyJs_LONG_4205_()
                    else:
                        if (var.get(u'util').callprop(u'isObject', var.get(u'actual')).neg() and var.get(u'util').callprop(u'isObject', var.get(u'expected')).neg()):
                            return (var.get(u'actual')==var.get(u'expected'))
                        else:
                            return var.get(u'objEquiv')(var.get(u'actual'), var.get(u'expected'))
    PyJsHoisted__deepEqual_.func_name = u'_deepEqual'
    var.put(u'_deepEqual', PyJsHoisted__deepEqual_)
    @Js
    def PyJsHoisted_truncate_(s, n, this, arguments, var=var):
        var = Scope({u'this':this, u's':s, u'arguments':arguments, u'n':n}, var)
        var.registers([u's', u'n'])
        if var.get(u'util').callprop(u'isString', var.get(u's')):
            return (var.get(u's') if (var.get(u's').get(u'length')<var.get(u'n')) else var.get(u's').callprop(u'slice', Js(0.0), var.get(u'n')))
        else:
            return var.get(u's')
    PyJsHoisted_truncate_.func_name = u'truncate'
    var.put(u'truncate', PyJsHoisted_truncate_)
    @Js
    def PyJsHoisted_expectedException_(actual, expected, this, arguments, var=var):
        var = Scope({u'expected':expected, u'this':this, u'actual':actual, u'arguments':arguments}, var)
        var.registers([u'expected', u'actual'])
        if (var.get(u'actual').neg() or var.get(u'expected').neg()):
            return Js(False)
        if (var.get(u'Object').get(u'prototype').get(u'toString').callprop(u'call', var.get(u'expected'))==Js(u'[object RegExp]')):
            return var.get(u'expected').callprop(u'test', var.get(u'actual'))
        else:
            if var.get(u'actual').instanceof(var.get(u'expected')):
                return var.get(u'true')
            else:
                PyJs_Object_4209_ = Js({})
                if PyJsStrictEq(var.get(u'expected').callprop(u'call', PyJs_Object_4209_, var.get(u'actual')),var.get(u'true')):
                    return var.get(u'true')
        return Js(False)
    PyJsHoisted_expectedException_.func_name = u'expectedException'
    var.put(u'expectedException', PyJsHoisted_expectedException_)
    @Js
    def PyJsHoisted_getMessage_(self, this, arguments, var=var):
        var = Scope({u'this':this, u'self':self, u'arguments':arguments}, var)
        var.registers([u'self'])
        return ((((var.get(u'truncate')(var.get(u'JSON').callprop(u'stringify', var.get(u'self').get(u'actual'), var.get(u'replacer')), Js(128.0))+Js(u' '))+var.get(u'self').get(u'operator'))+Js(u' '))+var.get(u'truncate')(var.get(u'JSON').callprop(u'stringify', var.get(u'self').get(u'expected'), var.get(u'replacer')), Js(128.0)))
    PyJsHoisted_getMessage_.func_name = u'getMessage'
    var.put(u'getMessage', PyJsHoisted_getMessage_)
    @Js
    def PyJsHoisted_fail_(actual, expected, message, operator, stackStartFunction, this, arguments, var=var):
        var = Scope({u'operator':operator, u'actual':actual, u'arguments':arguments, u'stackStartFunction':stackStartFunction, u'expected':expected, u'message':message, u'this':this}, var)
        var.registers([u'expected', u'operator', u'message', u'actual', u'stackStartFunction'])
        PyJs_Object_4201_ = Js({u'message':var.get(u'message'),u'actual':var.get(u'actual'),u'expected':var.get(u'expected'),u'operator':var.get(u'operator'),u'stackStartFunction':var.get(u'stackStartFunction')})
        PyJsTempException = JsToPyException(var.get(u'assert').get(u'AssertionError').create(PyJs_Object_4201_))
        raise PyJsTempException
    PyJsHoisted_fail_.func_name = u'fail'
    var.put(u'fail', PyJsHoisted_fail_)
    @Js
    def PyJsHoisted_objEquiv_(a, b, this, arguments, var=var):
        var = Scope({u'a':a, u'this':this, u'b':b, u'arguments':arguments}, var)
        var.registers([u'a', u'aIsArgs', u'ka', u'b', u'kb', u'i', u'key', u'bIsArgs'])
        if (var.get(u'util').callprop(u'isNullOrUndefined', var.get(u'a')) or var.get(u'util').callprop(u'isNullOrUndefined', var.get(u'b'))):
            return Js(False)
        if PyJsStrictNeq(var.get(u'a').get(u'prototype'),var.get(u'b').get(u'prototype')):
            return Js(False)
        if (var.get(u'util').callprop(u'isPrimitive', var.get(u'a')) or var.get(u'util').callprop(u'isPrimitive', var.get(u'b'))):
            return PyJsStrictEq(var.get(u'a'),var.get(u'b'))
        var.put(u'aIsArgs', var.get(u'isArguments')(var.get(u'a')))
        var.put(u'bIsArgs', var.get(u'isArguments')(var.get(u'b')))
        if ((var.get(u'aIsArgs') and var.get(u'bIsArgs').neg()) or (var.get(u'aIsArgs').neg() and var.get(u'bIsArgs'))):
            return Js(False)
        if var.get(u'aIsArgs'):
            var.put(u'a', var.get(u'pSlice').callprop(u'call', var.get(u'a')))
            var.put(u'b', var.get(u'pSlice').callprop(u'call', var.get(u'b')))
            return var.get(u'_deepEqual')(var.get(u'a'), var.get(u'b'))
        var.put(u'ka', var.get(u'objectKeys')(var.get(u'a')))
        var.put(u'kb', var.get(u'objectKeys')(var.get(u'b')))
        if (var.get(u'ka').get(u'length')!=var.get(u'kb').get(u'length')):
            return Js(False)
        var.get(u'ka').callprop(u'sort')
        var.get(u'kb').callprop(u'sort')
        #for JS loop
        var.put(u'i', (var.get(u'ka').get(u'length')-Js(1.0)))
        while (var.get(u'i')>=Js(0.0)):
            try:
                if (var.get(u'ka').get(var.get(u'i'))!=var.get(u'kb').get(var.get(u'i'))):
                    return Js(False)
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
        #for JS loop
        var.put(u'i', (var.get(u'ka').get(u'length')-Js(1.0)))
        while (var.get(u'i')>=Js(0.0)):
            try:
                var.put(u'key', var.get(u'ka').get(var.get(u'i')))
                if var.get(u'_deepEqual')(var.get(u'a').get(var.get(u'key')), var.get(u'b').get(var.get(u'key'))).neg():
                    return Js(False)
            finally:
                    (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
        return var.get(u'true')
    PyJsHoisted_objEquiv_.func_name = u'objEquiv'
    var.put(u'objEquiv', PyJsHoisted_objEquiv_)
    @Js
    def PyJsHoisted_isArguments_(object, this, arguments, var=var):
        var = Scope({u'this':this, u'object':object, u'arguments':arguments}, var)
        var.registers([u'object'])
        return (var.get(u'Object').get(u'prototype').get(u'toString').callprop(u'call', var.get(u'object'))==Js(u'[object Arguments]'))
    PyJsHoisted_isArguments_.func_name = u'isArguments'
    var.put(u'isArguments', PyJsHoisted_isArguments_)
    var.put(u'util', var.get(u'require')(Js(u'util/')))
    var.put(u'pSlice', var.get(u'Array').get(u'prototype').get(u'slice'))
    var.put(u'hasOwn', var.get(u'Object').get(u'prototype').get(u'hasOwnProperty'))
    var.put(u'assert', var.get(u'module').put(u'exports', var.get(u'ok')))
    @Js
    def PyJs_AssertionError_4200_(options, this, arguments, var=var):
        var = Scope({u'this':this, u'AssertionError':PyJs_AssertionError_4200_, u'options':options, u'arguments':arguments}, var)
        var.registers([u'next_line', u'err', u'idx', u'stackStartFunction', u'fn_name', u'options', u'out'])
        var.get(u"this").put(u'name', Js(u'AssertionError'))
        var.get(u"this").put(u'actual', var.get(u'options').get(u'actual'))
        var.get(u"this").put(u'expected', var.get(u'options').get(u'expected'))
        var.get(u"this").put(u'operator', var.get(u'options').get(u'operator'))
        if var.get(u'options').get(u'message'):
            var.get(u"this").put(u'message', var.get(u'options').get(u'message'))
            var.get(u"this").put(u'generatedMessage', Js(False))
        else:
            var.get(u"this").put(u'message', var.get(u'getMessage')(var.get(u"this")))
            var.get(u"this").put(u'generatedMessage', var.get(u'true'))
        var.put(u'stackStartFunction', (var.get(u'options').get(u'stackStartFunction') or var.get(u'fail')))
        if var.get(u'Error').get(u'captureStackTrace'):
            var.get(u'Error').callprop(u'captureStackTrace', var.get(u"this"), var.get(u'stackStartFunction'))
        else:
            var.put(u'err', var.get(u'Error').create())
            if var.get(u'err').get(u'stack'):
                var.put(u'out', var.get(u'err').get(u'stack'))
                var.put(u'fn_name', var.get(u'stackStartFunction').get(u'name'))
                var.put(u'idx', var.get(u'out').callprop(u'indexOf', (Js(u'\n')+var.get(u'fn_name'))))
                if (var.get(u'idx')>=Js(0.0)):
                    var.put(u'next_line', var.get(u'out').callprop(u'indexOf', Js(u'\n'), (var.get(u'idx')+Js(1.0))))
                    var.put(u'out', var.get(u'out').callprop(u'substring', (var.get(u'next_line')+Js(1.0))))
                var.get(u"this").put(u'stack', var.get(u'out'))
    PyJs_AssertionError_4200_._set_name(u'AssertionError')
    var.get(u'assert').put(u'AssertionError', PyJs_AssertionError_4200_)
    var.get(u'util').callprop(u'inherits', var.get(u'assert').get(u'AssertionError'), var.get(u'Error'))
    pass
    pass
    pass
    pass
    var.get(u'assert').put(u'fail', var.get(u'fail'))
    pass
    var.get(u'assert').put(u'ok', var.get(u'ok'))
    @Js
    def PyJs_equal_4202_(actual, expected, message, this, arguments, var=var):
        var = Scope({u'actual':actual, u'this':this, u'equal':PyJs_equal_4202_, u'arguments':arguments, u'expected':expected, u'message':message}, var)
        var.registers([u'expected', u'message', u'actual'])
        if (var.get(u'actual')!=var.get(u'expected')):
            var.get(u'fail')(var.get(u'actual'), var.get(u'expected'), var.get(u'message'), Js(u'=='), var.get(u'assert').get(u'equal'))
    PyJs_equal_4202_._set_name(u'equal')
    var.get(u'assert').put(u'equal', PyJs_equal_4202_)
    @Js
    def PyJs_notEqual_4203_(actual, expected, message, this, arguments, var=var):
        var = Scope({u'notEqual':PyJs_notEqual_4203_, u'actual':actual, u'this':this, u'arguments':arguments, u'expected':expected, u'message':message}, var)
        var.registers([u'expected', u'message', u'actual'])
        if (var.get(u'actual')==var.get(u'expected')):
            var.get(u'fail')(var.get(u'actual'), var.get(u'expected'), var.get(u'message'), Js(u'!='), var.get(u'assert').get(u'notEqual'))
    PyJs_notEqual_4203_._set_name(u'notEqual')
    var.get(u'assert').put(u'notEqual', PyJs_notEqual_4203_)
    @Js
    def PyJs_deepEqual_4204_(actual, expected, message, this, arguments, var=var):
        var = Scope({u'actual':actual, u'this':this, u'arguments':arguments, u'expected':expected, u'message':message, u'deepEqual':PyJs_deepEqual_4204_}, var)
        var.registers([u'expected', u'message', u'actual'])
        if var.get(u'_deepEqual')(var.get(u'actual'), var.get(u'expected')).neg():
            var.get(u'fail')(var.get(u'actual'), var.get(u'expected'), var.get(u'message'), Js(u'deepEqual'), var.get(u'assert').get(u'deepEqual'))
    PyJs_deepEqual_4204_._set_name(u'deepEqual')
    var.get(u'assert').put(u'deepEqual', PyJs_deepEqual_4204_)
    pass
    pass
    pass
    @Js
    def PyJs_notDeepEqual_4206_(actual, expected, message, this, arguments, var=var):
        var = Scope({u'actual':actual, u'this':this, u'notDeepEqual':PyJs_notDeepEqual_4206_, u'arguments':arguments, u'expected':expected, u'message':message}, var)
        var.registers([u'expected', u'message', u'actual'])
        if var.get(u'_deepEqual')(var.get(u'actual'), var.get(u'expected')):
            var.get(u'fail')(var.get(u'actual'), var.get(u'expected'), var.get(u'message'), Js(u'notDeepEqual'), var.get(u'assert').get(u'notDeepEqual'))
    PyJs_notDeepEqual_4206_._set_name(u'notDeepEqual')
    var.get(u'assert').put(u'notDeepEqual', PyJs_notDeepEqual_4206_)
    @Js
    def PyJs_strictEqual_4207_(actual, expected, message, this, arguments, var=var):
        var = Scope({u'actual':actual, u'this':this, u'arguments':arguments, u'expected':expected, u'message':message, u'strictEqual':PyJs_strictEqual_4207_}, var)
        var.registers([u'expected', u'message', u'actual'])
        if PyJsStrictNeq(var.get(u'actual'),var.get(u'expected')):
            var.get(u'fail')(var.get(u'actual'), var.get(u'expected'), var.get(u'message'), Js(u'==='), var.get(u'assert').get(u'strictEqual'))
    PyJs_strictEqual_4207_._set_name(u'strictEqual')
    var.get(u'assert').put(u'strictEqual', PyJs_strictEqual_4207_)
    @Js
    def PyJs_notStrictEqual_4208_(actual, expected, message, this, arguments, var=var):
        var = Scope({u'actual':actual, u'this':this, u'arguments':arguments, u'notStrictEqual':PyJs_notStrictEqual_4208_, u'expected':expected, u'message':message}, var)
        var.registers([u'expected', u'message', u'actual'])
        if PyJsStrictEq(var.get(u'actual'),var.get(u'expected')):
            var.get(u'fail')(var.get(u'actual'), var.get(u'expected'), var.get(u'message'), Js(u'!=='), var.get(u'assert').get(u'notStrictEqual'))
    PyJs_notStrictEqual_4208_._set_name(u'notStrictEqual')
    var.get(u'assert').put(u'notStrictEqual', PyJs_notStrictEqual_4208_)
    pass
    pass
    @Js
    def PyJs_anonymous_4210_(block, error, message, this, arguments, var=var):
        var = Scope({u'this':this, u'message':message, u'arguments':arguments, u'block':block, u'error':error}, var)
        var.registers([u'message', u'block', u'error'])
        var.get(u'_throws').callprop(u'apply', var.get(u"this"), Js([var.get(u'true')]).callprop(u'concat', var.get(u'pSlice').callprop(u'call', var.get(u'arguments'))))
    PyJs_anonymous_4210_._set_name(u'anonymous')
    var.get(u'assert').put(u'throws', PyJs_anonymous_4210_)
    @Js
    def PyJs_anonymous_4211_(block, message, this, arguments, var=var):
        var = Scope({u'this':this, u'message':message, u'arguments':arguments, u'block':block}, var)
        var.registers([u'message', u'block'])
        var.get(u'_throws').callprop(u'apply', var.get(u"this"), Js([Js(False)]).callprop(u'concat', var.get(u'pSlice').callprop(u'call', var.get(u'arguments'))))
    PyJs_anonymous_4211_._set_name(u'anonymous')
    var.get(u'assert').put(u'doesNotThrow', PyJs_anonymous_4211_)
    @Js
    def PyJs_anonymous_4212_(err, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'err':err}, var)
        var.registers([u'err'])
        if var.get(u'err'):
            PyJsTempException = JsToPyException(var.get(u'err'))
            raise PyJsTempException
    PyJs_anonymous_4212_._set_name(u'anonymous')
    var.get(u'assert').put(u'ifError', PyJs_anonymous_4212_)
    @Js
    def PyJs_anonymous_4213_(obj, this, arguments, var=var):
        var = Scope({u'this':this, u'obj':obj, u'arguments':arguments}, var)
        var.registers([u'keys', u'obj', u'key'])
        var.put(u'keys', Js([]))
        for PyJsTemp in var.get(u'obj'):
            var.put(u'key', PyJsTemp)
            if var.get(u'hasOwn').callprop(u'call', var.get(u'obj'), var.get(u'key')):
                var.get(u'keys').callprop(u'push', var.get(u'key'))
        return var.get(u'keys')
    PyJs_anonymous_4213_._set_name(u'anonymous')
    var.put(u'objectKeys', (var.get(u'Object').get(u'keys') or PyJs_anonymous_4213_))
PyJs_anonymous_4199_._set_name(u'anonymous')
PyJs_Object_4214_ = Js({u'util/':Js(534.0)})
@Js
def PyJs_anonymous_4215_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    PyJs_Object_4216_ = Js({})
    @Js
    def PyJs_anonymous_4217_(PyJsArg_676c6f62616c_, this, arguments, var=var):
        var = Scope({u'this':this, u'global':PyJsArg_676c6f62616c_, u'arguments':arguments}, var)
        var.registers([u'binarySlice', u'asciiWrite', u'objectWriteUInt16', u'ieee754', u'fromBuffer', u'base64Write', u'fromObject', u'fromString', u'global', u'fromArrayBuffer', u'fromJsonObject', u'asciiToBytes', u'hexSlice', u'slowToString', u'byteLength', u'checked', u'Buffer', u'base64', u'base64ToBytes', u'kMaxLength', u'writeFloat', u'utf8Slice', u'allocate', u'checkInt', u'objectWriteUInt32', u'INVALID_BASE64_RE', u'toHex', u'isArray', u'fromNumber', u'SlowBuffer', u'hexWrite', u'fromArrayLike', u'checkIEEE754', u'utf16leToBytes', u'ucs2Write', u'base64clean', u'asciiSlice', u'checkOffset', u'decodeCodePointsArray', u'fromArray', u'binaryWrite', u'fromTypedArray', u'rootParent', u'utf16leSlice', u'typedArraySupport', u'utf8Write', u'utf8ToBytes', u'writeDouble', u'MAX_ARGUMENTS_LENGTH', u'blitBuffer', u'base64Slice', u'stringtrim'])
        @Js
        def PyJsHoisted_binarySlice_(buf, start, end, this, arguments, var=var):
            var = Scope({u'this':this, u'start':start, u'end':end, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'i', u'start', u'end', u'buf', u'ret'])
            var.put(u'ret', Js(u''))
            var.put(u'end', var.get(u'Math').callprop(u'min', var.get(u'buf').get(u'length'), var.get(u'end')))
            #for JS loop
            var.put(u'i', var.get(u'start'))
            while (var.get(u'i')<var.get(u'end')):
                try:
                    var.put(u'ret', var.get(u'String').callprop(u'fromCharCode', var.get(u'buf').get(var.get(u'i'))), u'+')
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'ret')
        PyJsHoisted_binarySlice_.func_name = u'binarySlice'
        var.put(u'binarySlice', PyJsHoisted_binarySlice_)
        @Js
        def PyJsHoisted_objectWriteUInt16_(buf, value, offset, littleEndian, this, arguments, var=var):
            var = Scope({u'arguments':arguments, u'offset':offset, u'this':this, u'littleEndian':littleEndian, u'buf':buf, u'value':value}, var)
            var.registers([u'i', u'j', u'value', u'offset', u'littleEndian', u'buf'])
            if (var.get(u'value')<Js(0.0)):
                var.put(u'value', ((Js(65535)+var.get(u'value'))+Js(1.0)))
            #for JS loop
            var.put(u'i', Js(0.0))
            var.put(u'j', var.get(u'Math').callprop(u'min', (var.get(u'buf').get(u'length')-var.get(u'offset')), Js(2.0)))
            while (var.get(u'i')<var.get(u'j')):
                try:
                    var.get(u'buf').put((var.get(u'offset')+var.get(u'i')), PyJsBshift((var.get(u'value')&(Js(255)<<(Js(8.0)*(var.get(u'i') if var.get(u'littleEndian') else (Js(1.0)-var.get(u'i')))))),((var.get(u'i') if var.get(u'littleEndian') else (Js(1.0)-var.get(u'i')))*Js(8.0))))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        PyJsHoisted_objectWriteUInt16_.func_name = u'objectWriteUInt16'
        var.put(u'objectWriteUInt16', PyJsHoisted_objectWriteUInt16_)
        @Js
        def PyJsHoisted_hexSlice_(buf, start, end, this, arguments, var=var):
            var = Scope({u'this':this, u'start':start, u'end':end, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'end', u'i', u'len', u'start', u'buf', u'out'])
            var.put(u'len', var.get(u'buf').get(u'length'))
            if (var.get(u'start').neg() or (var.get(u'start')<Js(0.0))):
                var.put(u'start', Js(0.0))
            if ((var.get(u'end').neg() or (var.get(u'end')<Js(0.0))) or (var.get(u'end')>var.get(u'len'))):
                var.put(u'end', var.get(u'len'))
            var.put(u'out', Js(u''))
            #for JS loop
            var.put(u'i', var.get(u'start'))
            while (var.get(u'i')<var.get(u'end')):
                try:
                    var.put(u'out', var.get(u'toHex')(var.get(u'buf').get(var.get(u'i'))), u'+')
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'out')
        PyJsHoisted_hexSlice_.func_name = u'hexSlice'
        var.put(u'hexSlice', PyJsHoisted_hexSlice_)
        @Js
        def PyJsHoisted_fromBuffer_(that, buffer, this, arguments, var=var):
            var = Scope({u'buffer':buffer, u'this':this, u'arguments':arguments, u'that':that}, var)
            var.registers([u'buffer', u'length', u'that'])
            var.put(u'length', (var.get(u'checked')(var.get(u'buffer').get(u'length'))|Js(0.0)))
            var.put(u'that', var.get(u'allocate')(var.get(u'that'), var.get(u'length')))
            var.get(u'buffer').callprop(u'copy', var.get(u'that'), Js(0.0), Js(0.0), var.get(u'length'))
            return var.get(u'that')
        PyJsHoisted_fromBuffer_.func_name = u'fromBuffer'
        var.put(u'fromBuffer', PyJsHoisted_fromBuffer_)
        @Js
        def PyJsHoisted_base64Write_(buf, string, offset, length, this, arguments, var=var):
            var = Scope({u'length':length, u'string':string, u'offset':offset, u'this':this, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'length', u'buf', u'string', u'offset'])
            return var.get(u'blitBuffer')(var.get(u'base64ToBytes')(var.get(u'string')), var.get(u'buf'), var.get(u'offset'), var.get(u'length'))
        PyJsHoisted_base64Write_.func_name = u'base64Write'
        var.put(u'base64Write', PyJsHoisted_base64Write_)
        @Js
        def PyJsHoisted_fromObject_(that, object, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments, u'that':that}, var)
            var.registers([u'object', u'that'])
            if var.get(u'Buffer').callprop(u'isBuffer', var.get(u'object')):
                return var.get(u'fromBuffer')(var.get(u'that'), var.get(u'object'))
            if var.get(u'isArray')(var.get(u'object')):
                return var.get(u'fromArray')(var.get(u'that'), var.get(u'object'))
            if (var.get(u'object')==var.get(u"null")):
                PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'must start with number, buffer, array or string')))
                raise PyJsTempException
            if PyJsStrictNeq(var.get(u'ArrayBuffer',throw=False).typeof(),Js(u'undefined')):
                if var.get(u'object').get(u'buffer').instanceof(var.get(u'ArrayBuffer')):
                    return var.get(u'fromTypedArray')(var.get(u'that'), var.get(u'object'))
                if var.get(u'object').instanceof(var.get(u'ArrayBuffer')):
                    return var.get(u'fromArrayBuffer')(var.get(u'that'), var.get(u'object'))
            if var.get(u'object').get(u'length'):
                return var.get(u'fromArrayLike')(var.get(u'that'), var.get(u'object'))
            return var.get(u'fromJsonObject')(var.get(u'that'), var.get(u'object'))
        PyJsHoisted_fromObject_.func_name = u'fromObject'
        var.put(u'fromObject', PyJsHoisted_fromObject_)
        @Js
        def PyJsHoisted_fromString_(that, string, encoding, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'encoding':encoding, u'string':string, u'that':that}, var)
            var.registers([u'length', u'encoding', u'string', u'that'])
            if (PyJsStrictNeq(var.get(u'encoding',throw=False).typeof(),Js(u'string')) or PyJsStrictEq(var.get(u'encoding'),Js(u''))):
                var.put(u'encoding', Js(u'utf8'))
            var.put(u'length', (var.get(u'byteLength')(var.get(u'string'), var.get(u'encoding'))|Js(0.0)))
            var.put(u'that', var.get(u'allocate')(var.get(u'that'), var.get(u'length')))
            var.get(u'that').callprop(u'write', var.get(u'string'), var.get(u'encoding'))
            return var.get(u'that')
        PyJsHoisted_fromString_.func_name = u'fromString'
        var.put(u'fromString', PyJsHoisted_fromString_)
        @Js
        def PyJsHoisted_fromArrayBuffer_(that, array, this, arguments, var=var):
            var = Scope({u'this':this, u'array':array, u'arguments':arguments, u'that':that}, var)
            var.registers([u'array', u'that'])
            var.get(u'array').get(u'byteLength')
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
                var.put(u'that', var.get(u'Uint8Array').create(var.get(u'array')))
                var.get(u'that').put(u'__proto__', var.get(u'Buffer').get(u'prototype'))
            else:
                var.put(u'that', var.get(u'fromTypedArray')(var.get(u'that'), var.get(u'Uint8Array').create(var.get(u'array'))))
            return var.get(u'that')
        PyJsHoisted_fromArrayBuffer_.func_name = u'fromArrayBuffer'
        var.put(u'fromArrayBuffer', PyJsHoisted_fromArrayBuffer_)
        @Js
        def PyJsHoisted_fromJsonObject_(that, object, this, arguments, var=var):
            var = Scope({u'this':this, u'object':object, u'arguments':arguments, u'that':that}, var)
            var.registers([u'i', u'array', u'object', u'length', u'that'])
            pass
            var.put(u'length', Js(0.0))
            if (PyJsStrictEq(var.get(u'object').get(u'type'),Js(u'Buffer')) and var.get(u'isArray')(var.get(u'object').get(u'data'))):
                var.put(u'array', var.get(u'object').get(u'data'))
                var.put(u'length', (var.get(u'checked')(var.get(u'array').get(u'length'))|Js(0.0)))
            var.put(u'that', var.get(u'allocate')(var.get(u'that'), var.get(u'length')))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'length')):
                try:
                    var.get(u'that').put(var.get(u'i'), (var.get(u'array').get(var.get(u'i'))&Js(255.0)))
                finally:
                        var.put(u'i', Js(1.0), u'+')
            return var.get(u'that')
        PyJsHoisted_fromJsonObject_.func_name = u'fromJsonObject'
        var.put(u'fromJsonObject', PyJsHoisted_fromJsonObject_)
        @Js
        def PyJsHoisted_asciiToBytes_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
            var.registers([u'byteArray', u'i', u'str'])
            var.put(u'byteArray', Js([]))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'str').get(u'length')):
                try:
                    var.get(u'byteArray').callprop(u'push', (var.get(u'str').callprop(u'charCodeAt', var.get(u'i'))&Js(255)))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'byteArray')
        PyJsHoisted_asciiToBytes_.func_name = u'asciiToBytes'
        var.put(u'asciiToBytes', PyJsHoisted_asciiToBytes_)
        @Js
        def PyJsHoisted_slowToString_(encoding, start, end, this, arguments, var=var):
            var = Scope({u'this':this, u'start':start, u'end':end, u'arguments':arguments, u'encoding':encoding}, var)
            var.registers([u'start', u'loweredCase', u'end', u'encoding'])
            var.put(u'loweredCase', Js(False))
            var.put(u'start', (var.get(u'start')|Js(0.0)))
            var.put(u'end', (var.get(u"this").get(u'length') if (PyJsStrictEq(var.get(u'end'),var.get(u'undefined')) or PyJsStrictEq(var.get(u'end'),var.get(u'Infinity'))) else (var.get(u'end')|Js(0.0))))
            if var.get(u'encoding').neg():
                var.put(u'encoding', Js(u'utf8'))
            if (var.get(u'start')<Js(0.0)):
                var.put(u'start', Js(0.0))
            if (var.get(u'end')>var.get(u"this").get(u'length')):
                var.put(u'end', var.get(u"this").get(u'length'))
            if (var.get(u'end')<=var.get(u'start')):
                return Js(u'')
            while var.get(u'true'):
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'encoding'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'hex')):
                        SWITCHED = True
                        return var.get(u'hexSlice')(var.get(u"this"), var.get(u'start'), var.get(u'end'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf8')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf-8')):
                        SWITCHED = True
                        return var.get(u'utf8Slice')(var.get(u"this"), var.get(u'start'), var.get(u'end'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ascii')):
                        SWITCHED = True
                        return var.get(u'asciiSlice')(var.get(u"this"), var.get(u'start'), var.get(u'end'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'binary')):
                        SWITCHED = True
                        return var.get(u'binarySlice')(var.get(u"this"), var.get(u'start'), var.get(u'end'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'base64')):
                        SWITCHED = True
                        return var.get(u'base64Slice')(var.get(u"this"), var.get(u'start'), var.get(u'end'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ucs2')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ucs-2')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf16le')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf-16le')):
                        SWITCHED = True
                        return var.get(u'utf16leSlice')(var.get(u"this"), var.get(u'start'), var.get(u'end'))
                    if True:
                        SWITCHED = True
                        if var.get(u'loweredCase'):
                            PyJsTempException = JsToPyException(var.get(u'TypeError').create((Js(u'Unknown encoding: ')+var.get(u'encoding'))))
                            raise PyJsTempException
                        var.put(u'encoding', (var.get(u'encoding')+Js(u'')).callprop(u'toLowerCase'))
                        var.put(u'loweredCase', var.get(u'true'))
                    SWITCHED = True
                    break
        PyJsHoisted_slowToString_.func_name = u'slowToString'
        var.put(u'slowToString', PyJsHoisted_slowToString_)
        @Js
        def PyJsHoisted_byteLength_(string, encoding, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'string':string, u'encoding':encoding}, var)
            var.registers([u'loweredCase', u'string', u'len', u'encoding'])
            if PyJsStrictNeq(var.get(u'string',throw=False).typeof(),Js(u'string')):
                var.put(u'string', (Js(u'')+var.get(u'string')))
            var.put(u'len', var.get(u'string').get(u'length'))
            if PyJsStrictEq(var.get(u'len'),Js(0.0)):
                return Js(0.0)
            var.put(u'loweredCase', Js(False))
            #for JS loop
            
            while 1:
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'encoding'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ascii')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'binary')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'raw')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'raws')):
                        SWITCHED = True
                        return var.get(u'len')
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf8')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf-8')):
                        SWITCHED = True
                        return var.get(u'utf8ToBytes')(var.get(u'string')).get(u'length')
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ucs2')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ucs-2')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf16le')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf-16le')):
                        SWITCHED = True
                        return (var.get(u'len')*Js(2.0))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'hex')):
                        SWITCHED = True
                        return PyJsBshift(var.get(u'len'),Js(1.0))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'base64')):
                        SWITCHED = True
                        return var.get(u'base64ToBytes')(var.get(u'string')).get(u'length')
                    if True:
                        SWITCHED = True
                        if var.get(u'loweredCase'):
                            return var.get(u'utf8ToBytes')(var.get(u'string')).get(u'length')
                        var.put(u'encoding', (Js(u'')+var.get(u'encoding')).callprop(u'toLowerCase'))
                        var.put(u'loweredCase', var.get(u'true'))
                    SWITCHED = True
                    break
            
        PyJsHoisted_byteLength_.func_name = u'byteLength'
        var.put(u'byteLength', PyJsHoisted_byteLength_)
        @Js
        def PyJsHoisted_checked_(length, this, arguments, var=var):
            var = Scope({u'this':this, u'length':length, u'arguments':arguments}, var)
            var.registers([u'length'])
            if (var.get(u'length')>=var.get(u'kMaxLength')()):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create((((Js(u'Attempt to allocate Buffer larger than maximum ')+Js(u'size: 0x'))+var.get(u'kMaxLength')().callprop(u'toString', Js(16.0)))+Js(u' bytes'))))
                raise PyJsTempException
            return (var.get(u'length')|Js(0.0))
        PyJsHoisted_checked_.func_name = u'checked'
        var.put(u'checked', PyJsHoisted_checked_)
        @Js
        def PyJsHoisted_Buffer_(arg, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
            var.registers([u'arg'])
            if var.get(u"this").instanceof(var.get(u'Buffer')).neg():
                if (var.get(u'arguments').get(u'length')>Js(1.0)):
                    return var.get(u'Buffer').create(var.get(u'arg'), var.get(u'arguments').get(u'1'))
                return var.get(u'Buffer').create(var.get(u'arg'))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT').neg():
                var.get(u"this").put(u'length', Js(0.0))
                var.get(u"this").put(u'parent', var.get(u'undefined'))
            if PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'number')):
                return var.get(u'fromNumber')(var.get(u"this"), var.get(u'arg'))
            if PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'string')):
                return var.get(u'fromString')(var.get(u"this"), var.get(u'arg'), (var.get(u'arguments').get(u'1') if (var.get(u'arguments').get(u'length')>Js(1.0)) else Js(u'utf8')))
            return var.get(u'fromObject')(var.get(u"this"), var.get(u'arg'))
        PyJsHoisted_Buffer_.func_name = u'Buffer'
        var.put(u'Buffer', PyJsHoisted_Buffer_)
        @Js
        def PyJsHoisted_asciiSlice_(buf, start, end, this, arguments, var=var):
            var = Scope({u'this':this, u'start':start, u'end':end, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'i', u'start', u'end', u'buf', u'ret'])
            var.put(u'ret', Js(u''))
            var.put(u'end', var.get(u'Math').callprop(u'min', var.get(u'buf').get(u'length'), var.get(u'end')))
            #for JS loop
            var.put(u'i', var.get(u'start'))
            while (var.get(u'i')<var.get(u'end')):
                try:
                    var.put(u'ret', var.get(u'String').callprop(u'fromCharCode', (var.get(u'buf').get(var.get(u'i'))&Js(127))), u'+')
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'ret')
        PyJsHoisted_asciiSlice_.func_name = u'asciiSlice'
        var.put(u'asciiSlice', PyJsHoisted_asciiSlice_)
        @Js
        def PyJsHoisted_base64ToBytes_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
            var.registers([u'str'])
            return var.get(u'base64').callprop(u'toByteArray', var.get(u'base64clean')(var.get(u'str')))
        PyJsHoisted_base64ToBytes_.func_name = u'base64ToBytes'
        var.put(u'base64ToBytes', PyJsHoisted_base64ToBytes_)
        @Js
        def PyJsHoisted_kMaxLength_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([])
            return (Js(2147483647) if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT') else Js(1073741823))
        PyJsHoisted_kMaxLength_.func_name = u'kMaxLength'
        var.put(u'kMaxLength', PyJsHoisted_kMaxLength_)
        @Js
        def PyJsHoisted_writeFloat_(buf, value, offset, littleEndian, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'arguments':arguments, u'offset':offset, u'this':this, u'littleEndian':littleEndian, u'buf':buf, u'value':value}, var)
            var.registers([u'littleEndian', u'noAssert', u'buf', u'value', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkIEEE754')(var.get(u'buf'), var.get(u'value'), var.get(u'offset'), Js(4.0), Js(3.4028234663852886e+38), (-Js(3.4028234663852886e+38)))
            var.get(u'ieee754').callprop(u'write', var.get(u'buf'), var.get(u'value'), var.get(u'offset'), var.get(u'littleEndian'), Js(23.0), Js(4.0))
            return (var.get(u'offset')+Js(4.0))
        PyJsHoisted_writeFloat_.func_name = u'writeFloat'
        var.put(u'writeFloat', PyJsHoisted_writeFloat_)
        @Js
        def PyJsHoisted_utf8Slice_(buf, start, end, this, arguments, var=var):
            var = Scope({u'this':this, u'start':start, u'end':end, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'codePoint', u'fourthByte', u'firstByte', u'start', u'i', u'res', u'tempCodePoint', u'bytesPerSequence', u'secondByte', u'end', u'buf', u'thirdByte'])
            var.put(u'end', var.get(u'Math').callprop(u'min', var.get(u'buf').get(u'length'), var.get(u'end')))
            var.put(u'res', Js([]))
            var.put(u'i', var.get(u'start'))
            while (var.get(u'i')<var.get(u'end')):
                var.put(u'firstByte', var.get(u'buf').get(var.get(u'i')))
                var.put(u'codePoint', var.get(u"null"))
                var.put(u'bytesPerSequence', (Js(4.0) if (var.get(u'firstByte')>Js(239)) else (Js(3.0) if (var.get(u'firstByte')>Js(223)) else (Js(2.0) if (var.get(u'firstByte')>Js(191)) else Js(1.0)))))
                if ((var.get(u'i')+var.get(u'bytesPerSequence'))<=var.get(u'end')):
                    pass
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get(u'bytesPerSequence'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(1.0)):
                            SWITCHED = True
                            if (var.get(u'firstByte')<Js(128)):
                                var.put(u'codePoint', var.get(u'firstByte'))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(2.0)):
                            SWITCHED = True
                            var.put(u'secondByte', var.get(u'buf').get((var.get(u'i')+Js(1.0))))
                            if PyJsStrictEq((var.get(u'secondByte')&Js(192)),Js(128)):
                                var.put(u'tempCodePoint', (((var.get(u'firstByte')&Js(31))<<Js(6))|(var.get(u'secondByte')&Js(63))))
                                if (var.get(u'tempCodePoint')>Js(127)):
                                    var.put(u'codePoint', var.get(u'tempCodePoint'))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(3.0)):
                            SWITCHED = True
                            var.put(u'secondByte', var.get(u'buf').get((var.get(u'i')+Js(1.0))))
                            var.put(u'thirdByte', var.get(u'buf').get((var.get(u'i')+Js(2.0))))
                            if (PyJsStrictEq((var.get(u'secondByte')&Js(192)),Js(128)) and PyJsStrictEq((var.get(u'thirdByte')&Js(192)),Js(128))):
                                var.put(u'tempCodePoint', ((((var.get(u'firstByte')&Js(15))<<Js(12))|((var.get(u'secondByte')&Js(63))<<Js(6)))|(var.get(u'thirdByte')&Js(63))))
                                if ((var.get(u'tempCodePoint')>Js(2047)) and ((var.get(u'tempCodePoint')<Js(55296)) or (var.get(u'tempCodePoint')>Js(57343)))):
                                    var.put(u'codePoint', var.get(u'tempCodePoint'))
                            break
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(4.0)):
                            SWITCHED = True
                            var.put(u'secondByte', var.get(u'buf').get((var.get(u'i')+Js(1.0))))
                            var.put(u'thirdByte', var.get(u'buf').get((var.get(u'i')+Js(2.0))))
                            var.put(u'fourthByte', var.get(u'buf').get((var.get(u'i')+Js(3.0))))
                            if ((PyJsStrictEq((var.get(u'secondByte')&Js(192)),Js(128)) and PyJsStrictEq((var.get(u'thirdByte')&Js(192)),Js(128))) and PyJsStrictEq((var.get(u'fourthByte')&Js(192)),Js(128))):
                                var.put(u'tempCodePoint', (((((var.get(u'firstByte')&Js(15))<<Js(18))|((var.get(u'secondByte')&Js(63))<<Js(12)))|((var.get(u'thirdByte')&Js(63))<<Js(6)))|(var.get(u'fourthByte')&Js(63))))
                                if ((var.get(u'tempCodePoint')>Js(65535)) and (var.get(u'tempCodePoint')<Js(1114112))):
                                    var.put(u'codePoint', var.get(u'tempCodePoint'))
                        SWITCHED = True
                        break
                if PyJsStrictEq(var.get(u'codePoint'),var.get(u"null")):
                    var.put(u'codePoint', Js(65533))
                    var.put(u'bytesPerSequence', Js(1.0))
                else:
                    if (var.get(u'codePoint')>Js(65535)):
                        var.put(u'codePoint', Js(65536), u'-')
                        var.get(u'res').callprop(u'push', ((PyJsBshift(var.get(u'codePoint'),Js(10.0))&Js(1023))|Js(55296)))
                        var.put(u'codePoint', (Js(56320)|(var.get(u'codePoint')&Js(1023))))
                var.get(u'res').callprop(u'push', var.get(u'codePoint'))
                var.put(u'i', var.get(u'bytesPerSequence'), u'+')
            return var.get(u'decodeCodePointsArray')(var.get(u'res'))
        PyJsHoisted_utf8Slice_.func_name = u'utf8Slice'
        var.put(u'utf8Slice', PyJsHoisted_utf8Slice_)
        @Js
        def PyJsHoisted_allocate_(that, length, this, arguments, var=var):
            var = Scope({u'this':this, u'length':length, u'arguments':arguments, u'that':that}, var)
            var.registers([u'fromPool', u'length', u'that'])
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
                var.put(u'that', var.get(u'Uint8Array').create(var.get(u'length')))
                var.get(u'that').put(u'__proto__', var.get(u'Buffer').get(u'prototype'))
            else:
                var.get(u'that').put(u'length', var.get(u'length'))
            var.put(u'fromPool', (PyJsStrictNeq(var.get(u'length'),Js(0.0)) and (var.get(u'length')<=PyJsBshift(var.get(u'Buffer').get(u'poolSize'),Js(1.0)))))
            if var.get(u'fromPool'):
                var.get(u'that').put(u'parent', var.get(u'rootParent'))
            return var.get(u'that')
        PyJsHoisted_allocate_.func_name = u'allocate'
        var.put(u'allocate', PyJsHoisted_allocate_)
        @Js
        def PyJsHoisted_checkInt_(buf, value, offset, ext, max, min, this, arguments, var=var):
            var = Scope({u'min':min, u'this':this, u'max':max, u'value':value, u'ext':ext, u'arguments':arguments, u'offset':offset, u'buf':buf}, var)
            var.registers([u'min', u'max', u'value', u'ext', u'offset', u'buf'])
            if var.get(u'Buffer').callprop(u'isBuffer', var.get(u'buf')).neg():
                PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'buffer must be a Buffer instance')))
                raise PyJsTempException
            if ((var.get(u'value')>var.get(u'max')) or (var.get(u'value')<var.get(u'min'))):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'value is out of bounds')))
                raise PyJsTempException
            if ((var.get(u'offset')+var.get(u'ext'))>var.get(u'buf').get(u'length')):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'index out of range')))
                raise PyJsTempException
        PyJsHoisted_checkInt_.func_name = u'checkInt'
        var.put(u'checkInt', PyJsHoisted_checkInt_)
        @Js
        def PyJsHoisted_objectWriteUInt32_(buf, value, offset, littleEndian, this, arguments, var=var):
            var = Scope({u'arguments':arguments, u'offset':offset, u'this':this, u'littleEndian':littleEndian, u'buf':buf, u'value':value}, var)
            var.registers([u'i', u'j', u'value', u'offset', u'littleEndian', u'buf'])
            if (var.get(u'value')<Js(0.0)):
                var.put(u'value', ((Js(4294967295)+var.get(u'value'))+Js(1.0)))
            #for JS loop
            var.put(u'i', Js(0.0))
            var.put(u'j', var.get(u'Math').callprop(u'min', (var.get(u'buf').get(u'length')-var.get(u'offset')), Js(4.0)))
            while (var.get(u'i')<var.get(u'j')):
                try:
                    var.get(u'buf').put((var.get(u'offset')+var.get(u'i')), (PyJsBshift(var.get(u'value'),((var.get(u'i') if var.get(u'littleEndian') else (Js(3.0)-var.get(u'i')))*Js(8.0)))&Js(255)))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        PyJsHoisted_objectWriteUInt32_.func_name = u'objectWriteUInt32'
        var.put(u'objectWriteUInt32', PyJsHoisted_objectWriteUInt32_)
        @Js
        def PyJsHoisted_toHex_(n, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'n':n}, var)
            var.registers([u'n'])
            if (var.get(u'n')<Js(16.0)):
                return (Js(u'0')+var.get(u'n').callprop(u'toString', Js(16.0)))
            return var.get(u'n').callprop(u'toString', Js(16.0))
        PyJsHoisted_toHex_.func_name = u'toHex'
        var.put(u'toHex', PyJsHoisted_toHex_)
        @Js
        def PyJsHoisted_asciiWrite_(buf, string, offset, length, this, arguments, var=var):
            var = Scope({u'length':length, u'string':string, u'offset':offset, u'this':this, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'length', u'buf', u'string', u'offset'])
            return var.get(u'blitBuffer')(var.get(u'asciiToBytes')(var.get(u'string')), var.get(u'buf'), var.get(u'offset'), var.get(u'length'))
        PyJsHoisted_asciiWrite_.func_name = u'asciiWrite'
        var.put(u'asciiWrite', PyJsHoisted_asciiWrite_)
        @Js
        def PyJsHoisted_fromNumber_(that, length, this, arguments, var=var):
            var = Scope({u'this':this, u'length':length, u'arguments':arguments, u'that':that}, var)
            var.registers([u'i', u'length', u'that'])
            var.put(u'that', var.get(u'allocate')(var.get(u'that'), (Js(0.0) if (var.get(u'length')<Js(0.0)) else (var.get(u'checked')(var.get(u'length'))|Js(0.0)))))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT').neg():
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'length')):
                    try:
                        var.get(u'that').put(var.get(u'i'), Js(0.0))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'that')
        PyJsHoisted_fromNumber_.func_name = u'fromNumber'
        var.put(u'fromNumber', PyJsHoisted_fromNumber_)
        @Js
        def PyJsHoisted_SlowBuffer_(subject, encoding, this, arguments, var=var):
            var = Scope({u'this':this, u'encoding':encoding, u'arguments':arguments, u'subject':subject}, var)
            var.registers([u'encoding', u'buf', u'subject'])
            if var.get(u"this").instanceof(var.get(u'SlowBuffer')).neg():
                return var.get(u'SlowBuffer').create(var.get(u'subject'), var.get(u'encoding'))
            var.put(u'buf', var.get(u'Buffer').create(var.get(u'subject'), var.get(u'encoding')))
            var.get(u'buf').delete(u'parent')
            return var.get(u'buf')
        PyJsHoisted_SlowBuffer_.func_name = u'SlowBuffer'
        var.put(u'SlowBuffer', PyJsHoisted_SlowBuffer_)
        @Js
        def PyJsHoisted_hexWrite_(buf, string, offset, length, this, arguments, var=var):
            var = Scope({u'length':length, u'string':string, u'offset':offset, u'this':this, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'string', u'i', u'strLen', u'parsed', u'length', u'offset', u'buf', u'remaining'])
            var.put(u'offset', (var.get(u'Number')(var.get(u'offset')) or Js(0.0)))
            var.put(u'remaining', (var.get(u'buf').get(u'length')-var.get(u'offset')))
            if var.get(u'length').neg():
                var.put(u'length', var.get(u'remaining'))
            else:
                var.put(u'length', var.get(u'Number')(var.get(u'length')))
                if (var.get(u'length')>var.get(u'remaining')):
                    var.put(u'length', var.get(u'remaining'))
            var.put(u'strLen', var.get(u'string').get(u'length'))
            if PyJsStrictNeq((var.get(u'strLen')%Js(2.0)),Js(0.0)):
                PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Invalid hex string')))
                raise PyJsTempException
            if (var.get(u'length')>(var.get(u'strLen')/Js(2.0))):
                var.put(u'length', (var.get(u'strLen')/Js(2.0)))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'length')):
                try:
                    var.put(u'parsed', var.get(u'parseInt')(var.get(u'string').callprop(u'substr', (var.get(u'i')*Js(2.0)), Js(2.0)), Js(16.0)))
                    if var.get(u'isNaN')(var.get(u'parsed')):
                        PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Invalid hex string')))
                        raise PyJsTempException
                    var.get(u'buf').put((var.get(u'offset')+var.get(u'i')), var.get(u'parsed'))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'i')
        PyJsHoisted_hexWrite_.func_name = u'hexWrite'
        var.put(u'hexWrite', PyJsHoisted_hexWrite_)
        @Js
        def PyJsHoisted_fromArrayLike_(that, array, this, arguments, var=var):
            var = Scope({u'this':this, u'array':array, u'arguments':arguments, u'that':that}, var)
            var.registers([u'i', u'length', u'array', u'that'])
            var.put(u'length', (var.get(u'checked')(var.get(u'array').get(u'length'))|Js(0.0)))
            var.put(u'that', var.get(u'allocate')(var.get(u'that'), var.get(u'length')))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'length')):
                try:
                    var.get(u'that').put(var.get(u'i'), (var.get(u'array').get(var.get(u'i'))&Js(255.0)))
                finally:
                        var.put(u'i', Js(1.0), u'+')
            return var.get(u'that')
        PyJsHoisted_fromArrayLike_.func_name = u'fromArrayLike'
        var.put(u'fromArrayLike', PyJsHoisted_fromArrayLike_)
        @Js
        def PyJsHoisted_checkIEEE754_(buf, value, offset, ext, max, min, this, arguments, var=var):
            var = Scope({u'min':min, u'this':this, u'max':max, u'value':value, u'ext':ext, u'arguments':arguments, u'offset':offset, u'buf':buf}, var)
            var.registers([u'min', u'max', u'value', u'ext', u'offset', u'buf'])
            if ((var.get(u'offset')+var.get(u'ext'))>var.get(u'buf').get(u'length')):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'index out of range')))
                raise PyJsTempException
            if (var.get(u'offset')<Js(0.0)):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'index out of range')))
                raise PyJsTempException
        PyJsHoisted_checkIEEE754_.func_name = u'checkIEEE754'
        var.put(u'checkIEEE754', PyJsHoisted_checkIEEE754_)
        @Js
        def PyJsHoisted_utf16leToBytes_(str, units, this, arguments, var=var):
            var = Scope({u'units':units, u'this':this, u'arguments':arguments, u'str':str}, var)
            var.registers([u'byteArray', u'c', u'i', u'lo', u'hi', u'str', u'units'])
            pass
            var.put(u'byteArray', Js([]))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'str').get(u'length')):
                try:
                    if (var.put(u'units', Js(2.0), u'-')<Js(0.0)):
                        break
                    var.put(u'c', var.get(u'str').callprop(u'charCodeAt', var.get(u'i')))
                    var.put(u'hi', (var.get(u'c')>>Js(8.0)))
                    var.put(u'lo', (var.get(u'c')%Js(256.0)))
                    var.get(u'byteArray').callprop(u'push', var.get(u'lo'))
                    var.get(u'byteArray').callprop(u'push', var.get(u'hi'))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'byteArray')
        PyJsHoisted_utf16leToBytes_.func_name = u'utf16leToBytes'
        var.put(u'utf16leToBytes', PyJsHoisted_utf16leToBytes_)
        @Js
        def PyJsHoisted_ucs2Write_(buf, string, offset, length, this, arguments, var=var):
            var = Scope({u'length':length, u'string':string, u'offset':offset, u'this':this, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'length', u'buf', u'string', u'offset'])
            return var.get(u'blitBuffer')(var.get(u'utf16leToBytes')(var.get(u'string'), (var.get(u'buf').get(u'length')-var.get(u'offset'))), var.get(u'buf'), var.get(u'offset'), var.get(u'length'))
        PyJsHoisted_ucs2Write_.func_name = u'ucs2Write'
        var.put(u'ucs2Write', PyJsHoisted_ucs2Write_)
        @Js
        def PyJsHoisted_base64clean_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
            var.registers([u'str'])
            var.put(u'str', var.get(u'stringtrim')(var.get(u'str')).callprop(u'replace', var.get(u'INVALID_BASE64_RE'), Js(u'')))
            if (var.get(u'str').get(u'length')<Js(2.0)):
                return Js(u'')
            while PyJsStrictNeq((var.get(u'str').get(u'length')%Js(4.0)),Js(0.0)):
                var.put(u'str', (var.get(u'str')+Js(u'=')))
            return var.get(u'str')
        PyJsHoisted_base64clean_.func_name = u'base64clean'
        var.put(u'base64clean', PyJsHoisted_base64clean_)
        @Js
        def PyJsHoisted_checkOffset_(offset, ext, length, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'ext':ext, u'length':length, u'offset':offset}, var)
            var.registers([u'ext', u'length', u'offset'])
            if (PyJsStrictNeq((var.get(u'offset')%Js(1.0)),Js(0.0)) or (var.get(u'offset')<Js(0.0))):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'offset is not uint')))
                raise PyJsTempException
            if ((var.get(u'offset')+var.get(u'ext'))>var.get(u'length')):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'Trying to access beyond buffer length')))
                raise PyJsTempException
        PyJsHoisted_checkOffset_.func_name = u'checkOffset'
        var.put(u'checkOffset', PyJsHoisted_checkOffset_)
        @Js
        def PyJsHoisted_decodeCodePointsArray_(codePoints, this, arguments, var=var):
            var = Scope({u'codePoints':codePoints, u'this':this, u'arguments':arguments}, var)
            var.registers([u'i', u'res', u'len', u'codePoints'])
            var.put(u'len', var.get(u'codePoints').get(u'length'))
            if (var.get(u'len')<=var.get(u'MAX_ARGUMENTS_LENGTH')):
                return var.get(u'String').get(u'fromCharCode').callprop(u'apply', var.get(u'String'), var.get(u'codePoints'))
            var.put(u'res', Js(u''))
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'len')):
                var.put(u'res', var.get(u'String').get(u'fromCharCode').callprop(u'apply', var.get(u'String'), var.get(u'codePoints').callprop(u'slice', var.get(u'i'), var.put(u'i', var.get(u'MAX_ARGUMENTS_LENGTH'), u'+'))), u'+')
            return var.get(u'res')
        PyJsHoisted_decodeCodePointsArray_.func_name = u'decodeCodePointsArray'
        var.put(u'decodeCodePointsArray', PyJsHoisted_decodeCodePointsArray_)
        @Js
        def PyJsHoisted_fromArray_(that, array, this, arguments, var=var):
            var = Scope({u'this':this, u'array':array, u'arguments':arguments, u'that':that}, var)
            var.registers([u'i', u'length', u'array', u'that'])
            var.put(u'length', (var.get(u'checked')(var.get(u'array').get(u'length'))|Js(0.0)))
            var.put(u'that', var.get(u'allocate')(var.get(u'that'), var.get(u'length')))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'length')):
                try:
                    var.get(u'that').put(var.get(u'i'), (var.get(u'array').get(var.get(u'i'))&Js(255.0)))
                finally:
                        var.put(u'i', Js(1.0), u'+')
            return var.get(u'that')
        PyJsHoisted_fromArray_.func_name = u'fromArray'
        var.put(u'fromArray', PyJsHoisted_fromArray_)
        @Js
        def PyJsHoisted_binaryWrite_(buf, string, offset, length, this, arguments, var=var):
            var = Scope({u'length':length, u'string':string, u'offset':offset, u'this':this, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'length', u'buf', u'string', u'offset'])
            return var.get(u'asciiWrite')(var.get(u'buf'), var.get(u'string'), var.get(u'offset'), var.get(u'length'))
        PyJsHoisted_binaryWrite_.func_name = u'binaryWrite'
        var.put(u'binaryWrite', PyJsHoisted_binaryWrite_)
        @Js
        def PyJsHoisted_fromTypedArray_(that, array, this, arguments, var=var):
            var = Scope({u'this':this, u'array':array, u'arguments':arguments, u'that':that}, var)
            var.registers([u'i', u'length', u'array', u'that'])
            var.put(u'length', (var.get(u'checked')(var.get(u'array').get(u'length'))|Js(0.0)))
            var.put(u'that', var.get(u'allocate')(var.get(u'that'), var.get(u'length')))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'length')):
                try:
                    var.get(u'that').put(var.get(u'i'), (var.get(u'array').get(var.get(u'i'))&Js(255.0)))
                finally:
                        var.put(u'i', Js(1.0), u'+')
            return var.get(u'that')
        PyJsHoisted_fromTypedArray_.func_name = u'fromTypedArray'
        var.put(u'fromTypedArray', PyJsHoisted_fromTypedArray_)
        @Js
        def PyJsHoisted_utf16leSlice_(buf, start, end, this, arguments, var=var):
            var = Scope({u'this':this, u'start':start, u'end':end, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'end', u'i', u'res', u'bytes', u'start', u'buf'])
            var.put(u'bytes', var.get(u'buf').callprop(u'slice', var.get(u'start'), var.get(u'end')))
            var.put(u'res', Js(u''))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'bytes').get(u'length')):
                try:
                    var.put(u'res', var.get(u'String').callprop(u'fromCharCode', (var.get(u'bytes').get(var.get(u'i'))+(var.get(u'bytes').get((var.get(u'i')+Js(1.0)))*Js(256.0)))), u'+')
                finally:
                        var.put(u'i', Js(2.0), u'+')
            return var.get(u'res')
        PyJsHoisted_utf16leSlice_.func_name = u'utf16leSlice'
        var.put(u'utf16leSlice', PyJsHoisted_utf16leSlice_)
        @Js
        def PyJsHoisted_typedArraySupport_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'arr'])
            try:
                var.put(u'arr', var.get(u'Uint8ArrayNotExising').create(Js(1.0)))
                @Js
                def PyJs_anonymous_4219_(this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments}, var)
                    var.registers([])
                    return Js(42.0)
                PyJs_anonymous_4219_._set_name(u'anonymous')
                var.get(u'arr').put(u'foo', PyJs_anonymous_4219_)
                return ((PyJsStrictEq(var.get(u'arr').callprop(u'foo'),Js(42.0)) and PyJsStrictEq(var.get(u'arr').get(u'subarray').typeof(),Js(u'function'))) and PyJsStrictEq(var.get(u'arr').callprop(u'subarray', Js(1.0), Js(1.0)).get(u'byteLength'),Js(0.0)))
            except PyJsException as PyJsTempException:
                PyJsHolder_65_42861762 = var.own.get(u'e')
                var.force_own_put(u'e', PyExceptionToJs(PyJsTempException))
                try:
                    return Js(False)
                finally:
                    if PyJsHolder_65_42861762 is not None:
                        var.own[u'e'] = PyJsHolder_65_42861762
                    else:
                        del var.own[u'e']
                    del PyJsHolder_65_42861762
        PyJsHoisted_typedArraySupport_.func_name = u'typedArraySupport'
        var.put(u'typedArraySupport', PyJsHoisted_typedArraySupport_)
        @Js
        def PyJsHoisted_utf8Write_(buf, string, offset, length, this, arguments, var=var):
            var = Scope({u'length':length, u'string':string, u'offset':offset, u'this':this, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'length', u'buf', u'string', u'offset'])
            return var.get(u'blitBuffer')(var.get(u'utf8ToBytes')(var.get(u'string'), (var.get(u'buf').get(u'length')-var.get(u'offset'))), var.get(u'buf'), var.get(u'offset'), var.get(u'length'))
        PyJsHoisted_utf8Write_.func_name = u'utf8Write'
        var.put(u'utf8Write', PyJsHoisted_utf8Write_)
        @Js
        def PyJsHoisted_utf8ToBytes_(string, units, this, arguments, var=var):
            var = Scope({u'units':units, u'this':this, u'string':string, u'arguments':arguments}, var)
            var.registers([u'codePoint', u'string', u'i', u'bytes', u'leadSurrogate', u'length', u'units'])
            var.put(u'units', (var.get(u'units') or var.get(u'Infinity')))
            pass
            var.put(u'length', var.get(u'string').get(u'length'))
            var.put(u'leadSurrogate', var.get(u"null"))
            var.put(u'bytes', Js([]))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'length')):
                try:
                    var.put(u'codePoint', var.get(u'string').callprop(u'charCodeAt', var.get(u'i')))
                    if ((var.get(u'codePoint')>Js(55295)) and (var.get(u'codePoint')<Js(57344))):
                        if var.get(u'leadSurrogate').neg():
                            if (var.get(u'codePoint')>Js(56319)):
                                if (var.put(u'units', Js(3.0), u'-')>(-Js(1.0))):
                                    var.get(u'bytes').callprop(u'push', Js(239), Js(191), Js(189))
                                continue
                            else:
                                if PyJsStrictEq((var.get(u'i')+Js(1.0)),var.get(u'length')):
                                    if (var.put(u'units', Js(3.0), u'-')>(-Js(1.0))):
                                        var.get(u'bytes').callprop(u'push', Js(239), Js(191), Js(189))
                                    continue
                            var.put(u'leadSurrogate', var.get(u'codePoint'))
                            continue
                        if (var.get(u'codePoint')<Js(56320)):
                            if (var.put(u'units', Js(3.0), u'-')>(-Js(1.0))):
                                var.get(u'bytes').callprop(u'push', Js(239), Js(191), Js(189))
                            var.put(u'leadSurrogate', var.get(u'codePoint'))
                            continue
                        var.put(u'codePoint', ((((var.get(u'leadSurrogate')-Js(55296))<<Js(10.0))|(var.get(u'codePoint')-Js(56320)))+Js(65536)))
                    else:
                        if var.get(u'leadSurrogate'):
                            if (var.put(u'units', Js(3.0), u'-')>(-Js(1.0))):
                                var.get(u'bytes').callprop(u'push', Js(239), Js(191), Js(189))
                    var.put(u'leadSurrogate', var.get(u"null"))
                    if (var.get(u'codePoint')<Js(128)):
                        if (var.put(u'units', Js(1.0), u'-')<Js(0.0)):
                            break
                        var.get(u'bytes').callprop(u'push', var.get(u'codePoint'))
                    else:
                        if (var.get(u'codePoint')<Js(2048)):
                            if (var.put(u'units', Js(2.0), u'-')<Js(0.0)):
                                break
                            var.get(u'bytes').callprop(u'push', ((var.get(u'codePoint')>>Js(6))|Js(192)), ((var.get(u'codePoint')&Js(63))|Js(128)))
                        else:
                            if (var.get(u'codePoint')<Js(65536)):
                                if (var.put(u'units', Js(3.0), u'-')<Js(0.0)):
                                    break
                                var.get(u'bytes').callprop(u'push', ((var.get(u'codePoint')>>Js(12))|Js(224)), (((var.get(u'codePoint')>>Js(6))&Js(63))|Js(128)), ((var.get(u'codePoint')&Js(63))|Js(128)))
                            else:
                                if (var.get(u'codePoint')<Js(1114112)):
                                    if (var.put(u'units', Js(4.0), u'-')<Js(0.0)):
                                        break
                                    var.get(u'bytes').callprop(u'push', ((var.get(u'codePoint')>>Js(18))|Js(240)), (((var.get(u'codePoint')>>Js(12))&Js(63))|Js(128)), (((var.get(u'codePoint')>>Js(6))&Js(63))|Js(128)), ((var.get(u'codePoint')&Js(63))|Js(128)))
                                else:
                                    PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Invalid code point')))
                                    raise PyJsTempException
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'bytes')
        PyJsHoisted_utf8ToBytes_.func_name = u'utf8ToBytes'
        var.put(u'utf8ToBytes', PyJsHoisted_utf8ToBytes_)
        @Js
        def PyJsHoisted_writeDouble_(buf, value, offset, littleEndian, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'arguments':arguments, u'offset':offset, u'this':this, u'littleEndian':littleEndian, u'buf':buf, u'value':value}, var)
            var.registers([u'littleEndian', u'noAssert', u'buf', u'value', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkIEEE754')(var.get(u'buf'), var.get(u'value'), var.get(u'offset'), Js(8.0), Js(1.7976931348623157e+308), (-Js(1.7976931348623157e+308)))
            var.get(u'ieee754').callprop(u'write', var.get(u'buf'), var.get(u'value'), var.get(u'offset'), var.get(u'littleEndian'), Js(52.0), Js(8.0))
            return (var.get(u'offset')+Js(8.0))
        PyJsHoisted_writeDouble_.func_name = u'writeDouble'
        var.put(u'writeDouble', PyJsHoisted_writeDouble_)
        @Js
        def PyJsHoisted_blitBuffer_(src, dst, offset, length, this, arguments, var=var):
            var = Scope({u'src':src, u'length':length, u'arguments':arguments, u'offset':offset, u'this':this, u'dst':dst}, var)
            var.registers([u'i', u'src', u'dst', u'length', u'offset'])
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'length')):
                try:
                    if (((var.get(u'i')+var.get(u'offset'))>=var.get(u'dst').get(u'length')) or (var.get(u'i')>=var.get(u'src').get(u'length'))):
                        break
                    var.get(u'dst').put((var.get(u'i')+var.get(u'offset')), var.get(u'src').get(var.get(u'i')))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'i')
        PyJsHoisted_blitBuffer_.func_name = u'blitBuffer'
        var.put(u'blitBuffer', PyJsHoisted_blitBuffer_)
        @Js
        def PyJsHoisted_base64Slice_(buf, start, end, this, arguments, var=var):
            var = Scope({u'this':this, u'start':start, u'end':end, u'buf':buf, u'arguments':arguments}, var)
            var.registers([u'start', u'end', u'buf'])
            if (PyJsStrictEq(var.get(u'start'),Js(0.0)) and PyJsStrictEq(var.get(u'end'),var.get(u'buf').get(u'length'))):
                return var.get(u'base64').callprop(u'fromByteArray', var.get(u'buf'))
            else:
                return var.get(u'base64').callprop(u'fromByteArray', var.get(u'buf').callprop(u'slice', var.get(u'start'), var.get(u'end')))
        PyJsHoisted_base64Slice_.func_name = u'base64Slice'
        var.put(u'base64Slice', PyJsHoisted_base64Slice_)
        @Js
        def PyJsHoisted_stringtrim_(str, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'str':str}, var)
            var.registers([u'str'])
            if var.get(u'str').get(u'trim'):
                return var.get(u'str').callprop(u'trim')
            return var.get(u'str').callprop(u'replace', JsRegExp(u'/^\\s+|\\s+$/g'), Js(u''))
        PyJsHoisted_stringtrim_.func_name = u'stringtrim'
        var.put(u'stringtrim', PyJsHoisted_stringtrim_)
        Js(u'use strict')
        var.put(u'base64', var.get(u'require')(Js(u'base64-js')))
        var.put(u'ieee754', var.get(u'require')(Js(u'ieee754')))
        var.put(u'isArray', var.get(u'require')(Js(u'isarray')))
        var.get(u'exports').put(u'Buffer', var.get(u'Buffer'))
        var.get(u'exports').put(u'SlowBuffer', var.get(u'SlowBuffer'))
        var.get(u'exports').put(u'INSPECT_MAX_BYTES', Js(50.0))
        var.get(u'Buffer').put(u'poolSize', Js(8192.0))
        PyJs_Object_4218_ = Js({})
        var.put(u'rootParent', PyJs_Object_4218_)
        var.get(u'Buffer').put(u'TYPED_ARRAY_SUPPORT', (var.get(u'global').get(u'TYPED_ARRAY_SUPPORT') if PyJsStrictNeq(var.get(u'global').get(u'TYPED_ARRAY_SUPPORT'),var.get(u'undefined')) else var.get(u'typedArraySupport')()))
        pass
        pass
        pass
        @Js
        def PyJs_anonymous_4220_(arr, this, arguments, var=var):
            var = Scope({u'this':this, u'arr':arr, u'arguments':arguments}, var)
            var.registers([u'arr'])
            var.get(u'arr').put(u'__proto__', var.get(u'Buffer').get(u'prototype'))
            return var.get(u'arr')
        PyJs_anonymous_4220_._set_name(u'anonymous')
        var.get(u'Buffer').put(u'_augment', PyJs_anonymous_4220_)
        pass
        pass
        pass
        pass
        pass
        pass
        pass
        pass
        pass
        if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
            var.get(u'Buffer').get(u'prototype').put(u'__proto__', var.get(u'Uint8Array').get(u'prototype'))
            var.get(u'Buffer').put(u'__proto__', var.get(u'Uint8Array'))
            if ((PyJsStrictNeq(var.get(u'Symbol',throw=False).typeof(),Js(u'undefined')) and var.get(u'Symbol').get(u'species')) and PyJsStrictEq(var.get(u'Buffer').get(var.get(u'Symbol').get(u'species')),var.get(u'Buffer'))):
                PyJs_Object_4221_ = Js({u'value':var.get(u"null"),u'configurable':var.get(u'true')})
                var.get(u'Object').callprop(u'defineProperty', var.get(u'Buffer'), var.get(u'Symbol').get(u'species'), PyJs_Object_4221_)
        else:
            var.get(u'Buffer').get(u'prototype').put(u'length', var.get(u'undefined'))
            var.get(u'Buffer').get(u'prototype').put(u'parent', var.get(u'undefined'))
        pass
        pass
        pass
        @Js
        def PyJs_isBuffer_4222_(b, this, arguments, var=var):
            var = Scope({u'this':this, u'b':b, u'arguments':arguments, u'isBuffer':PyJs_isBuffer_4222_}, var)
            var.registers([u'b'])
            return ((var.get(u'b')!=var.get(u"null")) and var.get(u'b').get(u'_isBuffer')).neg().neg()
        PyJs_isBuffer_4222_._set_name(u'isBuffer')
        var.get(u'Buffer').put(u'isBuffer', PyJs_isBuffer_4222_)
        @Js
        def PyJs_compare_4223_(a, b, this, arguments, var=var):
            var = Scope({u'a':a, u'this':this, u'compare':PyJs_compare_4223_, u'b':b, u'arguments':arguments}, var)
            var.registers([u'a', u'b', u'i', u'len', u'y', u'x'])
            if (var.get(u'Buffer').callprop(u'isBuffer', var.get(u'a')).neg() or var.get(u'Buffer').callprop(u'isBuffer', var.get(u'b')).neg()):
                PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Arguments must be Buffers')))
                raise PyJsTempException
            if PyJsStrictEq(var.get(u'a'),var.get(u'b')):
                return Js(0.0)
            var.put(u'x', var.get(u'a').get(u'length'))
            var.put(u'y', var.get(u'b').get(u'length'))
            #for JS loop
            var.put(u'i', Js(0.0))
            var.put(u'len', var.get(u'Math').callprop(u'min', var.get(u'x'), var.get(u'y')))
            while (var.get(u'i')<var.get(u'len')):
                try:
                    if PyJsStrictNeq(var.get(u'a').get(var.get(u'i')),var.get(u'b').get(var.get(u'i'))):
                        var.put(u'x', var.get(u'a').get(var.get(u'i')))
                        var.put(u'y', var.get(u'b').get(var.get(u'i')))
                        break
                finally:
                        var.put(u'i',Js(var.get(u'i').to_number())+Js(1))
            if (var.get(u'x')<var.get(u'y')):
                return (-Js(1.0))
            if (var.get(u'y')<var.get(u'x')):
                return Js(1.0)
            return Js(0.0)
        PyJs_compare_4223_._set_name(u'compare')
        var.get(u'Buffer').put(u'compare', PyJs_compare_4223_)
        @Js
        def PyJs_isEncoding_4224_(encoding, this, arguments, var=var):
            var = Scope({u'this':this, u'isEncoding':PyJs_isEncoding_4224_, u'arguments':arguments, u'encoding':encoding}, var)
            var.registers([u'encoding'])
            while 1:
                SWITCHED = False
                CONDITION = (var.get(u'String')(var.get(u'encoding')).callprop(u'toLowerCase'))
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'hex')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf8')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf-8')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ascii')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'binary')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'base64')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'raw')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ucs2')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ucs-2')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf16le')):
                    SWITCHED = True
                    pass
                if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf-16le')):
                    SWITCHED = True
                    return var.get(u'true')
                if True:
                    SWITCHED = True
                    return Js(False)
                SWITCHED = True
                break
        PyJs_isEncoding_4224_._set_name(u'isEncoding')
        var.get(u'Buffer').put(u'isEncoding', PyJs_isEncoding_4224_)
        @Js
        def PyJs_concat_4225_(list, length, this, arguments, var=var):
            var = Scope({u'this':this, u'length':length, u'list':list, u'arguments':arguments, u'concat':PyJs_concat_4225_}, var)
            var.registers([u'i', u'list', u'pos', u'item', u'length', u'buf'])
            if var.get(u'isArray')(var.get(u'list')).neg():
                PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'list argument must be an Array of Buffers.')))
                raise PyJsTempException
            if PyJsStrictEq(var.get(u'list').get(u'length'),Js(0.0)):
                return var.get(u'Buffer').create(Js(0.0))
            pass
            if PyJsStrictEq(var.get(u'length'),var.get(u'undefined')):
                var.put(u'length', Js(0.0))
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'list').get(u'length')):
                    try:
                        var.put(u'length', var.get(u'list').get(var.get(u'i')).get(u'length'), u'+')
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            var.put(u'buf', var.get(u'Buffer').create(var.get(u'length')))
            var.put(u'pos', Js(0.0))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'list').get(u'length')):
                try:
                    var.put(u'item', var.get(u'list').get(var.get(u'i')))
                    var.get(u'item').callprop(u'copy', var.get(u'buf'), var.get(u'pos'))
                    var.put(u'pos', var.get(u'item').get(u'length'), u'+')
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'buf')
        PyJs_concat_4225_._set_name(u'concat')
        var.get(u'Buffer').put(u'concat', PyJs_concat_4225_)
        pass
        var.get(u'Buffer').put(u'byteLength', var.get(u'byteLength'))
        pass
        var.get(u'Buffer').get(u'prototype').put(u'_isBuffer', var.get(u'true'))
        @Js
        def PyJs_toString_4226_(this, arguments, var=var):
            var = Scope({u'this':this, u'toString':PyJs_toString_4226_, u'arguments':arguments}, var)
            var.registers([u'length'])
            var.put(u'length', (var.get(u"this").get(u'length')|Js(0.0)))
            if PyJsStrictEq(var.get(u'length'),Js(0.0)):
                return Js(u'')
            if PyJsStrictEq(var.get(u'arguments').get(u'length'),Js(0.0)):
                return var.get(u'utf8Slice')(var.get(u"this"), Js(0.0), var.get(u'length'))
            return var.get(u'slowToString').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))
        PyJs_toString_4226_._set_name(u'toString')
        var.get(u'Buffer').get(u'prototype').put(u'toString', PyJs_toString_4226_)
        @Js
        def PyJs_equals_4227_(b, this, arguments, var=var):
            var = Scope({u'this':this, u'b':b, u'arguments':arguments, u'equals':PyJs_equals_4227_}, var)
            var.registers([u'b'])
            if var.get(u'Buffer').callprop(u'isBuffer', var.get(u'b')).neg():
                PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Argument must be a Buffer')))
                raise PyJsTempException
            if PyJsStrictEq(var.get(u"this"),var.get(u'b')):
                return var.get(u'true')
            return PyJsStrictEq(var.get(u'Buffer').callprop(u'compare', var.get(u"this"), var.get(u'b')),Js(0.0))
        PyJs_equals_4227_._set_name(u'equals')
        var.get(u'Buffer').get(u'prototype').put(u'equals', PyJs_equals_4227_)
        @Js
        def PyJs_inspect_4228_(this, arguments, var=var):
            var = Scope({u'this':this, u'inspect':PyJs_inspect_4228_, u'arguments':arguments}, var)
            var.registers([u'max', u'str'])
            var.put(u'str', Js(u''))
            var.put(u'max', var.get(u'exports').get(u'INSPECT_MAX_BYTES'))
            if (var.get(u"this").get(u'length')>Js(0.0)):
                var.put(u'str', var.get(u"this").callprop(u'toString', Js(u'hex'), Js(0.0), var.get(u'max')).callprop(u'match', JsRegExp(u'/.{2}/g')).callprop(u'join', Js(u' ')))
                if (var.get(u"this").get(u'length')>var.get(u'max')):
                    var.put(u'str', Js(u' ... '), u'+')
            return ((Js(u'<Buffer ')+var.get(u'str'))+Js(u'>'))
        PyJs_inspect_4228_._set_name(u'inspect')
        var.get(u'Buffer').get(u'prototype').put(u'inspect', PyJs_inspect_4228_)
        @Js
        def PyJs_compare_4229_(b, this, arguments, var=var):
            var = Scope({u'this':this, u'compare':PyJs_compare_4229_, u'b':b, u'arguments':arguments}, var)
            var.registers([u'b'])
            if var.get(u'Buffer').callprop(u'isBuffer', var.get(u'b')).neg():
                PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Argument must be a Buffer')))
                raise PyJsTempException
            return var.get(u'Buffer').callprop(u'compare', var.get(u"this"), var.get(u'b'))
        PyJs_compare_4229_._set_name(u'compare')
        var.get(u'Buffer').get(u'prototype').put(u'compare', PyJs_compare_4229_)
        @Js
        def PyJs_indexOf_4230_(val, byteOffset, this, arguments, var=var):
            var = Scope({u'this':this, u'indexOf':PyJs_indexOf_4230_, u'byteOffset':byteOffset, u'val':val, u'arguments':arguments}, var)
            var.registers([u'val', u'arrayIndexOf', u'byteOffset'])
            @Js
            def PyJsHoisted_arrayIndexOf_(arr, val, byteOffset, this, arguments, var=var):
                var = Scope({u'this':this, u'arr':arr, u'byteOffset':byteOffset, u'val':val, u'arguments':arguments}, var)
                var.registers([u'i', u'foundIndex', u'arr', u'val', u'byteOffset'])
                var.put(u'foundIndex', (-Js(1.0)))
                #for JS loop
                var.put(u'i', Js(0.0))
                while ((var.get(u'byteOffset')+var.get(u'i'))<var.get(u'arr').get(u'length')):
                    try:
                        if PyJsStrictEq(var.get(u'arr').get((var.get(u'byteOffset')+var.get(u'i'))),var.get(u'val').get((Js(0.0) if PyJsStrictEq(var.get(u'foundIndex'),(-Js(1.0))) else (var.get(u'i')-var.get(u'foundIndex'))))):
                            if PyJsStrictEq(var.get(u'foundIndex'),(-Js(1.0))):
                                var.put(u'foundIndex', var.get(u'i'))
                            if PyJsStrictEq(((var.get(u'i')-var.get(u'foundIndex'))+Js(1.0)),var.get(u'val').get(u'length')):
                                return (var.get(u'byteOffset')+var.get(u'foundIndex'))
                        else:
                            var.put(u'foundIndex', (-Js(1.0)))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                return (-Js(1.0))
            PyJsHoisted_arrayIndexOf_.func_name = u'arrayIndexOf'
            var.put(u'arrayIndexOf', PyJsHoisted_arrayIndexOf_)
            if (var.get(u'byteOffset')>Js(2147483647)):
                var.put(u'byteOffset', Js(2147483647))
            else:
                if (var.get(u'byteOffset')<(-Js(2147483648))):
                    var.put(u'byteOffset', (-Js(2147483648)))
            var.put(u'byteOffset', Js(0.0), u'>>')
            if PyJsStrictEq(var.get(u"this").get(u'length'),Js(0.0)):
                return (-Js(1.0))
            if (var.get(u'byteOffset')>=var.get(u"this").get(u'length')):
                return (-Js(1.0))
            if (var.get(u'byteOffset')<Js(0.0)):
                var.put(u'byteOffset', var.get(u'Math').callprop(u'max', (var.get(u"this").get(u'length')+var.get(u'byteOffset')), Js(0.0)))
            if PyJsStrictEq(var.get(u'val',throw=False).typeof(),Js(u'string')):
                if PyJsStrictEq(var.get(u'val').get(u'length'),Js(0.0)):
                    return (-Js(1.0))
                return var.get(u'String').get(u'prototype').get(u'indexOf').callprop(u'call', var.get(u"this"), var.get(u'val'), var.get(u'byteOffset'))
            if var.get(u'Buffer').callprop(u'isBuffer', var.get(u'val')):
                return var.get(u'arrayIndexOf')(var.get(u"this"), var.get(u'val'), var.get(u'byteOffset'))
            if PyJsStrictEq(var.get(u'val',throw=False).typeof(),Js(u'number')):
                if (var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT') and PyJsStrictEq(var.get(u'Uint8Array').get(u'prototype').get(u'indexOf'),Js(u'function'))):
                    return var.get(u'Uint8Array').get(u'prototype').get(u'indexOf').callprop(u'call', var.get(u"this"), var.get(u'val'), var.get(u'byteOffset'))
                return var.get(u'arrayIndexOf')(var.get(u"this"), Js([var.get(u'val')]), var.get(u'byteOffset'))
            pass
            PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'val must be string, number or Buffer')))
            raise PyJsTempException
        PyJs_indexOf_4230_._set_name(u'indexOf')
        var.get(u'Buffer').get(u'prototype').put(u'indexOf', PyJs_indexOf_4230_)
        pass
        pass
        pass
        pass
        pass
        pass
        @Js
        def PyJs_write_4231_(string, offset, length, encoding, this, arguments, var=var):
            var = Scope({u'write':PyJs_write_4231_, u'length':length, u'string':string, u'encoding':encoding, u'this':this, u'offset':offset, u'arguments':arguments}, var)
            var.registers([u'string', u'encoding', u'length', u'swap', u'offset', u'loweredCase', u'remaining'])
            if PyJsStrictEq(var.get(u'offset'),var.get(u'undefined')):
                var.put(u'encoding', Js(u'utf8'))
                var.put(u'length', var.get(u"this").get(u'length'))
                var.put(u'offset', Js(0.0))
            else:
                if (PyJsStrictEq(var.get(u'length'),var.get(u'undefined')) and PyJsStrictEq(var.get(u'offset',throw=False).typeof(),Js(u'string'))):
                    var.put(u'encoding', var.get(u'offset'))
                    var.put(u'length', var.get(u"this").get(u'length'))
                    var.put(u'offset', Js(0.0))
                else:
                    if var.get(u'isFinite')(var.get(u'offset')):
                        var.put(u'offset', (var.get(u'offset')|Js(0.0)))
                        if var.get(u'isFinite')(var.get(u'length')):
                            var.put(u'length', (var.get(u'length')|Js(0.0)))
                            if PyJsStrictEq(var.get(u'encoding'),var.get(u'undefined')):
                                var.put(u'encoding', Js(u'utf8'))
                        else:
                            var.put(u'encoding', var.get(u'length'))
                            var.put(u'length', var.get(u'undefined'))
                    else:
                        var.put(u'swap', var.get(u'encoding'))
                        var.put(u'encoding', var.get(u'offset'))
                        var.put(u'offset', (var.get(u'length')|Js(0.0)))
                        var.put(u'length', var.get(u'swap'))
            var.put(u'remaining', (var.get(u"this").get(u'length')-var.get(u'offset')))
            if (PyJsStrictEq(var.get(u'length'),var.get(u'undefined')) or (var.get(u'length')>var.get(u'remaining'))):
                var.put(u'length', var.get(u'remaining'))
            if (((var.get(u'string').get(u'length')>Js(0.0)) and ((var.get(u'length')<Js(0.0)) or (var.get(u'offset')<Js(0.0)))) or (var.get(u'offset')>var.get(u"this").get(u'length'))):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'attempt to write outside buffer bounds')))
                raise PyJsTempException
            if var.get(u'encoding').neg():
                var.put(u'encoding', Js(u'utf8'))
            var.put(u'loweredCase', Js(False))
            #for JS loop
            
            while 1:
                while 1:
                    SWITCHED = False
                    CONDITION = (var.get(u'encoding'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'hex')):
                        SWITCHED = True
                        return var.get(u'hexWrite')(var.get(u"this"), var.get(u'string'), var.get(u'offset'), var.get(u'length'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf8')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf-8')):
                        SWITCHED = True
                        return var.get(u'utf8Write')(var.get(u"this"), var.get(u'string'), var.get(u'offset'), var.get(u'length'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ascii')):
                        SWITCHED = True
                        return var.get(u'asciiWrite')(var.get(u"this"), var.get(u'string'), var.get(u'offset'), var.get(u'length'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'binary')):
                        SWITCHED = True
                        return var.get(u'binaryWrite')(var.get(u"this"), var.get(u'string'), var.get(u'offset'), var.get(u'length'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'base64')):
                        SWITCHED = True
                        return var.get(u'base64Write')(var.get(u"this"), var.get(u'string'), var.get(u'offset'), var.get(u'length'))
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ucs2')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'ucs-2')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf16le')):
                        SWITCHED = True
                        pass
                    if SWITCHED or PyJsStrictEq(CONDITION, Js(u'utf-16le')):
                        SWITCHED = True
                        return var.get(u'ucs2Write')(var.get(u"this"), var.get(u'string'), var.get(u'offset'), var.get(u'length'))
                    if True:
                        SWITCHED = True
                        if var.get(u'loweredCase'):
                            PyJsTempException = JsToPyException(var.get(u'TypeError').create((Js(u'Unknown encoding: ')+var.get(u'encoding'))))
                            raise PyJsTempException
                        var.put(u'encoding', (Js(u'')+var.get(u'encoding')).callprop(u'toLowerCase'))
                        var.put(u'loweredCase', var.get(u'true'))
                    SWITCHED = True
                    break
            
        PyJs_write_4231_._set_name(u'write')
        var.get(u'Buffer').get(u'prototype').put(u'write', PyJs_write_4231_)
        @Js
        def PyJs_toJSON_4232_(this, arguments, var=var):
            var = Scope({u'this':this, u'toJSON':PyJs_toJSON_4232_, u'arguments':arguments}, var)
            var.registers([])
            PyJs_Object_4233_ = Js({u'type':Js(u'Buffer'),u'data':var.get(u'Array').get(u'prototype').get(u'slice').callprop(u'call', (var.get(u"this").get(u'_arr') or var.get(u"this")), Js(0.0))})
            return PyJs_Object_4233_
        PyJs_toJSON_4232_._set_name(u'toJSON')
        var.get(u'Buffer').get(u'prototype').put(u'toJSON', PyJs_toJSON_4232_)
        pass
        pass
        var.put(u'MAX_ARGUMENTS_LENGTH', Js(4096))
        pass
        pass
        pass
        pass
        pass
        @Js
        def PyJs_slice_4234_(start, end, this, arguments, var=var):
            var = Scope({u'this':this, u'start':start, u'slice':PyJs_slice_4234_, u'end':end, u'arguments':arguments}, var)
            var.registers([u'end', u'i', u'len', u'start', u'newBuf', u'sliceLen'])
            var.put(u'len', var.get(u"this").get(u'length'))
            var.put(u'start', (~(~var.get(u'start'))))
            var.put(u'end', (var.get(u'len') if PyJsStrictEq(var.get(u'end'),var.get(u'undefined')) else (~(~var.get(u'end')))))
            if (var.get(u'start')<Js(0.0)):
                var.put(u'start', var.get(u'len'), u'+')
                if (var.get(u'start')<Js(0.0)):
                    var.put(u'start', Js(0.0))
            else:
                if (var.get(u'start')>var.get(u'len')):
                    var.put(u'start', var.get(u'len'))
            if (var.get(u'end')<Js(0.0)):
                var.put(u'end', var.get(u'len'), u'+')
                if (var.get(u'end')<Js(0.0)):
                    var.put(u'end', Js(0.0))
            else:
                if (var.get(u'end')>var.get(u'len')):
                    var.put(u'end', var.get(u'len'))
            if (var.get(u'end')<var.get(u'start')):
                var.put(u'end', var.get(u'start'))
            pass
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
                var.put(u'newBuf', var.get(u"this").callprop(u'subarray', var.get(u'start'), var.get(u'end')))
                var.get(u'newBuf').put(u'__proto__', var.get(u'Buffer').get(u'prototype'))
            else:
                var.put(u'sliceLen', (var.get(u'end')-var.get(u'start')))
                var.put(u'newBuf', var.get(u'Buffer').create(var.get(u'sliceLen'), var.get(u'undefined')))
                #for JS loop
                var.put(u'i', Js(0.0))
                while (var.get(u'i')<var.get(u'sliceLen')):
                    try:
                        var.get(u'newBuf').put(var.get(u'i'), var.get(u"this").get((var.get(u'i')+var.get(u'start'))))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            if var.get(u'newBuf').get(u'length'):
                var.get(u'newBuf').put(u'parent', (var.get(u"this").get(u'parent') or var.get(u"this")))
            return var.get(u'newBuf')
        PyJs_slice_4234_._set_name(u'slice')
        var.get(u'Buffer').get(u'prototype').put(u'slice', PyJs_slice_4234_)
        pass
        @Js
        def PyJs_readUIntLE_4235_(offset, byteLength, noAssert, this, arguments, var=var):
            var = Scope({u'byteLength':byteLength, u'noAssert':noAssert, u'this':this, u'arguments':arguments, u'offset':offset, u'readUIntLE':PyJs_readUIntLE_4235_}, var)
            var.registers([u'byteLength', u'noAssert', u'val', u'i', u'offset', u'mul'])
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            var.put(u'byteLength', (var.get(u'byteLength')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), var.get(u'byteLength'), var.get(u"this").get(u'length'))
            var.put(u'val', var.get(u"this").get(var.get(u'offset')))
            var.put(u'mul', Js(1.0))
            var.put(u'i', Js(0.0))
            while ((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))<var.get(u'byteLength')) and var.put(u'mul', Js(256), u'*')):
                var.put(u'val', (var.get(u"this").get((var.get(u'offset')+var.get(u'i')))*var.get(u'mul')), u'+')
            return var.get(u'val')
        PyJs_readUIntLE_4235_._set_name(u'readUIntLE')
        var.get(u'Buffer').get(u'prototype').put(u'readUIntLE', PyJs_readUIntLE_4235_)
        @Js
        def PyJs_readUIntBE_4236_(offset, byteLength, noAssert, this, arguments, var=var):
            var = Scope({u'byteLength':byteLength, u'noAssert':noAssert, u'this':this, u'readUIntBE':PyJs_readUIntBE_4236_, u'offset':offset, u'arguments':arguments}, var)
            var.registers([u'byteLength', u'mul', u'noAssert', u'val', u'offset'])
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            var.put(u'byteLength', (var.get(u'byteLength')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), var.get(u'byteLength'), var.get(u"this").get(u'length'))
            var.put(u'val', var.get(u"this").get((var.get(u'offset')+var.put(u'byteLength',Js(var.get(u'byteLength').to_number())-Js(1)))))
            var.put(u'mul', Js(1.0))
            while ((var.get(u'byteLength')>Js(0.0)) and var.put(u'mul', Js(256), u'*')):
                var.put(u'val', (var.get(u"this").get((var.get(u'offset')+var.put(u'byteLength',Js(var.get(u'byteLength').to_number())-Js(1))))*var.get(u'mul')), u'+')
            return var.get(u'val')
        PyJs_readUIntBE_4236_._set_name(u'readUIntBE')
        var.get(u'Buffer').get(u'prototype').put(u'readUIntBE', PyJs_readUIntBE_4236_)
        @Js
        def PyJs_readUInt8_4237_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'noAssert':noAssert, u'arguments':arguments, u'readUInt8':PyJs_readUInt8_4237_, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(1.0), var.get(u"this").get(u'length'))
            return var.get(u"this").get(var.get(u'offset'))
        PyJs_readUInt8_4237_._set_name(u'readUInt8')
        var.get(u'Buffer').get(u'prototype').put(u'readUInt8', PyJs_readUInt8_4237_)
        @Js
        def PyJs_readUInt16LE_4238_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'noAssert':noAssert, u'readUInt16LE':PyJs_readUInt16LE_4238_, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(2.0), var.get(u"this").get(u'length'))
            return (var.get(u"this").get(var.get(u'offset'))|(var.get(u"this").get((var.get(u'offset')+Js(1.0)))<<Js(8.0)))
        PyJs_readUInt16LE_4238_._set_name(u'readUInt16LE')
        var.get(u'Buffer').get(u'prototype').put(u'readUInt16LE', PyJs_readUInt16LE_4238_)
        @Js
        def PyJs_readUInt16BE_4239_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'readUInt16BE':PyJs_readUInt16BE_4239_, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(2.0), var.get(u"this").get(u'length'))
            return ((var.get(u"this").get(var.get(u'offset'))<<Js(8.0))|var.get(u"this").get((var.get(u'offset')+Js(1.0))))
        PyJs_readUInt16BE_4239_._set_name(u'readUInt16BE')
        var.get(u'Buffer').get(u'prototype').put(u'readUInt16BE', PyJs_readUInt16BE_4239_)
        @Js
        def PyJs_readUInt32LE_4240_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'readUInt32LE':PyJs_readUInt32LE_4240_, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(4.0), var.get(u"this").get(u'length'))
            return (((var.get(u"this").get(var.get(u'offset'))|(var.get(u"this").get((var.get(u'offset')+Js(1.0)))<<Js(8.0)))|(var.get(u"this").get((var.get(u'offset')+Js(2.0)))<<Js(16.0)))+(var.get(u"this").get((var.get(u'offset')+Js(3.0)))*Js(16777216)))
        PyJs_readUInt32LE_4240_._set_name(u'readUInt32LE')
        var.get(u'Buffer').get(u'prototype').put(u'readUInt32LE', PyJs_readUInt32LE_4240_)
        @Js
        def PyJs_readUInt32BE_4241_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'noAssert':noAssert, u'readUInt32BE':PyJs_readUInt32BE_4241_, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(4.0), var.get(u"this").get(u'length'))
            return ((var.get(u"this").get(var.get(u'offset'))*Js(16777216))+(((var.get(u"this").get((var.get(u'offset')+Js(1.0)))<<Js(16.0))|(var.get(u"this").get((var.get(u'offset')+Js(2.0)))<<Js(8.0)))|var.get(u"this").get((var.get(u'offset')+Js(3.0)))))
        PyJs_readUInt32BE_4241_._set_name(u'readUInt32BE')
        var.get(u'Buffer').get(u'prototype').put(u'readUInt32BE', PyJs_readUInt32BE_4241_)
        @Js
        def PyJs_readIntLE_4242_(offset, byteLength, noAssert, this, arguments, var=var):
            var = Scope({u'byteLength':byteLength, u'noAssert':noAssert, u'this':this, u'readIntLE':PyJs_readIntLE_4242_, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'byteLength', u'noAssert', u'val', u'i', u'offset', u'mul'])
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            var.put(u'byteLength', (var.get(u'byteLength')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), var.get(u'byteLength'), var.get(u"this").get(u'length'))
            var.put(u'val', var.get(u"this").get(var.get(u'offset')))
            var.put(u'mul', Js(1.0))
            var.put(u'i', Js(0.0))
            while ((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))<var.get(u'byteLength')) and var.put(u'mul', Js(256), u'*')):
                var.put(u'val', (var.get(u"this").get((var.get(u'offset')+var.get(u'i')))*var.get(u'mul')), u'+')
            var.put(u'mul', Js(128), u'*')
            if (var.get(u'val')>=var.get(u'mul')):
                var.put(u'val', var.get(u'Math').callprop(u'pow', Js(2.0), (Js(8.0)*var.get(u'byteLength'))), u'-')
            return var.get(u'val')
        PyJs_readIntLE_4242_._set_name(u'readIntLE')
        var.get(u'Buffer').get(u'prototype').put(u'readIntLE', PyJs_readIntLE_4242_)
        @Js
        def PyJs_readIntBE_4243_(offset, byteLength, noAssert, this, arguments, var=var):
            var = Scope({u'byteLength':byteLength, u'readIntBE':PyJs_readIntBE_4243_, u'noAssert':noAssert, u'this':this, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'byteLength', u'noAssert', u'val', u'i', u'offset', u'mul'])
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            var.put(u'byteLength', (var.get(u'byteLength')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), var.get(u'byteLength'), var.get(u"this").get(u'length'))
            var.put(u'i', var.get(u'byteLength'))
            var.put(u'mul', Js(1.0))
            var.put(u'val', var.get(u"this").get((var.get(u'offset')+var.put(u'i',Js(var.get(u'i').to_number())-Js(1)))))
            while ((var.get(u'i')>Js(0.0)) and var.put(u'mul', Js(256), u'*')):
                var.put(u'val', (var.get(u"this").get((var.get(u'offset')+var.put(u'i',Js(var.get(u'i').to_number())-Js(1))))*var.get(u'mul')), u'+')
            var.put(u'mul', Js(128), u'*')
            if (var.get(u'val')>=var.get(u'mul')):
                var.put(u'val', var.get(u'Math').callprop(u'pow', Js(2.0), (Js(8.0)*var.get(u'byteLength'))), u'-')
            return var.get(u'val')
        PyJs_readIntBE_4243_._set_name(u'readIntBE')
        var.get(u'Buffer').get(u'prototype').put(u'readIntBE', PyJs_readIntBE_4243_)
        @Js
        def PyJs_readInt8_4244_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'noAssert':noAssert, u'readInt8':PyJs_readInt8_4244_, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(1.0), var.get(u"this").get(u'length'))
            if (var.get(u"this").get(var.get(u'offset'))&Js(128)).neg():
                return var.get(u"this").get(var.get(u'offset'))
            return (((Js(255)-var.get(u"this").get(var.get(u'offset')))+Js(1.0))*(-Js(1.0)))
        PyJs_readInt8_4244_._set_name(u'readInt8')
        var.get(u'Buffer').get(u'prototype').put(u'readInt8', PyJs_readInt8_4244_)
        @Js
        def PyJs_readInt16LE_4245_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'readInt16LE':PyJs_readInt16LE_4245_, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'val', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(2.0), var.get(u"this").get(u'length'))
            var.put(u'val', (var.get(u"this").get(var.get(u'offset'))|(var.get(u"this").get((var.get(u'offset')+Js(1.0)))<<Js(8.0))))
            return ((var.get(u'val')|Js(4294901760)) if (var.get(u'val')&Js(32768)) else var.get(u'val'))
        PyJs_readInt16LE_4245_._set_name(u'readInt16LE')
        var.get(u'Buffer').get(u'prototype').put(u'readInt16LE', PyJs_readInt16LE_4245_)
        @Js
        def PyJs_readInt16BE_4246_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'readInt16BE':PyJs_readInt16BE_4246_, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'val', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(2.0), var.get(u"this").get(u'length'))
            var.put(u'val', (var.get(u"this").get((var.get(u'offset')+Js(1.0)))|(var.get(u"this").get(var.get(u'offset'))<<Js(8.0))))
            return ((var.get(u'val')|Js(4294901760)) if (var.get(u'val')&Js(32768)) else var.get(u'val'))
        PyJs_readInt16BE_4246_._set_name(u'readInt16BE')
        var.get(u'Buffer').get(u'prototype').put(u'readInt16BE', PyJs_readInt16BE_4246_)
        @Js
        def PyJs_readInt32LE_4247_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'readInt32LE':PyJs_readInt32LE_4247_, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(4.0), var.get(u"this").get(u'length'))
            return (((var.get(u"this").get(var.get(u'offset'))|(var.get(u"this").get((var.get(u'offset')+Js(1.0)))<<Js(8.0)))|(var.get(u"this").get((var.get(u'offset')+Js(2.0)))<<Js(16.0)))|(var.get(u"this").get((var.get(u'offset')+Js(3.0)))<<Js(24.0)))
        PyJs_readInt32LE_4247_._set_name(u'readInt32LE')
        var.get(u'Buffer').get(u'prototype').put(u'readInt32LE', PyJs_readInt32LE_4247_)
        @Js
        def PyJs_readInt32BE_4248_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'readInt32BE':PyJs_readInt32BE_4248_, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(4.0), var.get(u"this").get(u'length'))
            return ((((var.get(u"this").get(var.get(u'offset'))<<Js(24.0))|(var.get(u"this").get((var.get(u'offset')+Js(1.0)))<<Js(16.0)))|(var.get(u"this").get((var.get(u'offset')+Js(2.0)))<<Js(8.0)))|var.get(u"this").get((var.get(u'offset')+Js(3.0))))
        PyJs_readInt32BE_4248_._set_name(u'readInt32BE')
        var.get(u'Buffer').get(u'prototype').put(u'readInt32BE', PyJs_readInt32BE_4248_)
        @Js
        def PyJs_readFloatLE_4249_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'readFloatLE':PyJs_readFloatLE_4249_, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(4.0), var.get(u"this").get(u'length'))
            return var.get(u'ieee754').callprop(u'read', var.get(u"this"), var.get(u'offset'), var.get(u'true'), Js(23.0), Js(4.0))
        PyJs_readFloatLE_4249_._set_name(u'readFloatLE')
        var.get(u'Buffer').get(u'prototype').put(u'readFloatLE', PyJs_readFloatLE_4249_)
        @Js
        def PyJs_readFloatBE_4250_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'readFloatBE':PyJs_readFloatBE_4250_, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(4.0), var.get(u"this").get(u'length'))
            return var.get(u'ieee754').callprop(u'read', var.get(u"this"), var.get(u'offset'), Js(False), Js(23.0), Js(4.0))
        PyJs_readFloatBE_4250_._set_name(u'readFloatBE')
        var.get(u'Buffer').get(u'prototype').put(u'readFloatBE', PyJs_readFloatBE_4250_)
        @Js
        def PyJs_readDoubleLE_4251_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'noAssert':noAssert, u'arguments':arguments, u'readDoubleLE':PyJs_readDoubleLE_4251_, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(8.0), var.get(u"this").get(u'length'))
            return var.get(u'ieee754').callprop(u'read', var.get(u"this"), var.get(u'offset'), var.get(u'true'), Js(52.0), Js(8.0))
        PyJs_readDoubleLE_4251_._set_name(u'readDoubleLE')
        var.get(u'Buffer').get(u'prototype').put(u'readDoubleLE', PyJs_readDoubleLE_4251_)
        @Js
        def PyJs_readDoubleBE_4252_(offset, noAssert, this, arguments, var=var):
            var = Scope({u'this':this, u'readDoubleBE':PyJs_readDoubleBE_4252_, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'offset'])
            if var.get(u'noAssert').neg():
                var.get(u'checkOffset')(var.get(u'offset'), Js(8.0), var.get(u"this").get(u'length'))
            return var.get(u'ieee754').callprop(u'read', var.get(u"this"), var.get(u'offset'), Js(False), Js(52.0), Js(8.0))
        PyJs_readDoubleBE_4252_._set_name(u'readDoubleBE')
        var.get(u'Buffer').get(u'prototype').put(u'readDoubleBE', PyJs_readDoubleBE_4252_)
        pass
        @Js
        def PyJs_writeUIntLE_4253_(value, offset, byteLength, noAssert, this, arguments, var=var):
            var = Scope({u'byteLength':byteLength, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset, u'this':this, u'writeUIntLE':PyJs_writeUIntLE_4253_, u'value':value}, var)
            var.registers([u'byteLength', u'noAssert', u'i', u'value', u'offset', u'mul'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            var.put(u'byteLength', (var.get(u'byteLength')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), var.get(u'byteLength'), var.get(u'Math').callprop(u'pow', Js(2.0), (Js(8.0)*var.get(u'byteLength'))), Js(0.0))
            var.put(u'mul', Js(1.0))
            var.put(u'i', Js(0.0))
            var.get(u"this").put(var.get(u'offset'), (var.get(u'value')&Js(255)))
            while ((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))<var.get(u'byteLength')) and var.put(u'mul', Js(256), u'*')):
                var.get(u"this").put((var.get(u'offset')+var.get(u'i')), ((var.get(u'value')/var.get(u'mul'))&Js(255)))
            return (var.get(u'offset')+var.get(u'byteLength'))
        PyJs_writeUIntLE_4253_._set_name(u'writeUIntLE')
        var.get(u'Buffer').get(u'prototype').put(u'writeUIntLE', PyJs_writeUIntLE_4253_)
        @Js
        def PyJs_writeUIntBE_4254_(value, offset, byteLength, noAssert, this, arguments, var=var):
            var = Scope({u'byteLength':byteLength, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset, u'this':this, u'writeUIntBE':PyJs_writeUIntBE_4254_, u'value':value}, var)
            var.registers([u'byteLength', u'noAssert', u'i', u'value', u'offset', u'mul'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            var.put(u'byteLength', (var.get(u'byteLength')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), var.get(u'byteLength'), var.get(u'Math').callprop(u'pow', Js(2.0), (Js(8.0)*var.get(u'byteLength'))), Js(0.0))
            var.put(u'i', (var.get(u'byteLength')-Js(1.0)))
            var.put(u'mul', Js(1.0))
            var.get(u"this").put((var.get(u'offset')+var.get(u'i')), (var.get(u'value')&Js(255)))
            while ((var.put(u'i',Js(var.get(u'i').to_number())-Js(1))>=Js(0.0)) and var.put(u'mul', Js(256), u'*')):
                var.get(u"this").put((var.get(u'offset')+var.get(u'i')), ((var.get(u'value')/var.get(u'mul'))&Js(255)))
            return (var.get(u'offset')+var.get(u'byteLength'))
        PyJs_writeUIntBE_4254_._set_name(u'writeUIntBE')
        var.get(u'Buffer').get(u'prototype').put(u'writeUIntBE', PyJs_writeUIntBE_4254_)
        @Js
        def PyJs_writeUInt8_4255_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'this':this, u'writeUInt8':PyJs_writeUInt8_4255_, u'value':value, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(1.0), Js(255), Js(0.0))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT').neg():
                var.put(u'value', var.get(u'Math').callprop(u'floor', var.get(u'value')))
            var.get(u"this").put(var.get(u'offset'), (var.get(u'value')&Js(255)))
            return (var.get(u'offset')+Js(1.0))
        PyJs_writeUInt8_4255_._set_name(u'writeUInt8')
        var.get(u'Buffer').get(u'prototype').put(u'writeUInt8', PyJs_writeUInt8_4255_)
        pass
        @Js
        def PyJs_writeUInt16LE_4256_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'writeUInt16LE':PyJs_writeUInt16LE_4256_, u'noAssert':noAssert, u'this':this, u'value':value, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(2.0), Js(65535), Js(0.0))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
                var.get(u"this").put(var.get(u'offset'), (var.get(u'value')&Js(255)))
                var.get(u"this").put((var.get(u'offset')+Js(1.0)), PyJsBshift(var.get(u'value'),Js(8.0)))
            else:
                var.get(u'objectWriteUInt16')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), var.get(u'true'))
            return (var.get(u'offset')+Js(2.0))
        PyJs_writeUInt16LE_4256_._set_name(u'writeUInt16LE')
        var.get(u'Buffer').get(u'prototype').put(u'writeUInt16LE', PyJs_writeUInt16LE_4256_)
        @Js
        def PyJs_writeUInt16BE_4257_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'this':this, u'writeUInt16BE':PyJs_writeUInt16BE_4257_, u'value':value, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(2.0), Js(65535), Js(0.0))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
                var.get(u"this").put(var.get(u'offset'), PyJsBshift(var.get(u'value'),Js(8.0)))
                var.get(u"this").put((var.get(u'offset')+Js(1.0)), (var.get(u'value')&Js(255)))
            else:
                var.get(u'objectWriteUInt16')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(False))
            return (var.get(u'offset')+Js(2.0))
        PyJs_writeUInt16BE_4257_._set_name(u'writeUInt16BE')
        var.get(u'Buffer').get(u'prototype').put(u'writeUInt16BE', PyJs_writeUInt16BE_4257_)
        pass
        @Js
        def PyJs_writeUInt32LE_4258_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'writeUInt32LE':PyJs_writeUInt32LE_4258_, u'noAssert':noAssert, u'this':this, u'value':value, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(4.0), Js(4294967295), Js(0.0))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
                var.get(u"this").put((var.get(u'offset')+Js(3.0)), PyJsBshift(var.get(u'value'),Js(24.0)))
                var.get(u"this").put((var.get(u'offset')+Js(2.0)), PyJsBshift(var.get(u'value'),Js(16.0)))
                var.get(u"this").put((var.get(u'offset')+Js(1.0)), PyJsBshift(var.get(u'value'),Js(8.0)))
                var.get(u"this").put(var.get(u'offset'), (var.get(u'value')&Js(255)))
            else:
                var.get(u'objectWriteUInt32')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), var.get(u'true'))
            return (var.get(u'offset')+Js(4.0))
        PyJs_writeUInt32LE_4258_._set_name(u'writeUInt32LE')
        var.get(u'Buffer').get(u'prototype').put(u'writeUInt32LE', PyJs_writeUInt32LE_4258_)
        @Js
        def PyJs_writeUInt32BE_4259_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'this':this, u'value':value, u'writeUInt32BE':PyJs_writeUInt32BE_4259_, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(4.0), Js(4294967295), Js(0.0))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
                var.get(u"this").put(var.get(u'offset'), PyJsBshift(var.get(u'value'),Js(24.0)))
                var.get(u"this").put((var.get(u'offset')+Js(1.0)), PyJsBshift(var.get(u'value'),Js(16.0)))
                var.get(u"this").put((var.get(u'offset')+Js(2.0)), PyJsBshift(var.get(u'value'),Js(8.0)))
                var.get(u"this").put((var.get(u'offset')+Js(3.0)), (var.get(u'value')&Js(255)))
            else:
                var.get(u'objectWriteUInt32')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(False))
            return (var.get(u'offset')+Js(4.0))
        PyJs_writeUInt32BE_4259_._set_name(u'writeUInt32BE')
        var.get(u'Buffer').get(u'prototype').put(u'writeUInt32BE', PyJs_writeUInt32BE_4259_)
        @Js
        def PyJs_writeIntLE_4260_(value, offset, byteLength, noAssert, this, arguments, var=var):
            var = Scope({u'byteLength':byteLength, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset, u'this':this, u'writeIntLE':PyJs_writeIntLE_4260_, u'value':value}, var)
            var.registers([u'byteLength', u'noAssert', u'sub', u'i', u'value', u'limit', u'offset', u'mul'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.put(u'limit', var.get(u'Math').callprop(u'pow', Js(2.0), ((Js(8.0)*var.get(u'byteLength'))-Js(1.0))))
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), var.get(u'byteLength'), (var.get(u'limit')-Js(1.0)), (-var.get(u'limit')))
            var.put(u'i', Js(0.0))
            var.put(u'mul', Js(1.0))
            var.put(u'sub', (Js(1.0) if (var.get(u'value')<Js(0.0)) else Js(0.0)))
            var.get(u"this").put(var.get(u'offset'), (var.get(u'value')&Js(255)))
            while ((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))<var.get(u'byteLength')) and var.put(u'mul', Js(256), u'*')):
                var.get(u"this").put((var.get(u'offset')+var.get(u'i')), ((((var.get(u'value')/var.get(u'mul'))>>Js(0.0))-var.get(u'sub'))&Js(255)))
            return (var.get(u'offset')+var.get(u'byteLength'))
        PyJs_writeIntLE_4260_._set_name(u'writeIntLE')
        var.get(u'Buffer').get(u'prototype').put(u'writeIntLE', PyJs_writeIntLE_4260_)
        @Js
        def PyJs_writeIntBE_4261_(value, offset, byteLength, noAssert, this, arguments, var=var):
            var = Scope({u'byteLength':byteLength, u'noAssert':noAssert, u'arguments':arguments, u'offset':offset, u'this':this, u'writeIntBE':PyJs_writeIntBE_4261_, u'value':value}, var)
            var.registers([u'byteLength', u'noAssert', u'sub', u'i', u'value', u'limit', u'offset', u'mul'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.put(u'limit', var.get(u'Math').callprop(u'pow', Js(2.0), ((Js(8.0)*var.get(u'byteLength'))-Js(1.0))))
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), var.get(u'byteLength'), (var.get(u'limit')-Js(1.0)), (-var.get(u'limit')))
            var.put(u'i', (var.get(u'byteLength')-Js(1.0)))
            var.put(u'mul', Js(1.0))
            var.put(u'sub', (Js(1.0) if (var.get(u'value')<Js(0.0)) else Js(0.0)))
            var.get(u"this").put((var.get(u'offset')+var.get(u'i')), (var.get(u'value')&Js(255)))
            while ((var.put(u'i',Js(var.get(u'i').to_number())-Js(1))>=Js(0.0)) and var.put(u'mul', Js(256), u'*')):
                var.get(u"this").put((var.get(u'offset')+var.get(u'i')), ((((var.get(u'value')/var.get(u'mul'))>>Js(0.0))-var.get(u'sub'))&Js(255)))
            return (var.get(u'offset')+var.get(u'byteLength'))
        PyJs_writeIntBE_4261_._set_name(u'writeIntBE')
        var.get(u'Buffer').get(u'prototype').put(u'writeIntBE', PyJs_writeIntBE_4261_)
        @Js
        def PyJs_writeInt8_4262_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'writeInt8':PyJs_writeInt8_4262_, u'noAssert':noAssert, u'this':this, u'value':value, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(1.0), Js(127), (-Js(128)))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT').neg():
                var.put(u'value', var.get(u'Math').callprop(u'floor', var.get(u'value')))
            if (var.get(u'value')<Js(0.0)):
                var.put(u'value', ((Js(255)+var.get(u'value'))+Js(1.0)))
            var.get(u"this").put(var.get(u'offset'), (var.get(u'value')&Js(255)))
            return (var.get(u'offset')+Js(1.0))
        PyJs_writeInt8_4262_._set_name(u'writeInt8')
        var.get(u'Buffer').get(u'prototype').put(u'writeInt8', PyJs_writeInt8_4262_)
        @Js
        def PyJs_writeInt16LE_4263_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'this':this, u'value':value, u'writeInt16LE':PyJs_writeInt16LE_4263_, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(2.0), Js(32767), (-Js(32768)))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
                var.get(u"this").put(var.get(u'offset'), (var.get(u'value')&Js(255)))
                var.get(u"this").put((var.get(u'offset')+Js(1.0)), PyJsBshift(var.get(u'value'),Js(8.0)))
            else:
                var.get(u'objectWriteUInt16')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), var.get(u'true'))
            return (var.get(u'offset')+Js(2.0))
        PyJs_writeInt16LE_4263_._set_name(u'writeInt16LE')
        var.get(u'Buffer').get(u'prototype').put(u'writeInt16LE', PyJs_writeInt16LE_4263_)
        @Js
        def PyJs_writeInt16BE_4264_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'this':this, u'value':value, u'arguments':arguments, u'offset':offset, u'writeInt16BE':PyJs_writeInt16BE_4264_}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(2.0), Js(32767), (-Js(32768)))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
                var.get(u"this").put(var.get(u'offset'), PyJsBshift(var.get(u'value'),Js(8.0)))
                var.get(u"this").put((var.get(u'offset')+Js(1.0)), (var.get(u'value')&Js(255)))
            else:
                var.get(u'objectWriteUInt16')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(False))
            return (var.get(u'offset')+Js(2.0))
        PyJs_writeInt16BE_4264_._set_name(u'writeInt16BE')
        var.get(u'Buffer').get(u'prototype').put(u'writeInt16BE', PyJs_writeInt16BE_4264_)
        @Js
        def PyJs_writeInt32LE_4265_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'this':this, u'value':value, u'arguments':arguments, u'offset':offset, u'writeInt32LE':PyJs_writeInt32LE_4265_}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(4.0), Js(2147483647), (-Js(2147483648)))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
                var.get(u"this").put(var.get(u'offset'), (var.get(u'value')&Js(255)))
                var.get(u"this").put((var.get(u'offset')+Js(1.0)), PyJsBshift(var.get(u'value'),Js(8.0)))
                var.get(u"this").put((var.get(u'offset')+Js(2.0)), PyJsBshift(var.get(u'value'),Js(16.0)))
                var.get(u"this").put((var.get(u'offset')+Js(3.0)), PyJsBshift(var.get(u'value'),Js(24.0)))
            else:
                var.get(u'objectWriteUInt32')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), var.get(u'true'))
            return (var.get(u'offset')+Js(4.0))
        PyJs_writeInt32LE_4265_._set_name(u'writeInt32LE')
        var.get(u'Buffer').get(u'prototype').put(u'writeInt32LE', PyJs_writeInt32LE_4265_)
        @Js
        def PyJs_writeInt32BE_4266_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'this':this, u'value':value, u'writeInt32BE':PyJs_writeInt32BE_4266_, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            var.put(u'value', (+var.get(u'value')))
            var.put(u'offset', (var.get(u'offset')|Js(0.0)))
            if var.get(u'noAssert').neg():
                var.get(u'checkInt')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(4.0), Js(2147483647), (-Js(2147483648)))
            if (var.get(u'value')<Js(0.0)):
                var.put(u'value', ((Js(4294967295)+var.get(u'value'))+Js(1.0)))
            if var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT'):
                var.get(u"this").put(var.get(u'offset'), PyJsBshift(var.get(u'value'),Js(24.0)))
                var.get(u"this").put((var.get(u'offset')+Js(1.0)), PyJsBshift(var.get(u'value'),Js(16.0)))
                var.get(u"this").put((var.get(u'offset')+Js(2.0)), PyJsBshift(var.get(u'value'),Js(8.0)))
                var.get(u"this").put((var.get(u'offset')+Js(3.0)), (var.get(u'value')&Js(255)))
            else:
                var.get(u'objectWriteUInt32')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(False))
            return (var.get(u'offset')+Js(4.0))
        PyJs_writeInt32BE_4266_._set_name(u'writeInt32BE')
        var.get(u'Buffer').get(u'prototype').put(u'writeInt32BE', PyJs_writeInt32BE_4266_)
        pass
        pass
        @Js
        def PyJs_writeFloatLE_4267_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'this':this, u'value':value, u'arguments':arguments, u'offset':offset, u'writeFloatLE':PyJs_writeFloatLE_4267_}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            return var.get(u'writeFloat')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), var.get(u'true'), var.get(u'noAssert'))
        PyJs_writeFloatLE_4267_._set_name(u'writeFloatLE')
        var.get(u'Buffer').get(u'prototype').put(u'writeFloatLE', PyJs_writeFloatLE_4267_)
        @Js
        def PyJs_writeFloatBE_4268_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'this':this, u'value':value, u'writeFloatBE':PyJs_writeFloatBE_4268_, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            return var.get(u'writeFloat')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(False), var.get(u'noAssert'))
        PyJs_writeFloatBE_4268_._set_name(u'writeFloatBE')
        var.get(u'Buffer').get(u'prototype').put(u'writeFloatBE', PyJs_writeFloatBE_4268_)
        pass
        @Js
        def PyJs_writeDoubleLE_4269_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'this':this, u'value':value, u'writeDoubleLE':PyJs_writeDoubleLE_4269_, u'arguments':arguments, u'offset':offset}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            return var.get(u'writeDouble')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), var.get(u'true'), var.get(u'noAssert'))
        PyJs_writeDoubleLE_4269_._set_name(u'writeDoubleLE')
        var.get(u'Buffer').get(u'prototype').put(u'writeDoubleLE', PyJs_writeDoubleLE_4269_)
        @Js
        def PyJs_writeDoubleBE_4270_(value, offset, noAssert, this, arguments, var=var):
            var = Scope({u'noAssert':noAssert, u'this':this, u'value':value, u'arguments':arguments, u'offset':offset, u'writeDoubleBE':PyJs_writeDoubleBE_4270_}, var)
            var.registers([u'noAssert', u'value', u'offset'])
            return var.get(u'writeDouble')(var.get(u"this"), var.get(u'value'), var.get(u'offset'), Js(False), var.get(u'noAssert'))
        PyJs_writeDoubleBE_4270_._set_name(u'writeDoubleBE')
        var.get(u'Buffer').get(u'prototype').put(u'writeDoubleBE', PyJs_writeDoubleBE_4270_)
        @Js
        def PyJs_copy_4271_(target, targetStart, start, end, this, arguments, var=var):
            var = Scope({u'start':start, u'targetStart':targetStart, u'end':end, u'target':target, u'this':this, u'copy':PyJs_copy_4271_, u'arguments':arguments}, var)
            var.registers([u'targetStart', u'end', u'target', u'i', u'len', u'start'])
            if var.get(u'start').neg():
                var.put(u'start', Js(0.0))
            if (var.get(u'end').neg() and PyJsStrictNeq(var.get(u'end'),Js(0.0))):
                var.put(u'end', var.get(u"this").get(u'length'))
            if (var.get(u'targetStart')>=var.get(u'target').get(u'length')):
                var.put(u'targetStart', var.get(u'target').get(u'length'))
            if var.get(u'targetStart').neg():
                var.put(u'targetStart', Js(0.0))
            if ((var.get(u'end')>Js(0.0)) and (var.get(u'end')<var.get(u'start'))):
                var.put(u'end', var.get(u'start'))
            if PyJsStrictEq(var.get(u'end'),var.get(u'start')):
                return Js(0.0)
            if (PyJsStrictEq(var.get(u'target').get(u'length'),Js(0.0)) or PyJsStrictEq(var.get(u"this").get(u'length'),Js(0.0))):
                return Js(0.0)
            if (var.get(u'targetStart')<Js(0.0)):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'targetStart out of bounds')))
                raise PyJsTempException
            if ((var.get(u'start')<Js(0.0)) or (var.get(u'start')>=var.get(u"this").get(u'length'))):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'sourceStart out of bounds')))
                raise PyJsTempException
            if (var.get(u'end')<Js(0.0)):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'sourceEnd out of bounds')))
                raise PyJsTempException
            if (var.get(u'end')>var.get(u"this").get(u'length')):
                var.put(u'end', var.get(u"this").get(u'length'))
            if ((var.get(u'target').get(u'length')-var.get(u'targetStart'))<(var.get(u'end')-var.get(u'start'))):
                var.put(u'end', ((var.get(u'target').get(u'length')-var.get(u'targetStart'))+var.get(u'start')))
            var.put(u'len', (var.get(u'end')-var.get(u'start')))
            pass
            if ((PyJsStrictEq(var.get(u"this"),var.get(u'target')) and (var.get(u'start')<var.get(u'targetStart'))) and (var.get(u'targetStart')<var.get(u'end'))):
                #for JS loop
                var.put(u'i', (var.get(u'len')-Js(1.0)))
                while (var.get(u'i')>=Js(0.0)):
                    try:
                        var.get(u'target').put((var.get(u'i')+var.get(u'targetStart')), var.get(u"this").get((var.get(u'i')+var.get(u'start'))))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
            else:
                if ((var.get(u'len')<Js(1000.0)) or var.get(u'Buffer').get(u'TYPED_ARRAY_SUPPORT').neg()):
                    #for JS loop
                    var.put(u'i', Js(0.0))
                    while (var.get(u'i')<var.get(u'len')):
                        try:
                            var.get(u'target').put((var.get(u'i')+var.get(u'targetStart')), var.get(u"this").get((var.get(u'i')+var.get(u'start'))))
                        finally:
                                (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                else:
                    var.get(u'Uint8Array').get(u'prototype').get(u'set').callprop(u'call', var.get(u'target'), var.get(u"this").callprop(u'subarray', var.get(u'start'), (var.get(u'start')+var.get(u'len'))), var.get(u'targetStart'))
            return var.get(u'len')
        PyJs_copy_4271_._set_name(u'copy')
        var.get(u'Buffer').get(u'prototype').put(u'copy', PyJs_copy_4271_)
        @Js
        def PyJs_fill_4272_(value, start, end, this, arguments, var=var):
            var = Scope({u'end':end, u'this':this, u'value':value, u'start':start, u'arguments':arguments, u'fill':PyJs_fill_4272_}, var)
            var.registers([u'end', u'i', u'bytes', u'value', u'start', u'len'])
            if var.get(u'value').neg():
                var.put(u'value', Js(0.0))
            if var.get(u'start').neg():
                var.put(u'start', Js(0.0))
            if var.get(u'end').neg():
                var.put(u'end', var.get(u"this").get(u'length'))
            if (var.get(u'end')<var.get(u'start')):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'end < start')))
                raise PyJsTempException
            if PyJsStrictEq(var.get(u'end'),var.get(u'start')):
                return var.get('undefined')
            if PyJsStrictEq(var.get(u"this").get(u'length'),Js(0.0)):
                return var.get('undefined')
            if ((var.get(u'start')<Js(0.0)) or (var.get(u'start')>=var.get(u"this").get(u'length'))):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'start out of bounds')))
                raise PyJsTempException
            if ((var.get(u'end')<Js(0.0)) or (var.get(u'end')>var.get(u"this").get(u'length'))):
                PyJsTempException = JsToPyException(var.get(u'RangeError').create(Js(u'end out of bounds')))
                raise PyJsTempException
            pass
            if PyJsStrictEq(var.get(u'value',throw=False).typeof(),Js(u'number')):
                #for JS loop
                var.put(u'i', var.get(u'start'))
                while (var.get(u'i')<var.get(u'end')):
                    try:
                        var.get(u"this").put(var.get(u'i'), var.get(u'value'))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            else:
                var.put(u'bytes', var.get(u'utf8ToBytes')(var.get(u'value').callprop(u'toString')))
                var.put(u'len', var.get(u'bytes').get(u'length'))
                #for JS loop
                var.put(u'i', var.get(u'start'))
                while (var.get(u'i')<var.get(u'end')):
                    try:
                        var.get(u"this").put(var.get(u'i'), var.get(u'bytes').get((var.get(u'i')%var.get(u'len'))))
                    finally:
                            (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u"this")
        PyJs_fill_4272_._set_name(u'fill')
        var.get(u'Buffer').get(u'prototype').put(u'fill', PyJs_fill_4272_)
        var.put(u'INVALID_BASE64_RE', JsRegExp(u'/[^+\\/0-9A-Za-z-_]/g'))
        pass
        pass
        pass
        pass
        pass
        pass
        pass
        pass
    PyJs_anonymous_4217_._set_name(u'anonymous')
    PyJs_anonymous_4217_.callprop(u'call', var.get(u"this"), (var.get(u'global') if PyJsStrictNeq(var.get(u'global',throw=False).typeof(),Js(u'undefined')) else (var.get(u'self') if PyJsStrictNeq(var.get(u'self',throw=False).typeof(),Js(u'undefined')) else (var.get(u'window') if PyJsStrictNeq(var.get(u'window',throw=False).typeof(),Js(u'undefined')) else PyJs_Object_4216_))))
PyJs_anonymous_4215_._set_name(u'anonymous')
PyJs_Object_4273_ = Js({u'base64-js':Js(526.0),u'ieee754':Js(527.0),u'isarray':Js(528.0)})
@Js
def PyJs_anonymous_4274_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'tripletToBase64', u'Arr', u'fromByteArray', u'require', u'exports', u'encodeChunk', u'init', u'toByteArray', u'lookup', u'module', u'revLookup'])
    @Js
    def PyJsHoisted_tripletToBase64_(num, this, arguments, var=var):
        var = Scope({u'this':this, u'num':num, u'arguments':arguments}, var)
        var.registers([u'num'])
        return (((var.get(u'lookup').get(((var.get(u'num')>>Js(18.0))&Js(63)))+var.get(u'lookup').get(((var.get(u'num')>>Js(12.0))&Js(63))))+var.get(u'lookup').get(((var.get(u'num')>>Js(6.0))&Js(63))))+var.get(u'lookup').get((var.get(u'num')&Js(63))))
    PyJsHoisted_tripletToBase64_.func_name = u'tripletToBase64'
    var.put(u'tripletToBase64', PyJsHoisted_tripletToBase64_)
    @Js
    def PyJsHoisted_init_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'i', u'code', u'len'])
        var.put(u'code', Js(u'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'))
        #for JS loop
        var.put(u'i', Js(0.0))
        var.put(u'len', var.get(u'code').get(u'length'))
        while (var.get(u'i')<var.get(u'len')):
            try:
                var.get(u'lookup').put(var.get(u'i'), var.get(u'code').get(var.get(u'i')))
                var.get(u'revLookup').put(var.get(u'code').callprop(u'charCodeAt', var.get(u'i')), var.get(u'i'))
            finally:
                    var.put(u'i',Js(var.get(u'i').to_number())+Js(1))
        var.get(u'revLookup').put(Js(u'-').callprop(u'charCodeAt', Js(0.0)), Js(62.0))
        var.get(u'revLookup').put(Js(u'_').callprop(u'charCodeAt', Js(0.0)), Js(63.0))
    PyJsHoisted_init_.func_name = u'init'
    var.put(u'init', PyJsHoisted_init_)
    @Js
    def PyJsHoisted_toByteArray_(b64, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'b64':b64}, var)
        var.registers([u'tmp', u'arr', u'b64', u'i', u'j', u'l', u'len', u'L', u'placeHolders'])
        pass
        var.put(u'len', var.get(u'b64').get(u'length'))
        if ((var.get(u'len')%Js(4.0))>Js(0.0)):
            PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'Invalid string. Length must be a multiple of 4')))
            raise PyJsTempException
        var.put(u'placeHolders', (Js(2.0) if PyJsStrictEq(var.get(u'b64').get((var.get(u'len')-Js(2.0))),Js(u'=')) else (Js(1.0) if PyJsStrictEq(var.get(u'b64').get((var.get(u'len')-Js(1.0))),Js(u'=')) else Js(0.0))))
        var.put(u'arr', var.get(u'Arr').create((((var.get(u'len')*Js(3.0))/Js(4.0))-var.get(u'placeHolders'))))
        var.put(u'l', ((var.get(u'len')-Js(4.0)) if (var.get(u'placeHolders')>Js(0.0)) else var.get(u'len')))
        var.put(u'L', Js(0.0))
        #for JS loop
        PyJsComma(var.put(u'i', Js(0.0)),var.put(u'j', Js(0.0)))
        while (var.get(u'i')<var.get(u'l')):
            try:
                def PyJs_LONG_4275_(var=var):
                    return var.put(u'tmp', ((((var.get(u'revLookup').get(var.get(u'b64').callprop(u'charCodeAt', var.get(u'i')))<<Js(18.0))|(var.get(u'revLookup').get(var.get(u'b64').callprop(u'charCodeAt', (var.get(u'i')+Js(1.0))))<<Js(12.0)))|(var.get(u'revLookup').get(var.get(u'b64').callprop(u'charCodeAt', (var.get(u'i')+Js(2.0))))<<Js(6.0)))|var.get(u'revLookup').get(var.get(u'b64').callprop(u'charCodeAt', (var.get(u'i')+Js(3.0))))))
                PyJs_LONG_4275_()
                var.get(u'arr').put((var.put(u'L',Js(var.get(u'L').to_number())+Js(1))-Js(1)), ((var.get(u'tmp')>>Js(16.0))&Js(255)))
                var.get(u'arr').put((var.put(u'L',Js(var.get(u'L').to_number())+Js(1))-Js(1)), ((var.get(u'tmp')>>Js(8.0))&Js(255)))
                var.get(u'arr').put((var.put(u'L',Js(var.get(u'L').to_number())+Js(1))-Js(1)), (var.get(u'tmp')&Js(255)))
            finally:
                    PyJsComma(var.put(u'i', Js(4.0), u'+'),var.put(u'j', Js(3.0), u'+'))
        if PyJsStrictEq(var.get(u'placeHolders'),Js(2.0)):
            var.put(u'tmp', ((var.get(u'revLookup').get(var.get(u'b64').callprop(u'charCodeAt', var.get(u'i')))<<Js(2.0))|(var.get(u'revLookup').get(var.get(u'b64').callprop(u'charCodeAt', (var.get(u'i')+Js(1.0))))>>Js(4.0))))
            var.get(u'arr').put((var.put(u'L',Js(var.get(u'L').to_number())+Js(1))-Js(1)), (var.get(u'tmp')&Js(255)))
        else:
            if PyJsStrictEq(var.get(u'placeHolders'),Js(1.0)):
                var.put(u'tmp', (((var.get(u'revLookup').get(var.get(u'b64').callprop(u'charCodeAt', var.get(u'i')))<<Js(10.0))|(var.get(u'revLookup').get(var.get(u'b64').callprop(u'charCodeAt', (var.get(u'i')+Js(1.0))))<<Js(4.0)))|(var.get(u'revLookup').get(var.get(u'b64').callprop(u'charCodeAt', (var.get(u'i')+Js(2.0))))>>Js(2.0))))
                var.get(u'arr').put((var.put(u'L',Js(var.get(u'L').to_number())+Js(1))-Js(1)), ((var.get(u'tmp')>>Js(8.0))&Js(255)))
                var.get(u'arr').put((var.put(u'L',Js(var.get(u'L').to_number())+Js(1))-Js(1)), (var.get(u'tmp')&Js(255)))
        return var.get(u'arr')
    PyJsHoisted_toByteArray_.func_name = u'toByteArray'
    var.put(u'toByteArray', PyJsHoisted_toByteArray_)
    @Js
    def PyJsHoisted_fromByteArray_(uint8, this, arguments, var=var):
        var = Scope({u'this':this, u'uint8':uint8, u'arguments':arguments}, var)
        var.registers([u'tmp', u'i', u'uint8', u'len', u'len2', u'parts', u'extraBytes', u'output', u'maxChunkLength'])
        pass
        var.put(u'len', var.get(u'uint8').get(u'length'))
        var.put(u'extraBytes', (var.get(u'len')%Js(3.0)))
        var.put(u'output', Js(u''))
        var.put(u'parts', Js([]))
        var.put(u'maxChunkLength', Js(16383.0))
        #for JS loop
        var.put(u'i', Js(0.0))
        var.put(u'len2', (var.get(u'len')-var.get(u'extraBytes')))
        while (var.get(u'i')<var.get(u'len2')):
            try:
                var.get(u'parts').callprop(u'push', var.get(u'encodeChunk')(var.get(u'uint8'), var.get(u'i'), (var.get(u'len2') if ((var.get(u'i')+var.get(u'maxChunkLength'))>var.get(u'len2')) else (var.get(u'i')+var.get(u'maxChunkLength')))))
            finally:
                    var.put(u'i', var.get(u'maxChunkLength'), u'+')
        if PyJsStrictEq(var.get(u'extraBytes'),Js(1.0)):
            var.put(u'tmp', var.get(u'uint8').get((var.get(u'len')-Js(1.0))))
            var.put(u'output', var.get(u'lookup').get((var.get(u'tmp')>>Js(2.0))), u'+')
            var.put(u'output', var.get(u'lookup').get(((var.get(u'tmp')<<Js(4.0))&Js(63))), u'+')
            var.put(u'output', Js(u'=='), u'+')
        else:
            if PyJsStrictEq(var.get(u'extraBytes'),Js(2.0)):
                var.put(u'tmp', ((var.get(u'uint8').get((var.get(u'len')-Js(2.0)))<<Js(8.0))+var.get(u'uint8').get((var.get(u'len')-Js(1.0)))))
                var.put(u'output', var.get(u'lookup').get((var.get(u'tmp')>>Js(10.0))), u'+')
                var.put(u'output', var.get(u'lookup').get(((var.get(u'tmp')>>Js(4.0))&Js(63))), u'+')
                var.put(u'output', var.get(u'lookup').get(((var.get(u'tmp')<<Js(2.0))&Js(63))), u'+')
                var.put(u'output', Js(u'='), u'+')
        var.get(u'parts').callprop(u'push', var.get(u'output'))
        return var.get(u'parts').callprop(u'join', Js(u''))
    PyJsHoisted_fromByteArray_.func_name = u'fromByteArray'
    var.put(u'fromByteArray', PyJsHoisted_fromByteArray_)
    @Js
    def PyJsHoisted_encodeChunk_(uint8, start, end, this, arguments, var=var):
        var = Scope({u'this':this, u'start':start, u'end':end, u'uint8':uint8, u'arguments':arguments}, var)
        var.registers([u'tmp', u'end', u'i', u'uint8', u'start', u'output'])
        pass
        var.put(u'output', Js([]))
        #for JS loop
        var.put(u'i', var.get(u'start'))
        while (var.get(u'i')<var.get(u'end')):
            try:
                var.put(u'tmp', (((var.get(u'uint8').get(var.get(u'i'))<<Js(16.0))+(var.get(u'uint8').get((var.get(u'i')+Js(1.0)))<<Js(8.0)))+var.get(u'uint8').get((var.get(u'i')+Js(2.0)))))
                var.get(u'output').callprop(u'push', var.get(u'tripletToBase64')(var.get(u'tmp')))
            finally:
                    var.put(u'i', Js(3.0), u'+')
        return var.get(u'output').callprop(u'join', Js(u''))
    PyJsHoisted_encodeChunk_.func_name = u'encodeChunk'
    var.put(u'encodeChunk', PyJsHoisted_encodeChunk_)
    Js(u'use strict')
    var.get(u'exports').put(u'toByteArray', var.get(u'toByteArray'))
    var.get(u'exports').put(u'fromByteArray', var.get(u'fromByteArray'))
    var.put(u'lookup', Js([]))
    var.put(u'revLookup', Js([]))
    var.put(u'Arr', (var.get(u'Uint8Array') if PyJsStrictNeq(var.get(u'Uint8Array',throw=False).typeof(),Js(u'undefined')) else var.get(u'Array')))
    pass
    var.get(u'init')()
    pass
    pass
    pass
    pass
PyJs_anonymous_4274_._set_name(u'anonymous')
PyJs_Object_4276_ = Js({})
@Js
def PyJs_anonymous_4277_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_4278_(buffer, offset, isLE, mLen, nBytes, this, arguments, var=var):
        var = Scope({u'this':this, u'nBytes':nBytes, u'mLen':mLen, u'offset':offset, u'buffer':buffer, u'isLE':isLE, u'arguments':arguments}, var)
        var.registers([u'nBits', u'e', u'd', u'mLen', u'i', u'eMax', u'offset', u'm', u'eLen', u'buffer', u's', u'nBytes', u'eBias', u'isLE'])
        pass
        var.put(u'eLen', (((var.get(u'nBytes')*Js(8.0))-var.get(u'mLen'))-Js(1.0)))
        var.put(u'eMax', ((Js(1.0)<<var.get(u'eLen'))-Js(1.0)))
        var.put(u'eBias', (var.get(u'eMax')>>Js(1.0)))
        var.put(u'nBits', (-Js(7.0)))
        var.put(u'i', ((var.get(u'nBytes')-Js(1.0)) if var.get(u'isLE') else Js(0.0)))
        var.put(u'd', ((-Js(1.0)) if var.get(u'isLE') else Js(1.0)))
        var.put(u's', var.get(u'buffer').get((var.get(u'offset')+var.get(u'i'))))
        var.put(u'i', var.get(u'd'), u'+')
        var.put(u'e', (var.get(u's')&((Js(1.0)<<(-var.get(u'nBits')))-Js(1.0))))
        var.put(u's', (-var.get(u'nBits')), u'>>')
        var.put(u'nBits', var.get(u'eLen'), u'+')
        #for JS loop
        
        while (var.get(u'nBits')>Js(0.0)):
            try:
                pass
            finally:
                    PyJsComma(PyJsComma(var.put(u'e', ((var.get(u'e')*Js(256.0))+var.get(u'buffer').get((var.get(u'offset')+var.get(u'i'))))),var.put(u'i', var.get(u'd'), u'+')),var.put(u'nBits', Js(8.0), u'-'))
        var.put(u'm', (var.get(u'e')&((Js(1.0)<<(-var.get(u'nBits')))-Js(1.0))))
        var.put(u'e', (-var.get(u'nBits')), u'>>')
        var.put(u'nBits', var.get(u'mLen'), u'+')
        #for JS loop
        
        while (var.get(u'nBits')>Js(0.0)):
            try:
                pass
            finally:
                    PyJsComma(PyJsComma(var.put(u'm', ((var.get(u'm')*Js(256.0))+var.get(u'buffer').get((var.get(u'offset')+var.get(u'i'))))),var.put(u'i', var.get(u'd'), u'+')),var.put(u'nBits', Js(8.0), u'-'))
        if PyJsStrictEq(var.get(u'e'),Js(0.0)):
            var.put(u'e', (Js(1.0)-var.get(u'eBias')))
        else:
            if PyJsStrictEq(var.get(u'e'),var.get(u'eMax')):
                return (var.get(u'NaN') if var.get(u'm') else (((-Js(1.0)) if var.get(u's') else Js(1.0))*var.get(u'Infinity')))
            else:
                var.put(u'm', (var.get(u'm')+var.get(u'Math').callprop(u'pow', Js(2.0), var.get(u'mLen'))))
                var.put(u'e', (var.get(u'e')-var.get(u'eBias')))
        return ((((-Js(1.0)) if var.get(u's') else Js(1.0))*var.get(u'm'))*var.get(u'Math').callprop(u'pow', Js(2.0), (var.get(u'e')-var.get(u'mLen'))))
    PyJs_anonymous_4278_._set_name(u'anonymous')
    var.get(u'exports').put(u'read', PyJs_anonymous_4278_)
    @Js
    def PyJs_anonymous_4279_(buffer, value, offset, isLE, mLen, nBytes, this, arguments, var=var):
        var = Scope({u'mLen':mLen, u'buffer':buffer, u'value':value, u'this':this, u'nBytes':nBytes, u'offset':offset, u'isLE':isLE, u'arguments':arguments}, var)
        var.registers([u'rt', u'c', u'e', u'd', u'mLen', u'i', u'eMax', u'offset', u'm', u'eLen', u'buffer', u's', u'value', u'eBias', u'isLE', u'nBytes'])
        pass
        var.put(u'eLen', (((var.get(u'nBytes')*Js(8.0))-var.get(u'mLen'))-Js(1.0)))
        var.put(u'eMax', ((Js(1.0)<<var.get(u'eLen'))-Js(1.0)))
        var.put(u'eBias', (var.get(u'eMax')>>Js(1.0)))
        var.put(u'rt', ((var.get(u'Math').callprop(u'pow', Js(2.0), (-Js(24.0)))-var.get(u'Math').callprop(u'pow', Js(2.0), (-Js(77.0)))) if PyJsStrictEq(var.get(u'mLen'),Js(23.0)) else Js(0.0)))
        var.put(u'i', (Js(0.0) if var.get(u'isLE') else (var.get(u'nBytes')-Js(1.0))))
        var.put(u'd', (Js(1.0) if var.get(u'isLE') else (-Js(1.0))))
        var.put(u's', (Js(1.0) if ((var.get(u'value')<Js(0.0)) or (PyJsStrictEq(var.get(u'value'),Js(0.0)) and ((Js(1.0)/var.get(u'value'))<Js(0.0)))) else Js(0.0)))
        var.put(u'value', var.get(u'Math').callprop(u'abs', var.get(u'value')))
        if (var.get(u'isNaN')(var.get(u'value')) or PyJsStrictEq(var.get(u'value'),var.get(u'Infinity'))):
            var.put(u'm', (Js(1.0) if var.get(u'isNaN')(var.get(u'value')) else Js(0.0)))
            var.put(u'e', var.get(u'eMax'))
        else:
            var.put(u'e', var.get(u'Math').callprop(u'floor', (var.get(u'Math').callprop(u'log', var.get(u'value'))/var.get(u'Math').get(u'LN2'))))
            if ((var.get(u'value')*var.put(u'c', var.get(u'Math').callprop(u'pow', Js(2.0), (-var.get(u'e')))))<Js(1.0)):
                (var.put(u'e',Js(var.get(u'e').to_number())-Js(1))+Js(1))
                var.put(u'c', Js(2.0), u'*')
            if ((var.get(u'e')+var.get(u'eBias'))>=Js(1.0)):
                var.put(u'value', (var.get(u'rt')/var.get(u'c')), u'+')
            else:
                var.put(u'value', (var.get(u'rt')*var.get(u'Math').callprop(u'pow', Js(2.0), (Js(1.0)-var.get(u'eBias')))), u'+')
            if ((var.get(u'value')*var.get(u'c'))>=Js(2.0)):
                (var.put(u'e',Js(var.get(u'e').to_number())+Js(1))-Js(1))
                var.put(u'c', Js(2.0), u'/')
            if ((var.get(u'e')+var.get(u'eBias'))>=var.get(u'eMax')):
                var.put(u'm', Js(0.0))
                var.put(u'e', var.get(u'eMax'))
            else:
                if ((var.get(u'e')+var.get(u'eBias'))>=Js(1.0)):
                    var.put(u'm', (((var.get(u'value')*var.get(u'c'))-Js(1.0))*var.get(u'Math').callprop(u'pow', Js(2.0), var.get(u'mLen'))))
                    var.put(u'e', (var.get(u'e')+var.get(u'eBias')))
                else:
                    var.put(u'm', ((var.get(u'value')*var.get(u'Math').callprop(u'pow', Js(2.0), (var.get(u'eBias')-Js(1.0))))*var.get(u'Math').callprop(u'pow', Js(2.0), var.get(u'mLen'))))
                    var.put(u'e', Js(0.0))
        #for JS loop
        
        while (var.get(u'mLen')>=Js(8.0)):
            try:
                pass
            finally:
                    PyJsComma(PyJsComma(PyJsComma(var.get(u'buffer').put((var.get(u'offset')+var.get(u'i')), (var.get(u'm')&Js(255))),var.put(u'i', var.get(u'd'), u'+')),var.put(u'm', Js(256.0), u'/')),var.put(u'mLen', Js(8.0), u'-'))
        var.put(u'e', ((var.get(u'e')<<var.get(u'mLen'))|var.get(u'm')))
        var.put(u'eLen', var.get(u'mLen'), u'+')
        #for JS loop
        
        while (var.get(u'eLen')>Js(0.0)):
            try:
                pass
            finally:
                    PyJsComma(PyJsComma(PyJsComma(var.get(u'buffer').put((var.get(u'offset')+var.get(u'i')), (var.get(u'e')&Js(255))),var.put(u'i', var.get(u'd'), u'+')),var.put(u'e', Js(256.0), u'/')),var.put(u'eLen', Js(8.0), u'-'))
        var.get(u'buffer').put(((var.get(u'offset')+var.get(u'i'))-var.get(u'd')), (var.get(u's')*Js(128.0)), u'|')
    PyJs_anonymous_4279_._set_name(u'anonymous')
    var.get(u'exports').put(u'write', PyJs_anonymous_4279_)
PyJs_anonymous_4277_._set_name(u'anonymous')
PyJs_Object_4280_ = Js({})
@Js
def PyJs_anonymous_4281_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'toString', u'exports', u'module'])
    PyJs_Object_4282_ = Js({})
    var.put(u'toString', PyJs_Object_4282_.get(u'toString'))
    @Js
    def PyJs_anonymous_4283_(arr, this, arguments, var=var):
        var = Scope({u'this':this, u'arr':arr, u'arguments':arguments}, var)
        var.registers([u'arr'])
        return (var.get(u'toString').callprop(u'call', var.get(u'arr'))==Js(u'[object Array]'))
    PyJs_anonymous_4283_._set_name(u'anonymous')
    var.get(u'module').put(u'exports', (var.get(u'Array').get(u'isArray') or PyJs_anonymous_4283_))
PyJs_anonymous_4281_._set_name(u'anonymous')
PyJs_Object_4284_ = Js({})
@Js
def PyJs_anonymous_4285_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    if PyJsStrictEq(var.get(u'Object').get(u'create').typeof(),Js(u'function')):
        @Js
        def PyJs_inherits_4286_(ctor, superCtor, this, arguments, var=var):
            var = Scope({u'this':this, u'inherits':PyJs_inherits_4286_, u'superCtor':superCtor, u'arguments':arguments, u'ctor':ctor}, var)
            var.registers([u'superCtor', u'ctor'])
            var.get(u'ctor').put(u'super_', var.get(u'superCtor'))
            PyJs_Object_4288_ = Js({u'value':var.get(u'ctor'),u'enumerable':Js(False),u'writable':var.get(u'true'),u'configurable':var.get(u'true')})
            PyJs_Object_4287_ = Js({u'constructor':PyJs_Object_4288_})
            var.get(u'ctor').put(u'prototype', var.get(u'Object').callprop(u'create', var.get(u'superCtor').get(u'prototype'), PyJs_Object_4287_))
        PyJs_inherits_4286_._set_name(u'inherits')
        var.get(u'module').put(u'exports', PyJs_inherits_4286_)
    else:
        @Js
        def PyJs_inherits_4289_(ctor, superCtor, this, arguments, var=var):
            var = Scope({u'this':this, u'inherits':PyJs_inherits_4289_, u'superCtor':superCtor, u'arguments':arguments, u'ctor':ctor}, var)
            var.registers([u'TempCtor', u'superCtor', u'ctor'])
            var.get(u'ctor').put(u'super_', var.get(u'superCtor'))
            @Js
            def PyJs_anonymous_4290_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                pass
            PyJs_anonymous_4290_._set_name(u'anonymous')
            var.put(u'TempCtor', PyJs_anonymous_4290_)
            var.get(u'TempCtor').put(u'prototype', var.get(u'superCtor').get(u'prototype'))
            var.get(u'ctor').put(u'prototype', var.get(u'TempCtor').create())
            var.get(u'ctor').get(u'prototype').put(u'constructor', var.get(u'ctor'))
        PyJs_inherits_4289_._set_name(u'inherits')
        var.get(u'module').put(u'exports', PyJs_inherits_4289_)
PyJs_anonymous_4285_._set_name(u'anonymous')
PyJs_Object_4291_ = Js({})
@Js
def PyJs_anonymous_4292_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_anonymous_4293_(process, this, arguments, var=var):
        var = Scope({u'process':process, u'this':this, u'arguments':arguments}, var)
        var.registers([u'splitPath', u'substr', u'process', u'normalizeArray', u'filter', u'splitPathRe'])
        @Js
        def PyJsHoisted_filter_(xs, f, this, arguments, var=var):
            var = Scope({u'this':this, u'xs':xs, u'arguments':arguments, u'f':f}, var)
            var.registers([u'i', u'res', u'f', u'xs'])
            if var.get(u'xs').get(u'filter'):
                return var.get(u'xs').callprop(u'filter', var.get(u'f'))
            var.put(u'res', Js([]))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'xs').get(u'length')):
                try:
                    if var.get(u'f')(var.get(u'xs').get(var.get(u'i')), var.get(u'i'), var.get(u'xs')):
                        var.get(u'res').callprop(u'push', var.get(u'xs').get(var.get(u'i')))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            return var.get(u'res')
        PyJsHoisted_filter_.func_name = u'filter'
        var.put(u'filter', PyJsHoisted_filter_)
        @Js
        def PyJsHoisted_normalizeArray_(parts, allowAboveRoot, this, arguments, var=var):
            var = Scope({u'allowAboveRoot':allowAboveRoot, u'this':this, u'parts':parts, u'arguments':arguments}, var)
            var.registers([u'i', u'allowAboveRoot', u'parts', u'last', u'up'])
            var.put(u'up', Js(0.0))
            #for JS loop
            var.put(u'i', (var.get(u'parts').get(u'length')-Js(1.0)))
            while (var.get(u'i')>=Js(0.0)):
                try:
                    var.put(u'last', var.get(u'parts').get(var.get(u'i')))
                    if PyJsStrictEq(var.get(u'last'),Js(u'.')):
                        var.get(u'parts').callprop(u'splice', var.get(u'i'), Js(1.0))
                    else:
                        if PyJsStrictEq(var.get(u'last'),Js(u'..')):
                            var.get(u'parts').callprop(u'splice', var.get(u'i'), Js(1.0))
                            (var.put(u'up',Js(var.get(u'up').to_number())+Js(1))-Js(1))
                        else:
                            if var.get(u'up'):
                                var.get(u'parts').callprop(u'splice', var.get(u'i'), Js(1.0))
                                (var.put(u'up',Js(var.get(u'up').to_number())-Js(1))+Js(1))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
            if var.get(u'allowAboveRoot'):
                #for JS loop
                
                while (var.put(u'up',Js(var.get(u'up').to_number())-Js(1))+Js(1)):
                    try:
                        var.get(u'parts').callprop(u'unshift', Js(u'..'))
                    finally:
                            var.get(u'up')
            return var.get(u'parts')
        PyJsHoisted_normalizeArray_.func_name = u'normalizeArray'
        var.put(u'normalizeArray', PyJsHoisted_normalizeArray_)
        pass
        var.put(u'splitPathRe', JsRegExp(u'/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/'))
        @Js
        def PyJs_anonymous_4294_(filename, this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments, u'filename':filename}, var)
            var.registers([u'filename'])
            return var.get(u'splitPathRe').callprop(u'exec', var.get(u'filename')).callprop(u'slice', Js(1.0))
        PyJs_anonymous_4294_._set_name(u'anonymous')
        var.put(u'splitPath', PyJs_anonymous_4294_)
        @Js
        def PyJs_anonymous_4295_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'i', u'resolvedPath', u'path', u'resolvedAbsolute'])
            var.put(u'resolvedPath', Js(u''))
            var.put(u'resolvedAbsolute', Js(False))
            #for JS loop
            var.put(u'i', (var.get(u'arguments').get(u'length')-Js(1.0)))
            while ((var.get(u'i')>=(-Js(1.0))) and var.get(u'resolvedAbsolute').neg()):
                try:
                    var.put(u'path', (var.get(u'arguments').get(var.get(u'i')) if (var.get(u'i')>=Js(0.0)) else var.get(u'process').callprop(u'cwd')))
                    if PyJsStrictNeq(var.get(u'path',throw=False).typeof(),Js(u'string')):
                        PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Arguments to path.resolve must be strings')))
                        raise PyJsTempException
                    else:
                        if var.get(u'path').neg():
                            continue
                    var.put(u'resolvedPath', ((var.get(u'path')+Js(u'/'))+var.get(u'resolvedPath')))
                    var.put(u'resolvedAbsolute', PyJsStrictEq(var.get(u'path').callprop(u'charAt', Js(0.0)),Js(u'/')))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1))
            @Js
            def PyJs_anonymous_4296_(p, this, arguments, var=var):
                var = Scope({u'this':this, u'p':p, u'arguments':arguments}, var)
                var.registers([u'p'])
                return var.get(u'p').neg().neg()
            PyJs_anonymous_4296_._set_name(u'anonymous')
            var.put(u'resolvedPath', var.get(u'normalizeArray')(var.get(u'filter')(var.get(u'resolvedPath').callprop(u'split', Js(u'/')), PyJs_anonymous_4296_), var.get(u'resolvedAbsolute').neg()).callprop(u'join', Js(u'/')))
            return (((Js(u'/') if var.get(u'resolvedAbsolute') else Js(u''))+var.get(u'resolvedPath')) or Js(u'.'))
        PyJs_anonymous_4295_._set_name(u'anonymous')
        var.get(u'exports').put(u'resolve', PyJs_anonymous_4295_)
        @Js
        def PyJs_anonymous_4297_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
            var.registers([u'path', u'trailingSlash', u'isAbsolute'])
            var.put(u'isAbsolute', var.get(u'exports').callprop(u'isAbsolute', var.get(u'path')))
            var.put(u'trailingSlash', PyJsStrictEq(var.get(u'substr')(var.get(u'path'), (-Js(1.0))),Js(u'/')))
            @Js
            def PyJs_anonymous_4298_(p, this, arguments, var=var):
                var = Scope({u'this':this, u'p':p, u'arguments':arguments}, var)
                var.registers([u'p'])
                return var.get(u'p').neg().neg()
            PyJs_anonymous_4298_._set_name(u'anonymous')
            var.put(u'path', var.get(u'normalizeArray')(var.get(u'filter')(var.get(u'path').callprop(u'split', Js(u'/')), PyJs_anonymous_4298_), var.get(u'isAbsolute').neg()).callprop(u'join', Js(u'/')))
            if (var.get(u'path').neg() and var.get(u'isAbsolute').neg()):
                var.put(u'path', Js(u'.'))
            if (var.get(u'path') and var.get(u'trailingSlash')):
                var.put(u'path', Js(u'/'), u'+')
            return ((Js(u'/') if var.get(u'isAbsolute') else Js(u''))+var.get(u'path'))
        PyJs_anonymous_4297_._set_name(u'anonymous')
        var.get(u'exports').put(u'normalize', PyJs_anonymous_4297_)
        @Js
        def PyJs_anonymous_4299_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
            var.registers([u'path'])
            return PyJsStrictEq(var.get(u'path').callprop(u'charAt', Js(0.0)),Js(u'/'))
        PyJs_anonymous_4299_._set_name(u'anonymous')
        var.get(u'exports').put(u'isAbsolute', PyJs_anonymous_4299_)
        @Js
        def PyJs_anonymous_4300_(this, arguments, var=var):
            var = Scope({u'this':this, u'arguments':arguments}, var)
            var.registers([u'paths'])
            var.put(u'paths', var.get(u'Array').get(u'prototype').get(u'slice').callprop(u'call', var.get(u'arguments'), Js(0.0)))
            @Js
            def PyJs_anonymous_4301_(p, index, this, arguments, var=var):
                var = Scope({u'this':this, u'p':p, u'arguments':arguments, u'index':index}, var)
                var.registers([u'p', u'index'])
                if PyJsStrictNeq(var.get(u'p',throw=False).typeof(),Js(u'string')):
                    PyJsTempException = JsToPyException(var.get(u'TypeError').create(Js(u'Arguments to path.join must be strings')))
                    raise PyJsTempException
                return var.get(u'p')
            PyJs_anonymous_4301_._set_name(u'anonymous')
            return var.get(u'exports').callprop(u'normalize', var.get(u'filter')(var.get(u'paths'), PyJs_anonymous_4301_).callprop(u'join', Js(u'/')))
        PyJs_anonymous_4300_._set_name(u'anonymous')
        var.get(u'exports').put(u'join', PyJs_anonymous_4300_)
        @Js
        def PyJs_anonymous_4302_(PyJsArg_66726f6d_, to, this, arguments, var=var):
            var = Scope({u'this':this, u'to':to, u'from':PyJsArg_66726f6d_, u'arguments':arguments}, var)
            var.registers([u'trim', u'outputParts', u'i', u'to', u'length', u'toParts', u'from', u'fromParts', u'samePartsLength'])
            @Js
            def PyJsHoisted_trim_(arr, this, arguments, var=var):
                var = Scope({u'this':this, u'arr':arr, u'arguments':arguments}, var)
                var.registers([u'start', u'arr', u'end'])
                var.put(u'start', Js(0.0))
                #for JS loop
                
                while (var.get(u'start')<var.get(u'arr').get(u'length')):
                    try:
                        if PyJsStrictNeq(var.get(u'arr').get(var.get(u'start')),Js(u'')):
                            break
                    finally:
                            (var.put(u'start',Js(var.get(u'start').to_number())+Js(1))-Js(1))
                var.put(u'end', (var.get(u'arr').get(u'length')-Js(1.0)))
                #for JS loop
                
                while (var.get(u'end')>=Js(0.0)):
                    try:
                        if PyJsStrictNeq(var.get(u'arr').get(var.get(u'end')),Js(u'')):
                            break
                    finally:
                            (var.put(u'end',Js(var.get(u'end').to_number())-Js(1))+Js(1))
                if (var.get(u'start')>var.get(u'end')):
                    return Js([])
                return var.get(u'arr').callprop(u'slice', var.get(u'start'), ((var.get(u'end')-var.get(u'start'))+Js(1.0)))
            PyJsHoisted_trim_.func_name = u'trim'
            var.put(u'trim', PyJsHoisted_trim_)
            var.put(u'from', var.get(u'exports').callprop(u'resolve', var.get(u'from')).callprop(u'substr', Js(1.0)))
            var.put(u'to', var.get(u'exports').callprop(u'resolve', var.get(u'to')).callprop(u'substr', Js(1.0)))
            pass
            var.put(u'fromParts', var.get(u'trim')(var.get(u'from').callprop(u'split', Js(u'/'))))
            var.put(u'toParts', var.get(u'trim')(var.get(u'to').callprop(u'split', Js(u'/'))))
            var.put(u'length', var.get(u'Math').callprop(u'min', var.get(u'fromParts').get(u'length'), var.get(u'toParts').get(u'length')))
            var.put(u'samePartsLength', var.get(u'length'))
            #for JS loop
            var.put(u'i', Js(0.0))
            while (var.get(u'i')<var.get(u'length')):
                try:
                    if PyJsStrictNeq(var.get(u'fromParts').get(var.get(u'i')),var.get(u'toParts').get(var.get(u'i'))):
                        var.put(u'samePartsLength', var.get(u'i'))
                        break
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            var.put(u'outputParts', Js([]))
            #for JS loop
            var.put(u'i', var.get(u'samePartsLength'))
            while (var.get(u'i')<var.get(u'fromParts').get(u'length')):
                try:
                    var.get(u'outputParts').callprop(u'push', Js(u'..'))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
            var.put(u'outputParts', var.get(u'outputParts').callprop(u'concat', var.get(u'toParts').callprop(u'slice', var.get(u'samePartsLength'))))
            return var.get(u'outputParts').callprop(u'join', Js(u'/'))
        PyJs_anonymous_4302_._set_name(u'anonymous')
        var.get(u'exports').put(u'relative', PyJs_anonymous_4302_)
        var.get(u'exports').put(u'sep', Js(u'/'))
        var.get(u'exports').put(u'delimiter', Js(u':'))
        @Js
        def PyJs_anonymous_4303_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
            var.registers([u'path', u'root', u'result', u'dir'])
            var.put(u'result', var.get(u'splitPath')(var.get(u'path')))
            var.put(u'root', var.get(u'result').get(u'0'))
            var.put(u'dir', var.get(u'result').get(u'1'))
            if (var.get(u'root').neg() and var.get(u'dir').neg()):
                return Js(u'.')
            if var.get(u'dir'):
                var.put(u'dir', var.get(u'dir').callprop(u'substr', Js(0.0), (var.get(u'dir').get(u'length')-Js(1.0))))
            return (var.get(u'root')+var.get(u'dir'))
        PyJs_anonymous_4303_._set_name(u'anonymous')
        var.get(u'exports').put(u'dirname', PyJs_anonymous_4303_)
        @Js
        def PyJs_anonymous_4304_(path, ext, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'ext':ext, u'arguments':arguments}, var)
            var.registers([u'path', u'ext', u'f'])
            var.put(u'f', var.get(u'splitPath')(var.get(u'path')).get(u'2'))
            if (var.get(u'ext') and PyJsStrictEq(var.get(u'f').callprop(u'substr', ((-Js(1.0))*var.get(u'ext').get(u'length'))),var.get(u'ext'))):
                var.put(u'f', var.get(u'f').callprop(u'substr', Js(0.0), (var.get(u'f').get(u'length')-var.get(u'ext').get(u'length'))))
            return var.get(u'f')
        PyJs_anonymous_4304_._set_name(u'anonymous')
        var.get(u'exports').put(u'basename', PyJs_anonymous_4304_)
        @Js
        def PyJs_anonymous_4305_(path, this, arguments, var=var):
            var = Scope({u'this':this, u'path':path, u'arguments':arguments}, var)
            var.registers([u'path'])
            return var.get(u'splitPath')(var.get(u'path')).get(u'3')
        PyJs_anonymous_4305_._set_name(u'anonymous')
        var.get(u'exports').put(u'extname', PyJs_anonymous_4305_)
        pass
        @Js
        def PyJs_anonymous_4306_(str, start, len, this, arguments, var=var):
            var = Scope({u'this':this, u'start':start, u'len':len, u'str':str, u'arguments':arguments}, var)
            var.registers([u'start', u'len', u'str'])
            return var.get(u'str').callprop(u'substr', var.get(u'start'), var.get(u'len'))
        PyJs_anonymous_4306_._set_name(u'anonymous')
        @Js
        def PyJs_anonymous_4307_(str, start, len, this, arguments, var=var):
            var = Scope({u'this':this, u'start':start, u'len':len, u'str':str, u'arguments':arguments}, var)
            var.registers([u'start', u'len', u'str'])
            if (var.get(u'start')<Js(0.0)):
                var.put(u'start', (var.get(u'str').get(u'length')+var.get(u'start')))
            return var.get(u'str').callprop(u'substr', var.get(u'start'), var.get(u'len'))
        PyJs_anonymous_4307_._set_name(u'anonymous')
        var.put(u'substr', (PyJs_anonymous_4306_ if PyJsStrictEq(Js(u'ab').callprop(u'substr', (-Js(1.0))),Js(u'b')) else PyJs_anonymous_4307_))
    PyJs_anonymous_4293_._set_name(u'anonymous')
    PyJs_anonymous_4293_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')))
PyJs_anonymous_4292_._set_name(u'anonymous')
PyJs_Object_4308_ = Js({u'_process':Js(531.0)})
@Js
def PyJs_anonymous_4309_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'exports', u'cleanUpNextTick', u'currentQueue', u'process', u'require', u'module', u'drainQueue', u'queue', u'Item', u'draining', u'noop', u'queueIndex'])
    @Js
    def PyJsHoisted_Item_(fun, array, this, arguments, var=var):
        var = Scope({u'fun':fun, u'this':this, u'array':array, u'arguments':arguments}, var)
        var.registers([u'fun', u'array'])
        var.get(u"this").put(u'fun', var.get(u'fun'))
        var.get(u"this").put(u'array', var.get(u'array'))
    PyJsHoisted_Item_.func_name = u'Item'
    var.put(u'Item', PyJsHoisted_Item_)
    @Js
    def PyJsHoisted_cleanUpNextTick_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.put(u'draining', Js(False))
        if var.get(u'currentQueue').get(u'length'):
            var.put(u'queue', var.get(u'currentQueue').callprop(u'concat', var.get(u'queue')))
        else:
            var.put(u'queueIndex', (-Js(1.0)))
        if var.get(u'queue').get(u'length'):
            var.get(u'drainQueue')()
    PyJsHoisted_cleanUpNextTick_.func_name = u'cleanUpNextTick'
    var.put(u'cleanUpNextTick', PyJsHoisted_cleanUpNextTick_)
    @Js
    def PyJsHoisted_noop_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        pass
    PyJsHoisted_noop_.func_name = u'noop'
    var.put(u'noop', PyJsHoisted_noop_)
    @Js
    def PyJsHoisted_drainQueue_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([u'len', u'timeout'])
        if var.get(u'draining'):
            return var.get('undefined')
        var.put(u'timeout', var.get(u'setTimeout')(var.get(u'cleanUpNextTick')))
        var.put(u'draining', var.get(u'true'))
        var.put(u'len', var.get(u'queue').get(u'length'))
        while var.get(u'len'):
            var.put(u'currentQueue', var.get(u'queue'))
            var.put(u'queue', Js([]))
            while (var.put(u'queueIndex',Js(var.get(u'queueIndex').to_number())+Js(1))<var.get(u'len')):
                if var.get(u'currentQueue'):
                    var.get(u'currentQueue').get(var.get(u'queueIndex')).callprop(u'run')
            var.put(u'queueIndex', (-Js(1.0)))
            var.put(u'len', var.get(u'queue').get(u'length'))
        var.put(u'currentQueue', var.get(u"null"))
        var.put(u'draining', Js(False))
        var.get(u'clearTimeout')(var.get(u'timeout'))
    PyJsHoisted_drainQueue_.func_name = u'drainQueue'
    var.put(u'drainQueue', PyJsHoisted_drainQueue_)
    PyJs_Object_4310_ = Js({})
    var.put(u'process', var.get(u'module').put(u'exports', PyJs_Object_4310_))
    var.put(u'queue', Js([]))
    var.put(u'draining', Js(False))
    pass
    var.put(u'queueIndex', (-Js(1.0)))
    pass
    pass
    @Js
    def PyJs_anonymous_4311_(fun, this, arguments, var=var):
        var = Scope({u'fun':fun, u'this':this, u'arguments':arguments}, var)
        var.registers([u'i', u'fun', u'args'])
        var.put(u'args', var.get(u'Array').create((var.get(u'arguments').get(u'length')-Js(1.0))))
        if (var.get(u'arguments').get(u'length')>Js(1.0)):
            #for JS loop
            var.put(u'i', Js(1.0))
            while (var.get(u'i')<var.get(u'arguments').get(u'length')):
                try:
                    var.get(u'args').put((var.get(u'i')-Js(1.0)), var.get(u'arguments').get(var.get(u'i')))
                finally:
                        (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
        var.get(u'queue').callprop(u'push', var.get(u'Item').create(var.get(u'fun'), var.get(u'args')))
        if (PyJsStrictEq(var.get(u'queue').get(u'length'),Js(1.0)) and var.get(u'draining').neg()):
            var.get(u'setTimeout')(var.get(u'drainQueue'), Js(0.0))
    PyJs_anonymous_4311_._set_name(u'anonymous')
    var.get(u'process').put(u'nextTick', PyJs_anonymous_4311_)
    pass
    @Js
    def PyJs_anonymous_4312_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        var.get(u"this").get(u'fun').callprop(u'apply', var.get(u"null"), var.get(u"this").get(u'array'))
    PyJs_anonymous_4312_._set_name(u'anonymous')
    var.get(u'Item').get(u'prototype').put(u'run', PyJs_anonymous_4312_)
    var.get(u'process').put(u'title', Js(u'browser'))
    var.get(u'process').put(u'browser', var.get(u'true'))
    PyJs_Object_4313_ = Js({})
    var.get(u'process').put(u'env', PyJs_Object_4313_)
    var.get(u'process').put(u'argv', Js([]))
    var.get(u'process').put(u'version', Js(u''))
    PyJs_Object_4314_ = Js({})
    var.get(u'process').put(u'versions', PyJs_Object_4314_)
    pass
    var.get(u'process').put(u'on', var.get(u'noop'))
    var.get(u'process').put(u'addListener', var.get(u'noop'))
    var.get(u'process').put(u'once', var.get(u'noop'))
    var.get(u'process').put(u'off', var.get(u'noop'))
    var.get(u'process').put(u'removeListener', var.get(u'noop'))
    var.get(u'process').put(u'removeAllListeners', var.get(u'noop'))
    var.get(u'process').put(u'emit', var.get(u'noop'))
    @Js
    def PyJs_anonymous_4315_(name, this, arguments, var=var):
        var = Scope({u'this':this, u'name':name, u'arguments':arguments}, var)
        var.registers([u'name'])
        PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'process.binding is not supported')))
        raise PyJsTempException
    PyJs_anonymous_4315_._set_name(u'anonymous')
    var.get(u'process').put(u'binding', PyJs_anonymous_4315_)
    @Js
    def PyJs_anonymous_4316_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return Js(u'/')
    PyJs_anonymous_4316_._set_name(u'anonymous')
    var.get(u'process').put(u'cwd', PyJs_anonymous_4316_)
    @Js
    def PyJs_anonymous_4317_(dir, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'dir':dir}, var)
        var.registers([u'dir'])
        PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'process.chdir is not supported')))
        raise PyJsTempException
    PyJs_anonymous_4317_._set_name(u'anonymous')
    var.get(u'process').put(u'chdir', PyJs_anonymous_4317_)
    @Js
    def PyJs_anonymous_4318_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return Js(0.0)
    PyJs_anonymous_4318_._set_name(u'anonymous')
    var.get(u'process').put(u'umask', PyJs_anonymous_4318_)
PyJs_anonymous_4309_._set_name(u'anonymous')
PyJs_Object_4319_ = Js({})
@Js
def PyJs_anonymous_4320_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'module', u'require', u'exports', u'WriteStream', u'ReadStream'])
    @Js
    def PyJsHoisted_WriteStream_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'tty.ReadStream is not implemented')))
        raise PyJsTempException
    PyJsHoisted_WriteStream_.func_name = u'WriteStream'
    var.put(u'WriteStream', PyJsHoisted_WriteStream_)
    @Js
    def PyJsHoisted_ReadStream_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        PyJsTempException = JsToPyException(var.get(u'Error').create(Js(u'tty.ReadStream is not implemented')))
        raise PyJsTempException
    PyJsHoisted_ReadStream_.func_name = u'ReadStream'
    var.put(u'ReadStream', PyJsHoisted_ReadStream_)
    @Js
    def PyJs_anonymous_4321_(this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments}, var)
        var.registers([])
        return Js(False)
    PyJs_anonymous_4321_._set_name(u'anonymous')
    var.get(u'exports').put(u'isatty', PyJs_anonymous_4321_)
    pass
    var.get(u'exports').put(u'ReadStream', var.get(u'ReadStream'))
    pass
    var.get(u'exports').put(u'WriteStream', var.get(u'WriteStream'))
PyJs_anonymous_4320_._set_name(u'anonymous')
PyJs_Object_4322_ = Js({})
@Js
def PyJs_anonymous_4323_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    @Js
    def PyJs_isBuffer_4324_(arg, this, arguments, var=var):
        var = Scope({u'this':this, u'arguments':arguments, u'isBuffer':PyJs_isBuffer_4324_, u'arg':arg}, var)
        var.registers([u'arg'])
        return ((((var.get(u'arg') and PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'object'))) and PyJsStrictEq(var.get(u'arg').get(u'copy').typeof(),Js(u'function'))) and PyJsStrictEq(var.get(u'arg').get(u'fill').typeof(),Js(u'function'))) and PyJsStrictEq(var.get(u'arg').get(u'readUInt8').typeof(),Js(u'function')))
    PyJs_isBuffer_4324_._set_name(u'isBuffer')
    var.get(u'module').put(u'exports', PyJs_isBuffer_4324_)
PyJs_anonymous_4323_._set_name(u'anonymous')
PyJs_Object_4325_ = Js({})
@Js
def PyJs_anonymous_4326_(require, module, exports, this, arguments, var=var):
    var = Scope({u'this':this, u'require':require, u'exports':exports, u'module':module, u'arguments':arguments}, var)
    var.registers([u'require', u'exports', u'module'])
    def PyJs_LONG_4350_(var=var):
        PyJs_Object_4327_ = Js({})
        @Js
        def PyJs_anonymous_4328_(process, PyJsArg_676c6f62616c_, this, arguments, var=var):
            var = Scope({u'process':process, u'this':this, u'global':PyJsArg_676c6f62616c_, u'arguments':arguments}, var)
            var.registers([u'isArray', u'months', u'process', u'global', u'arrayToHash', u'isFunction', u'isBoolean', u'objectToString', u'debugEnviron', u'isError', u'formatProperty', u'formatError', u'formatArray', u'pad', u'stylizeWithColor', u'isRegExp', u'stylizeNoColor', u'debugs', u'timestamp', u'inspect', u'formatPrimitive', u'hasOwnProperty', u'isNumber', u'isObject', u'reduceToSingleString', u'isNullOrUndefined', u'isDate', u'isString', u'isPrimitive', u'formatValue', u'formatRegExp', u'isNull', u'isUndefined', u'isSymbol'])
            @Js
            def PyJsHoisted_isArray_(ar, this, arguments, var=var):
                var = Scope({u'this':this, u'ar':ar, u'arguments':arguments}, var)
                var.registers([u'ar'])
                return var.get(u'Array').callprop(u'isArray', var.get(u'ar'))
            PyJsHoisted_isArray_.func_name = u'isArray'
            var.put(u'isArray', PyJsHoisted_isArray_)
            @Js
            def PyJsHoisted_arrayToHash_(array, this, arguments, var=var):
                var = Scope({u'this':this, u'array':array, u'arguments':arguments}, var)
                var.registers([u'array', u'hash'])
                PyJs_Object_4340_ = Js({})
                var.put(u'hash', PyJs_Object_4340_)
                @Js
                def PyJs_anonymous_4341_(val, idx, this, arguments, var=var):
                    var = Scope({u'this':this, u'idx':idx, u'val':val, u'arguments':arguments}, var)
                    var.registers([u'idx', u'val'])
                    var.get(u'hash').put(var.get(u'val'), var.get(u'true'))
                PyJs_anonymous_4341_._set_name(u'anonymous')
                var.get(u'array').callprop(u'forEach', PyJs_anonymous_4341_)
                return var.get(u'hash')
            PyJsHoisted_arrayToHash_.func_name = u'arrayToHash'
            var.put(u'arrayToHash', PyJsHoisted_arrayToHash_)
            @Js
            def PyJsHoisted_isFunction_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'arg'])
                return PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'function'))
            PyJsHoisted_isFunction_.func_name = u'isFunction'
            var.put(u'isFunction', PyJsHoisted_isFunction_)
            @Js
            def PyJsHoisted_isBoolean_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'arg'])
                return PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'boolean'))
            PyJsHoisted_isBoolean_.func_name = u'isBoolean'
            var.put(u'isBoolean', PyJsHoisted_isBoolean_)
            @Js
            def PyJsHoisted_objectToString_(o, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'o':o}, var)
                var.registers([u'o'])
                return var.get(u'Object').get(u'prototype').get(u'toString').callprop(u'call', var.get(u'o'))
            PyJsHoisted_objectToString_.func_name = u'objectToString'
            var.put(u'objectToString', PyJsHoisted_objectToString_)
            @Js
            def PyJsHoisted_isObject_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'arg'])
                return (PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'object')) and PyJsStrictNeq(var.get(u'arg'),var.get(u"null")))
            PyJsHoisted_isObject_.func_name = u'isObject'
            var.put(u'isObject', PyJsHoisted_isObject_)
            @Js
            def PyJsHoisted_formatProperty_(ctx, value, recurseTimes, visibleKeys, key, array, this, arguments, var=var):
                var = Scope({u'recurseTimes':recurseTimes, u'this':this, u'ctx':ctx, u'value':value, u'visibleKeys':visibleKeys, u'arguments':arguments, u'key':key, u'array':array}, var)
                var.registers([u'key', u'name', u'recurseTimes', u'ctx', u'value', u'visibleKeys', u'str', u'array', u'desc'])
                pass
                PyJs_Object_4344_ = Js({u'value':var.get(u'value').get(var.get(u'key'))})
                var.put(u'desc', (var.get(u'Object').callprop(u'getOwnPropertyDescriptor', var.get(u'value'), var.get(u'key')) or PyJs_Object_4344_))
                if var.get(u'desc').get(u'get'):
                    if var.get(u'desc').get(u'set'):
                        var.put(u'str', var.get(u'ctx').callprop(u'stylize', Js(u'[Getter/Setter]'), Js(u'special')))
                    else:
                        var.put(u'str', var.get(u'ctx').callprop(u'stylize', Js(u'[Getter]'), Js(u'special')))
                else:
                    if var.get(u'desc').get(u'set'):
                        var.put(u'str', var.get(u'ctx').callprop(u'stylize', Js(u'[Setter]'), Js(u'special')))
                if var.get(u'hasOwnProperty')(var.get(u'visibleKeys'), var.get(u'key')).neg():
                    var.put(u'name', ((Js(u'[')+var.get(u'key'))+Js(u']')))
                if var.get(u'str').neg():
                    if (var.get(u'ctx').get(u'seen').callprop(u'indexOf', var.get(u'desc').get(u'value'))<Js(0.0)):
                        if var.get(u'isNull')(var.get(u'recurseTimes')):
                            var.put(u'str', var.get(u'formatValue')(var.get(u'ctx'), var.get(u'desc').get(u'value'), var.get(u"null")))
                        else:
                            var.put(u'str', var.get(u'formatValue')(var.get(u'ctx'), var.get(u'desc').get(u'value'), (var.get(u'recurseTimes')-Js(1.0))))
                        if (var.get(u'str').callprop(u'indexOf', Js(u'\n'))>(-Js(1.0))):
                            if var.get(u'array'):
                                @Js
                                def PyJs_anonymous_4345_(line, this, arguments, var=var):
                                    var = Scope({u'this':this, u'line':line, u'arguments':arguments}, var)
                                    var.registers([u'line'])
                                    return (Js(u'  ')+var.get(u'line'))
                                PyJs_anonymous_4345_._set_name(u'anonymous')
                                var.put(u'str', var.get(u'str').callprop(u'split', Js(u'\n')).callprop(u'map', PyJs_anonymous_4345_).callprop(u'join', Js(u'\n')).callprop(u'substr', Js(2.0)))
                            else:
                                @Js
                                def PyJs_anonymous_4346_(line, this, arguments, var=var):
                                    var = Scope({u'this':this, u'line':line, u'arguments':arguments}, var)
                                    var.registers([u'line'])
                                    return (Js(u'   ')+var.get(u'line'))
                                PyJs_anonymous_4346_._set_name(u'anonymous')
                                var.put(u'str', (Js(u'\n')+var.get(u'str').callprop(u'split', Js(u'\n')).callprop(u'map', PyJs_anonymous_4346_).callprop(u'join', Js(u'\n'))))
                    else:
                        var.put(u'str', var.get(u'ctx').callprop(u'stylize', Js(u'[Circular]'), Js(u'special')))
                if var.get(u'isUndefined')(var.get(u'name')):
                    if (var.get(u'array') and var.get(u'key').callprop(u'match', JsRegExp(u'/^\\d+$/'))):
                        return var.get(u'str')
                    var.put(u'name', var.get(u'JSON').callprop(u'stringify', (Js(u'')+var.get(u'key'))))
                    if var.get(u'name').callprop(u'match', JsRegExp(u'/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/')):
                        var.put(u'name', var.get(u'name').callprop(u'substr', Js(1.0), (var.get(u'name').get(u'length')-Js(2.0))))
                        var.put(u'name', var.get(u'ctx').callprop(u'stylize', var.get(u'name'), Js(u'name')))
                    else:
                        var.put(u'name', var.get(u'name').callprop(u'replace', JsRegExp(u"/'/g"), Js(u"\\'")).callprop(u'replace', JsRegExp(u'/\\\\"/g'), Js(u'"')).callprop(u'replace', JsRegExp(u'/(^"|"$)/g'), Js(u"'")))
                        var.put(u'name', var.get(u'ctx').callprop(u'stylize', var.get(u'name'), Js(u'string')))
                return ((var.get(u'name')+Js(u': '))+var.get(u'str'))
            PyJsHoisted_formatProperty_.func_name = u'formatProperty'
            var.put(u'formatProperty', PyJsHoisted_formatProperty_)
            @Js
            def PyJsHoisted_formatError_(value, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'value':value}, var)
                var.registers([u'value'])
                return ((Js(u'[')+var.get(u'Error').get(u'prototype').get(u'toString').callprop(u'call', var.get(u'value')))+Js(u']'))
            PyJsHoisted_formatError_.func_name = u'formatError'
            var.put(u'formatError', PyJsHoisted_formatError_)
            @Js
            def PyJsHoisted_formatArray_(ctx, value, recurseTimes, visibleKeys, keys, this, arguments, var=var):
                var = Scope({u'this':this, u'visibleKeys':visibleKeys, u'arguments':arguments, u'recurseTimes':recurseTimes, u'keys':keys, u'ctx':ctx, u'value':value}, var)
                var.registers([u'keys', u'recurseTimes', u'i', u'ctx', u'l', u'value', u'visibleKeys', u'output'])
                var.put(u'output', Js([]))
                #for JS loop
                var.put(u'i', Js(0.0))
                var.put(u'l', var.get(u'value').get(u'length'))
                while (var.get(u'i')<var.get(u'l')):
                    try:
                        if var.get(u'hasOwnProperty')(var.get(u'value'), var.get(u'String')(var.get(u'i'))):
                            var.get(u'output').callprop(u'push', var.get(u'formatProperty')(var.get(u'ctx'), var.get(u'value'), var.get(u'recurseTimes'), var.get(u'visibleKeys'), var.get(u'String')(var.get(u'i')), var.get(u'true')))
                        else:
                            var.get(u'output').callprop(u'push', Js(u''))
                    finally:
                            var.put(u'i',Js(var.get(u'i').to_number())+Js(1))
                @Js
                def PyJs_anonymous_4343_(key, this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
                    var.registers([u'key'])
                    if var.get(u'key').callprop(u'match', JsRegExp(u'/^\\d+$/')).neg():
                        var.get(u'output').callprop(u'push', var.get(u'formatProperty')(var.get(u'ctx'), var.get(u'value'), var.get(u'recurseTimes'), var.get(u'visibleKeys'), var.get(u'key'), var.get(u'true')))
                PyJs_anonymous_4343_._set_name(u'anonymous')
                var.get(u'keys').callprop(u'forEach', PyJs_anonymous_4343_)
                return var.get(u'output')
            PyJsHoisted_formatArray_.func_name = u'formatArray'
            var.put(u'formatArray', PyJsHoisted_formatArray_)
            @Js
            def PyJsHoisted_pad_(n, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'n':n}, var)
                var.registers([u'n'])
                return ((Js(u'0')+var.get(u'n').callprop(u'toString', Js(10.0))) if (var.get(u'n')<Js(10.0)) else var.get(u'n').callprop(u'toString', Js(10.0)))
            PyJsHoisted_pad_.func_name = u'pad'
            var.put(u'pad', PyJsHoisted_pad_)
            @Js
            def PyJsHoisted_stylizeWithColor_(str, styleType, this, arguments, var=var):
                var = Scope({u'this':this, u'styleType':styleType, u'str':str, u'arguments':arguments}, var)
                var.registers([u'style', u'styleType', u'str'])
                var.put(u'style', var.get(u'inspect').get(u'styles').get(var.get(u'styleType')))
                if var.get(u'style'):
                    return ((((((Js(u'\x1b[')+var.get(u'inspect').get(u'colors').get(var.get(u'style')).get(u'0'))+Js(u'm'))+var.get(u'str'))+Js(u'\x1b['))+var.get(u'inspect').get(u'colors').get(var.get(u'style')).get(u'1'))+Js(u'm'))
                else:
                    return var.get(u'str')
            PyJsHoisted_stylizeWithColor_.func_name = u'stylizeWithColor'
            var.put(u'stylizeWithColor', PyJsHoisted_stylizeWithColor_)
            @Js
            def PyJsHoisted_isRegExp_(re, this, arguments, var=var):
                var = Scope({u'this':this, u're':re, u'arguments':arguments}, var)
                var.registers([u're'])
                return (var.get(u'isObject')(var.get(u're')) and PyJsStrictEq(var.get(u'objectToString')(var.get(u're')),Js(u'[object RegExp]')))
            PyJsHoisted_isRegExp_.func_name = u'isRegExp'
            var.put(u'isRegExp', PyJsHoisted_isRegExp_)
            @Js
            def PyJsHoisted_stylizeNoColor_(str, styleType, this, arguments, var=var):
                var = Scope({u'this':this, u'styleType':styleType, u'str':str, u'arguments':arguments}, var)
                var.registers([u'styleType', u'str'])
                return var.get(u'str')
            PyJsHoisted_stylizeNoColor_.func_name = u'stylizeNoColor'
            var.put(u'stylizeNoColor', PyJsHoisted_stylizeNoColor_)
            @Js
            def PyJsHoisted_timestamp_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([u'd', u'time'])
                var.put(u'd', var.get(u'Date').create())
                var.put(u'time', Js([var.get(u'pad')(var.get(u'd').callprop(u'getHours')), var.get(u'pad')(var.get(u'd').callprop(u'getMinutes')), var.get(u'pad')(var.get(u'd').callprop(u'getSeconds'))]).callprop(u'join', Js(u':')))
                return Js([var.get(u'd').callprop(u'getDate'), var.get(u'months').get(var.get(u'd').callprop(u'getMonth')), var.get(u'time')]).callprop(u'join', Js(u' '))
            PyJsHoisted_timestamp_.func_name = u'timestamp'
            var.put(u'timestamp', PyJsHoisted_timestamp_)
            @Js
            def PyJsHoisted_inspect_(obj, opts, this, arguments, var=var):
                var = Scope({u'this':this, u'obj':obj, u'arguments':arguments, u'opts':opts}, var)
                var.registers([u'obj', u'ctx', u'opts'])
                PyJs_Object_4337_ = Js({u'seen':Js([]),u'stylize':var.get(u'stylizeNoColor')})
                var.put(u'ctx', PyJs_Object_4337_)
                if (var.get(u'arguments').get(u'length')>=Js(3.0)):
                    var.get(u'ctx').put(u'depth', var.get(u'arguments').get(u'2'))
                if (var.get(u'arguments').get(u'length')>=Js(4.0)):
                    var.get(u'ctx').put(u'colors', var.get(u'arguments').get(u'3'))
                if var.get(u'isBoolean')(var.get(u'opts')):
                    var.get(u'ctx').put(u'showHidden', var.get(u'opts'))
                else:
                    if var.get(u'opts'):
                        var.get(u'exports').callprop(u'_extend', var.get(u'ctx'), var.get(u'opts'))
                if var.get(u'isUndefined')(var.get(u'ctx').get(u'showHidden')):
                    var.get(u'ctx').put(u'showHidden', Js(False))
                if var.get(u'isUndefined')(var.get(u'ctx').get(u'depth')):
                    var.get(u'ctx').put(u'depth', Js(2.0))
                if var.get(u'isUndefined')(var.get(u'ctx').get(u'colors')):
                    var.get(u'ctx').put(u'colors', Js(False))
                if var.get(u'isUndefined')(var.get(u'ctx').get(u'customInspect')):
                    var.get(u'ctx').put(u'customInspect', var.get(u'true'))
                if var.get(u'ctx').get(u'colors'):
                    var.get(u'ctx').put(u'stylize', var.get(u'stylizeWithColor'))
                return var.get(u'formatValue')(var.get(u'ctx'), var.get(u'obj'), var.get(u'ctx').get(u'depth'))
            PyJsHoisted_inspect_.func_name = u'inspect'
            var.put(u'inspect', PyJsHoisted_inspect_)
            @Js
            def PyJsHoisted_formatPrimitive_(ctx, value, this, arguments, var=var):
                var = Scope({u'this':this, u'ctx':ctx, u'arguments':arguments, u'value':value}, var)
                var.registers([u'simple', u'ctx', u'value'])
                if var.get(u'isUndefined')(var.get(u'value')):
                    return var.get(u'ctx').callprop(u'stylize', Js(u'undefined'), Js(u'undefined'))
                if var.get(u'isString')(var.get(u'value')):
                    var.put(u'simple', ((Js(u"'")+var.get(u'JSON').callprop(u'stringify', var.get(u'value')).callprop(u'replace', JsRegExp(u'/^"|"$/g'), Js(u'')).callprop(u'replace', JsRegExp(u"/'/g"), Js(u"\\'")).callprop(u'replace', JsRegExp(u'/\\\\"/g'), Js(u'"')))+Js(u"'")))
                    return var.get(u'ctx').callprop(u'stylize', var.get(u'simple'), Js(u'string'))
                if var.get(u'isNumber')(var.get(u'value')):
                    return var.get(u'ctx').callprop(u'stylize', (Js(u'')+var.get(u'value')), Js(u'number'))
                if var.get(u'isBoolean')(var.get(u'value')):
                    return var.get(u'ctx').callprop(u'stylize', (Js(u'')+var.get(u'value')), Js(u'boolean'))
                if var.get(u'isNull')(var.get(u'value')):
                    return var.get(u'ctx').callprop(u'stylize', Js(u'null'), Js(u'null'))
            PyJsHoisted_formatPrimitive_.func_name = u'formatPrimitive'
            var.put(u'formatPrimitive', PyJsHoisted_formatPrimitive_)
            @Js
            def PyJsHoisted_hasOwnProperty_(obj, prop, this, arguments, var=var):
                var = Scope({u'this':this, u'obj':obj, u'arguments':arguments, u'prop':prop}, var)
                var.registers([u'obj', u'prop'])
                return var.get(u'Object').get(u'prototype').get(u'hasOwnProperty').callprop(u'call', var.get(u'obj'), var.get(u'prop'))
            PyJsHoisted_hasOwnProperty_.func_name = u'hasOwnProperty'
            var.put(u'hasOwnProperty', PyJsHoisted_hasOwnProperty_)
            @Js
            def PyJsHoisted_isNumber_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'arg'])
                return PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'number'))
            PyJsHoisted_isNumber_.func_name = u'isNumber'
            var.put(u'isNumber', PyJsHoisted_isNumber_)
            @Js
            def PyJsHoisted_isError_(e, this, arguments, var=var):
                var = Scope({u'this':this, u'e':e, u'arguments':arguments}, var)
                var.registers([u'e'])
                return (var.get(u'isObject')(var.get(u'e')) and (PyJsStrictEq(var.get(u'objectToString')(var.get(u'e')),Js(u'[object Error]')) or var.get(u'e').instanceof(var.get(u'Error'))))
            PyJsHoisted_isError_.func_name = u'isError'
            var.put(u'isError', PyJsHoisted_isError_)
            @Js
            def PyJsHoisted_reduceToSingleString_(output, base, braces, this, arguments, var=var):
                var = Scope({u'this':this, u'output':output, u'base':base, u'arguments':arguments, u'braces':braces}, var)
                var.registers([u'output', u'length', u'base', u'numLinesEst', u'braces'])
                var.put(u'numLinesEst', Js(0.0))
                @Js
                def PyJs_anonymous_4347_(prev, cur, this, arguments, var=var):
                    var = Scope({u'this':this, u'prev':prev, u'cur':cur, u'arguments':arguments}, var)
                    var.registers([u'prev', u'cur'])
                    (var.put(u'numLinesEst',Js(var.get(u'numLinesEst').to_number())+Js(1))-Js(1))
                    if (var.get(u'cur').callprop(u'indexOf', Js(u'\n'))>=Js(0.0)):
                        (var.put(u'numLinesEst',Js(var.get(u'numLinesEst').to_number())+Js(1))-Js(1))
                    return ((var.get(u'prev')+var.get(u'cur').callprop(u'replace', JsRegExp(u'/\\u001b\\[\\d\\d?m/g'), Js(u'')).get(u'length'))+Js(1.0))
                PyJs_anonymous_4347_._set_name(u'anonymous')
                var.put(u'length', var.get(u'output').callprop(u'reduce', PyJs_anonymous_4347_, Js(0.0)))
                if (var.get(u'length')>Js(60.0)):
                    return (((((var.get(u'braces').get(u'0')+(Js(u'') if PyJsStrictEq(var.get(u'base'),Js(u'')) else (var.get(u'base')+Js(u'\n '))))+Js(u' '))+var.get(u'output').callprop(u'join', Js(u',\n  ')))+Js(u' '))+var.get(u'braces').get(u'1'))
                return (((((var.get(u'braces').get(u'0')+var.get(u'base'))+Js(u' '))+var.get(u'output').callprop(u'join', Js(u', ')))+Js(u' '))+var.get(u'braces').get(u'1'))
            PyJsHoisted_reduceToSingleString_.func_name = u'reduceToSingleString'
            var.put(u'reduceToSingleString', PyJsHoisted_reduceToSingleString_)
            @Js
            def PyJsHoisted_isNullOrUndefined_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'arg'])
                return (var.get(u'arg')==var.get(u"null"))
            PyJsHoisted_isNullOrUndefined_.func_name = u'isNullOrUndefined'
            var.put(u'isNullOrUndefined', PyJsHoisted_isNullOrUndefined_)
            @Js
            def PyJsHoisted_isDate_(d, this, arguments, var=var):
                var = Scope({u'this':this, u'd':d, u'arguments':arguments}, var)
                var.registers([u'd'])
                return (var.get(u'isObject')(var.get(u'd')) and PyJsStrictEq(var.get(u'objectToString')(var.get(u'd')),Js(u'[object Date]')))
            PyJsHoisted_isDate_.func_name = u'isDate'
            var.put(u'isDate', PyJsHoisted_isDate_)
            @Js
            def PyJsHoisted_isString_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'arg'])
                return PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'string'))
            PyJsHoisted_isString_.func_name = u'isString'
            var.put(u'isString', PyJsHoisted_isString_)
            @Js
            def PyJsHoisted_isPrimitive_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'arg'])
                return (((((PyJsStrictEq(var.get(u'arg'),var.get(u"null")) or PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'boolean'))) or PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'number'))) or PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'string'))) or PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'symbol'))) or PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'undefined')))
            PyJsHoisted_isPrimitive_.func_name = u'isPrimitive'
            var.put(u'isPrimitive', PyJsHoisted_isPrimitive_)
            @Js
            def PyJsHoisted_formatValue_(ctx, value, recurseTimes, this, arguments, var=var):
                var = Scope({u'this':this, u'ctx':ctx, u'arguments':arguments, u'value':value, u'recurseTimes':recurseTimes}, var)
                var.registers([u'primitive', u'name', u'recurseTimes', u'keys', u'ctx', u'ret', u'n', u'visibleKeys', u'base', u'value', u'output', u'array', u'braces'])
                if ((((var.get(u'ctx').get(u'customInspect') and var.get(u'value')) and var.get(u'isFunction')(var.get(u'value').get(u'inspect'))) and PyJsStrictNeq(var.get(u'value').get(u'inspect'),var.get(u'exports').get(u'inspect'))) and (var.get(u'value').get(u'constructor') and PyJsStrictEq(var.get(u'value').get(u'constructor').get(u'prototype'),var.get(u'value'))).neg()):
                    var.put(u'ret', var.get(u'value').callprop(u'inspect', var.get(u'recurseTimes'), var.get(u'ctx')))
                    if var.get(u'isString')(var.get(u'ret')).neg():
                        var.put(u'ret', var.get(u'formatValue')(var.get(u'ctx'), var.get(u'ret'), var.get(u'recurseTimes')))
                    return var.get(u'ret')
                var.put(u'primitive', var.get(u'formatPrimitive')(var.get(u'ctx'), var.get(u'value')))
                if var.get(u'primitive'):
                    return var.get(u'primitive')
                var.put(u'keys', var.get(u'Object').callprop(u'keys', var.get(u'value')))
                var.put(u'visibleKeys', var.get(u'arrayToHash')(var.get(u'keys')))
                if var.get(u'ctx').get(u'showHidden'):
                    var.put(u'keys', var.get(u'Object').callprop(u'getOwnPropertyNames', var.get(u'value')))
                if (var.get(u'isError')(var.get(u'value')) and ((var.get(u'keys').callprop(u'indexOf', Js(u'message'))>=Js(0.0)) or (var.get(u'keys').callprop(u'indexOf', Js(u'description'))>=Js(0.0)))):
                    return var.get(u'formatError')(var.get(u'value'))
                if PyJsStrictEq(var.get(u'keys').get(u'length'),Js(0.0)):
                    if var.get(u'isFunction')(var.get(u'value')):
                        var.put(u'name', ((Js(u': ')+var.get(u'value').get(u'name')) if var.get(u'value').get(u'name') else Js(u'')))
                        return var.get(u'ctx').callprop(u'stylize', ((Js(u'[Function')+var.get(u'name'))+Js(u']')), Js(u'special'))
                    if var.get(u'isRegExp')(var.get(u'value')):
                        return var.get(u'ctx').callprop(u'stylize', var.get(u'RegExp').get(u'prototype').get(u'toString').callprop(u'call', var.get(u'value')), Js(u'regexp'))
                    if var.get(u'isDate')(var.get(u'value')):
                        return var.get(u'ctx').callprop(u'stylize', var.get(u'Date').get(u'prototype').get(u'toString').callprop(u'call', var.get(u'value')), Js(u'date'))
                    if var.get(u'isError')(var.get(u'value')):
                        return var.get(u'formatError')(var.get(u'value'))
                var.put(u'base', Js(u''))
                var.put(u'array', Js(False))
                var.put(u'braces', Js([Js(u'{'), Js(u'}')]))
                if var.get(u'isArray')(var.get(u'value')):
                    var.put(u'array', var.get(u'true'))
                    var.put(u'braces', Js([Js(u'['), Js(u']')]))
                if var.get(u'isFunction')(var.get(u'value')):
                    var.put(u'n', ((Js(u': ')+var.get(u'value').get(u'name')) if var.get(u'value').get(u'name') else Js(u'')))
                    var.put(u'base', ((Js(u' [Function')+var.get(u'n'))+Js(u']')))
                if var.get(u'isRegExp')(var.get(u'value')):
                    var.put(u'base', (Js(u' ')+var.get(u'RegExp').get(u'prototype').get(u'toString').callprop(u'call', var.get(u'value'))))
                if var.get(u'isDate')(var.get(u'value')):
                    var.put(u'base', (Js(u' ')+var.get(u'Date').get(u'prototype').get(u'toUTCString').callprop(u'call', var.get(u'value'))))
                if var.get(u'isError')(var.get(u'value')):
                    var.put(u'base', (Js(u' ')+var.get(u'formatError')(var.get(u'value'))))
                if (PyJsStrictEq(var.get(u'keys').get(u'length'),Js(0.0)) and (var.get(u'array').neg() or (var.get(u'value').get(u'length')==Js(0.0)))):
                    return ((var.get(u'braces').get(u'0')+var.get(u'base'))+var.get(u'braces').get(u'1'))
                if (var.get(u'recurseTimes')<Js(0.0)):
                    if var.get(u'isRegExp')(var.get(u'value')):
                        return var.get(u'ctx').callprop(u'stylize', var.get(u'RegExp').get(u'prototype').get(u'toString').callprop(u'call', var.get(u'value')), Js(u'regexp'))
                    else:
                        return var.get(u'ctx').callprop(u'stylize', Js(u'[Object]'), Js(u'special'))
                var.get(u'ctx').get(u'seen').callprop(u'push', var.get(u'value'))
                pass
                if var.get(u'array'):
                    var.put(u'output', var.get(u'formatArray')(var.get(u'ctx'), var.get(u'value'), var.get(u'recurseTimes'), var.get(u'visibleKeys'), var.get(u'keys')))
                else:
                    @Js
                    def PyJs_anonymous_4342_(key, this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments, u'key':key}, var)
                        var.registers([u'key'])
                        return var.get(u'formatProperty')(var.get(u'ctx'), var.get(u'value'), var.get(u'recurseTimes'), var.get(u'visibleKeys'), var.get(u'key'), var.get(u'array'))
                    PyJs_anonymous_4342_._set_name(u'anonymous')
                    var.put(u'output', var.get(u'keys').callprop(u'map', PyJs_anonymous_4342_))
                var.get(u'ctx').get(u'seen').callprop(u'pop')
                return var.get(u'reduceToSingleString')(var.get(u'output'), var.get(u'base'), var.get(u'braces'))
            PyJsHoisted_formatValue_.func_name = u'formatValue'
            var.put(u'formatValue', PyJsHoisted_formatValue_)
            @Js
            def PyJsHoisted_isNull_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'arg'])
                return PyJsStrictEq(var.get(u'arg'),var.get(u"null"))
            PyJsHoisted_isNull_.func_name = u'isNull'
            var.put(u'isNull', PyJsHoisted_isNull_)
            @Js
            def PyJsHoisted_isUndefined_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'arg'])
                return PyJsStrictEq(var.get(u'arg'),PyJsComma(Js(0.0), Js(None)))
            PyJsHoisted_isUndefined_.func_name = u'isUndefined'
            var.put(u'isUndefined', PyJsHoisted_isUndefined_)
            @Js
            def PyJsHoisted_isSymbol_(arg, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'arg':arg}, var)
                var.registers([u'arg'])
                return PyJsStrictEq(var.get(u'arg',throw=False).typeof(),Js(u'symbol'))
            PyJsHoisted_isSymbol_.func_name = u'isSymbol'
            var.put(u'isSymbol', PyJsHoisted_isSymbol_)
            var.put(u'formatRegExp', JsRegExp(u'/%[sdj%]/g'))
            @Js
            def PyJs_anonymous_4329_(f, this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments, u'f':f}, var)
                var.registers([u'f', u'i', u'args', u'len', u'objects', u'str', u'x'])
                if var.get(u'isString')(var.get(u'f')).neg():
                    var.put(u'objects', Js([]))
                    #for JS loop
                    var.put(u'i', Js(0.0))
                    while (var.get(u'i')<var.get(u'arguments').get(u'length')):
                        try:
                            var.get(u'objects').callprop(u'push', var.get(u'inspect')(var.get(u'arguments').get(var.get(u'i'))))
                        finally:
                                (var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))
                    return var.get(u'objects').callprop(u'join', Js(u' '))
                var.put(u'i', Js(1.0))
                var.put(u'args', var.get(u'arguments'))
                var.put(u'len', var.get(u'args').get(u'length'))
                @Js
                def PyJs_anonymous_4330_(x, this, arguments, var=var):
                    var = Scope({u'this':this, u'x':x, u'arguments':arguments}, var)
                    var.registers([u'x'])
                    if PyJsStrictEq(var.get(u'x'),Js(u'%%')):
                        return Js(u'%')
                    if (var.get(u'i')>=var.get(u'len')):
                        return var.get(u'x')
                    while 1:
                        SWITCHED = False
                        CONDITION = (var.get(u'x'))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'%s')):
                            SWITCHED = True
                            return var.get(u'String')(var.get(u'args').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'%d')):
                            SWITCHED = True
                            return var.get(u'Number')(var.get(u'args').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))
                        if SWITCHED or PyJsStrictEq(CONDITION, Js(u'%j')):
                            SWITCHED = True
                            try:
                                return var.get(u'JSON').callprop(u'stringify', var.get(u'args').get((var.put(u'i',Js(var.get(u'i').to_number())+Js(1))-Js(1))))
                            except PyJsException as PyJsTempException:
                                PyJsHolder_5f_51919926 = var.own.get(u'_')
                                var.force_own_put(u'_', PyExceptionToJs(PyJsTempException))
                                try:
                                    return Js(u'[Circular]')
                                finally:
                                    if PyJsHolder_5f_51919926 is not None:
                                        var.own[u'_'] = PyJsHolder_5f_51919926
                                    else:
                                        del var.own[u'_']
                                    del PyJsHolder_5f_51919926
                        if True:
                            SWITCHED = True
                            return var.get(u'x')
                        SWITCHED = True
                        break
                PyJs_anonymous_4330_._set_name(u'anonymous')
                var.put(u'str', var.get(u'String')(var.get(u'f')).callprop(u'replace', var.get(u'formatRegExp'), PyJs_anonymous_4330_))
                #for JS loop
                var.put(u'x', var.get(u'args').get(var.get(u'i')))
                while (var.get(u'i')<var.get(u'len')):
                    try:
                        if (var.get(u'isNull')(var.get(u'x')) or var.get(u'isObject')(var.get(u'x')).neg()):
                            var.put(u'str', (Js(u' ')+var.get(u'x')), u'+')
                        else:
                            var.put(u'str', (Js(u' ')+var.get(u'inspect')(var.get(u'x'))), u'+')
                    finally:
                            var.put(u'x', var.get(u'args').get(var.put(u'i',Js(var.get(u'i').to_number())+Js(1))))
                return var.get(u'str')
            PyJs_anonymous_4329_._set_name(u'anonymous')
            var.get(u'exports').put(u'format', PyJs_anonymous_4329_)
            @Js
            def PyJs_anonymous_4331_(fn, msg, this, arguments, var=var):
                var = Scope({u'msg':msg, u'this':this, u'arguments':arguments, u'fn':fn}, var)
                var.registers([u'msg', u'warned', u'fn', u'deprecated'])
                @Js
                def PyJsHoisted_deprecated_(this, arguments, var=var):
                    var = Scope({u'this':this, u'arguments':arguments}, var)
                    var.registers([])
                    if var.get(u'warned').neg():
                        if var.get(u'process').get(u'throwDeprecation'):
                            PyJsTempException = JsToPyException(var.get(u'Error').create(var.get(u'msg')))
                            raise PyJsTempException
                        else:
                            if var.get(u'process').get(u'traceDeprecation'):
                                var.get(u'console').callprop(u'trace', var.get(u'msg'))
                            else:
                                var.get(u'console').callprop(u'error', var.get(u'msg'))
                        var.put(u'warned', var.get(u'true'))
                    return var.get(u'fn').callprop(u'apply', var.get(u"this"), var.get(u'arguments'))
                PyJsHoisted_deprecated_.func_name = u'deprecated'
                var.put(u'deprecated', PyJsHoisted_deprecated_)
                if var.get(u'isUndefined')(var.get(u'global').get(u'process')):
                    @Js
                    def PyJs_anonymous_4332_(this, arguments, var=var):
                        var = Scope({u'this':this, u'arguments':arguments}, var)
                        var.registers([])
                        return var.get(u'exports').callprop(u'deprecate', var.get(u'fn'), var.get(u'msg')).callprop(u'apply', var.get(u"this"), var.get(u'arguments'))
                    PyJs_anonymous_4332_._set_name(u'anonymous')
                    return PyJs_anonymous_4332_
                if PyJsStrictEq(var.get(u'process').get(u'noDeprecation'),var.get(u'true')):
                    return var.get(u'fn')
                var.put(u'warned', Js(False))
                pass
                return var.get(u'deprecated')
            PyJs_anonymous_4331_._set_name(u'anonymous')
            var.get(u'exports').put(u'deprecate', PyJs_anonymous_4331_)
            PyJs_Object_4333_ = Js({})
            var.put(u'debugs', PyJs_Object_4333_)
            pass
            @Js
            def PyJs_anonymous_4334_(set, this, arguments, var=var):
                var = Scope({u'this':this, u'set':set, u'arguments':arguments}, var)
                var.registers([u'set', u'pid'])
                if var.get(u'isUndefined')(var.get(u'debugEnviron')):
                    var.put(u'debugEnviron', (var.get(u'process').get(u'env').get(u'NODE_DEBUG') or Js(u'')))
                var.put(u'set', var.get(u'set').callprop(u'toUpperCase'))
                if var.get(u'debugs').get(var.get(u'set')).neg():
                    if var.get(u'RegExp').create(((Js(u'\\b')+var.get(u'set'))+Js(u'\\b')), Js(u'i')).callprop(u'test', var.get(u'debugEnviron')):
                        var.put(u'pid', var.get(u'process').get(u'pid'))
                        @Js
                        def PyJs_anonymous_4335_(this, arguments, var=var):
                            var = Scope({u'this':this, u'arguments':arguments}, var)
                            var.registers([u'msg'])
                            var.put(u'msg', var.get(u'exports').get(u'format').callprop(u'apply', var.get(u'exports'), var.get(u'arguments')))
                            var.get(u'console').callprop(u'error', Js(u'%s %d: %s'), var.get(u'set'), var.get(u'pid'), var.get(u'msg'))
                        PyJs_anonymous_4335_._set_name(u'anonymous')
                        var.get(u'debugs').put(var.get(u'set'), PyJs_anonymous_4335_)
                    else:
                        @Js
                        def PyJs_anonymous_4336_(this, arguments, var=var):
                            var = Scope({u'this':this, u'arguments':arguments}, var)
                            var.registers([])
                            pass
                        PyJs_anonymous_4336_._set_name(u'anonymous')
                        var.get(u'debugs').put(var.get(u'set'), PyJs_anonymous_4336_)
                return var.get(u'debugs').get(var.get(u'set'))
            PyJs_anonymous_4334_._set_name(u'anonymous')
            var.get(u'exports').put(u'debuglog', PyJs_anonymous_4334_)
            pass
            var.get(u'exports').put(u'inspect', var.get(u'inspect'))
            PyJs_Object_4338_ = Js({u'bold':Js([Js(1.0), Js(22.0)]),u'italic':Js([Js(3.0), Js(23.0)]),u'underline':Js([Js(4.0), Js(24.0)]),u'inverse':Js([Js(7.0), Js(27.0)]),u'white':Js([Js(37.0), Js(39.0)]),u'grey':Js([Js(90.0), Js(39.0)]),u'black':Js([Js(30.0), Js(39.0)]),u'blue':Js([Js(34.0), Js(39.0)]),u'cyan':Js([Js(36.0), Js(39.0)]),u'green':Js([Js(32.0), Js(39.0)]),u'magenta':Js([Js(35.0), Js(39.0)]),u'red':Js([Js(31.0), Js(39.0)]),u'yellow':Js([Js(33.0), Js(39.0)])})
            var.get(u'inspect').put(u'colors', PyJs_Object_4338_)
            PyJs_Object_4339_ = Js({u'special':Js(u'cyan'),u'number':Js(u'yellow'),u'boolean':Js(u'yellow'),u'undefined':Js(u'grey'),u'null':Js(u'bold'),u'string':Js(u'green'),u'date':Js(u'magenta'),u'regexp':Js(u'red')})
            var.get(u'inspect').put(u'styles', PyJs_Object_4339_)
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            pass
            var.get(u'exports').put(u'isArray', var.get(u'isArray'))
            pass
            var.get(u'exports').put(u'isBoolean', var.get(u'isBoolean'))
            pass
            var.get(u'exports').put(u'isNull', var.get(u'isNull'))
            pass
            var.get(u'exports').put(u'isNullOrUndefined', var.get(u'isNullOrUndefined'))
            pass
            var.get(u'exports').put(u'isNumber', var.get(u'isNumber'))
            pass
            var.get(u'exports').put(u'isString', var.get(u'isString'))
            pass
            var.get(u'exports').put(u'isSymbol', var.get(u'isSymbol'))
            pass
            var.get(u'exports').put(u'isUndefined', var.get(u'isUndefined'))
            pass
            var.get(u'exports').put(u'isRegExp', var.get(u'isRegExp'))
            pass
            var.get(u'exports').put(u'isObject', var.get(u'isObject'))
            pass
            var.get(u'exports').put(u'isDate', var.get(u'isDate'))
            pass
            var.get(u'exports').put(u'isError', var.get(u'isError'))
            pass
            var.get(u'exports').put(u'isFunction', var.get(u'isFunction'))
            pass
            var.get(u'exports').put(u'isPrimitive', var.get(u'isPrimitive'))
            var.get(u'exports').put(u'isBuffer', var.get(u'require')(Js(u'./support/isBuffer')))
            pass
            pass
            var.put(u'months', Js([Js(u'Jan'), Js(u'Feb'), Js(u'Mar'), Js(u'Apr'), Js(u'May'), Js(u'Jun'), Js(u'Jul'), Js(u'Aug'), Js(u'Sep'), Js(u'Oct'), Js(u'Nov'), Js(u'Dec')]))
            pass
            @Js
            def PyJs_anonymous_4348_(this, arguments, var=var):
                var = Scope({u'this':this, u'arguments':arguments}, var)
                var.registers([])
                var.get(u'console').callprop(u'log', Js(u'%s - %s'), var.get(u'timestamp')(), var.get(u'exports').get(u'format').callprop(u'apply', var.get(u'exports'), var.get(u'arguments')))
            PyJs_anonymous_4348_._set_name(u'anonymous')
            var.get(u'exports').put(u'log', PyJs_anonymous_4348_)
            var.get(u'exports').put(u'inherits', var.get(u'require')(Js(u'inherits')))
            @Js
            def PyJs_anonymous_4349_(origin, add, this, arguments, var=var):
                var = Scope({u'origin':origin, u'this':this, u'add':add, u'arguments':arguments}, var)
                var.registers([u'keys', u'i', u'add', u'origin'])
                if (var.get(u'add').neg() or var.get(u'isObject')(var.get(u'add')).neg()):
                    return var.get(u'origin')
                var.put(u'keys', var.get(u'Object').callprop(u'keys', var.get(u'add')))
                var.put(u'i', var.get(u'keys').get(u'length'))
                while (var.put(u'i',Js(var.get(u'i').to_number())-Js(1))+Js(1)):
                    var.get(u'origin').put(var.get(u'keys').get(var.get(u'i')), var.get(u'add').get(var.get(u'keys').get(var.get(u'i'))))
                return var.get(u'origin')
            PyJs_anonymous_4349_._set_name(u'anonymous')
            var.get(u'exports').put(u'_extend', PyJs_anonymous_4349_)
            pass
        PyJs_anonymous_4328_._set_name(u'anonymous')
        return PyJs_anonymous_4328_.callprop(u'call', var.get(u"this"), var.get(u'require')(Js(u'_process')), (var.get(u'global') if PyJsStrictNeq(var.get(u'global',throw=False).typeof(),Js(u'undefined')) else (var.get(u'self') if PyJsStrictNeq(var.get(u'self',throw=False).typeof(),Js(u'undefined')) else (var.get(u'window') if PyJsStrictNeq(var.get(u'window',throw=False).typeof(),Js(u'undefined')) else PyJs_Object_4327_))))
    PyJs_LONG_4350_()
PyJs_anonymous_4326_._set_name(u'anonymous')
PyJs_Object_4351_ = Js({u'./support/isBuffer':Js(533.0),u'_process':Js(531.0),u'inherits':Js(529.0)})
PyJs_Object_0_ = Js({u'1':Js([PyJs_anonymous_1_, PyJs_Object_2_]),u'2':Js([PyJs_anonymous_3_, PyJs_Object_5_]),u'3':Js([PyJs_anonymous_6_, PyJs_Object_16_]),u'4':Js([PyJs_anonymous_17_, PyJs_Object_26_]),u'5':Js([PyJs_anonymous_27_, PyJs_Object_28_]),u'6':Js([PyJs_anonymous_29_, PyJs_Object_46_]),u'7':Js([PyJs_anonymous_47_, PyJs_Object_51_]),u'8':Js([PyJs_anonymous_52_, PyJs_Object_55_]),u'9':Js([PyJs_anonymous_56_, PyJs_Object_61_]),u'10':Js([PyJs_anonymous_62_, PyJs_Object_68_]),u'11':Js([PyJs_anonymous_69_, PyJs_Object_79_]),u'12':Js([PyJs_anonymous_80_, PyJs_Object_142_]),u'13':Js([PyJs_anonymous_143_, PyJs_Object_153_]),u'14':Js([PyJs_anonymous_154_, PyJs_Object_171_]),u'15':Js([PyJs_anonymous_172_, PyJs_Object_192_]),u'16':Js([PyJs_anonymous_193_, PyJs_Object_234_]),u'17':Js([PyJs_anonymous_235_, PyJs_Object_239_]),u'18':Js([PyJs_anonymous_240_, PyJs_Object_264_]),u'19':Js([PyJs_anonymous_265_, PyJs_Object_268_]),u'20':Js([PyJs_anonymous_269_, PyJs_Object_286_]),u'21':Js([PyJs_anonymous_287_, PyJs_Object_294_]),u'22':Js([PyJs_anonymous_295_, PyJs_Object_311_]),u'23':Js([PyJs_anonymous_312_, PyJs_Object_326_]),u'24':Js([PyJs_anonymous_327_, PyJs_Object_335_]),u'25':Js([PyJs_anonymous_336_, PyJs_Object_348_]),u'26':Js([PyJs_anonymous_349_, PyJs_Object_356_]),u'27':Js([PyJs_anonymous_357_, PyJs_Object_399_]),u'28':Js([PyJs_anonymous_400_, PyJs_Object_421_]),u'29':Js([PyJs_anonymous_422_, PyJs_Object_444_]),u'30':Js([PyJs_anonymous_445_, PyJs_Object_450_]),u'31':Js([PyJs_anonymous_451_, PyJs_Object_452_]),u'32':Js([PyJs_anonymous_453_, PyJs_Object_459_]),u'33':Js([PyJs_anonymous_460_, PyJs_Object_470_]),u'34':Js([PyJs_anonymous_471_, PyJs_Object_474_]),u'35':Js([PyJs_anonymous_475_, PyJs_Object_479_]),u'36':Js([PyJs_anonymous_480_, PyJs_Object_482_]),u'37':Js([PyJs_anonymous_483_, PyJs_Object_493_]),u'38':Js([PyJs_anonymous_494_, PyJs_Object_495_]),u'39':Js([PyJs_anonymous_496_, PyJs_Object_501_]),u'40':Js([PyJs_anonymous_502_, PyJs_Object_516_]),u'41':Js([PyJs_anonymous_517_, PyJs_Object_522_]),u'42':Js([PyJs_anonymous_523_, PyJs_Object_544_]),u'43':Js([PyJs_anonymous_545_, PyJs_Object_575_]),u'44':Js([PyJs_anonymous_576_, PyJs_Object_635_]),u'45':Js([PyJs_anonymous_636_, PyJs_Object_646_]),u'46':Js([PyJs_anonymous_647_, PyJs_Object_657_]),u'47':Js([PyJs_anonymous_658_, PyJs_Object_669_]),u'48':Js([PyJs_anonymous_670_, PyJs_Object_679_]),u'49':Js([PyJs_anonymous_680_, PyJs_Object_689_]),u'50':Js([PyJs_anonymous_690_, PyJs_Object_693_]),u'51':Js([PyJs_anonymous_694_, PyJs_Object_704_]),u'52':Js([PyJs_anonymous_705_, PyJs_Object_709_]),u'53':Js([PyJs_anonymous_710_, PyJs_Object_713_]),u'54':Js([PyJs_anonymous_714_, PyJs_Object_738_]),u'55':Js([PyJs_anonymous_739_, PyJs_Object_758_]),u'56':Js([PyJs_anonymous_759_, PyJs_Object_763_]),u'57':Js([PyJs_anonymous_764_, PyJs_Object_770_]),u'58':Js([PyJs_anonymous_771_, PyJs_Object_777_]),u'59':Js([PyJs_anonymous_778_, PyJs_Object_784_]),u'60':Js([PyJs_anonymous_785_, PyJs_Object_793_]),u'61':Js([PyJs_anonymous_794_, PyJs_Object_840_]),u'62':Js([PyJs_anonymous_841_, PyJs_Object_848_]),u'63':Js([PyJs_anonymous_849_, PyJs_Object_857_]),u'64':Js([PyJs_anonymous_858_, PyJs_Object_864_]),u'65':Js([PyJs_anonymous_865_, PyJs_Object_907_]),u'66':Js([PyJs_anonymous_908_, PyJs_Object_919_]),u'67':Js([PyJs_anonymous_920_, PyJs_Object_951_]),u'68':Js([PyJs_anonymous_952_, PyJs_Object_960_]),u'69':Js([PyJs_anonymous_961_, PyJs_Object_973_]),u'70':Js([PyJs_anonymous_974_, PyJs_Object_982_]),u'71':Js([PyJs_anonymous_983_, PyJs_Object_989_]),u'72':Js([PyJs_anonymous_990_, PyJs_Object_1008_]),u'73':Js([PyJs_anonymous_1009_, PyJs_Object_1029_]),u'74':Js([PyJs_anonymous_1030_, PyJs_Object_1048_]),u'75':Js([PyJs_anonymous_1049_, PyJs_Object_1065_]),u'76':Js([PyJs_anonymous_1066_, PyJs_Object_1078_]),u'77':Js([PyJs_anonymous_1079_, PyJs_Object_1089_]),u'78':Js([PyJs_anonymous_1090_, PyJs_Object_1094_]),u'79':Js([PyJs_anonymous_1095_, PyJs_Object_1102_]),u'80':Js([PyJs_anonymous_1103_, PyJs_Object_1128_]),u'81':Js([PyJs_anonymous_1129_, PyJs_Object_1136_]),u'82':Js([PyJs_anonymous_1137_, PyJs_Object_1147_]),u'83':Js([PyJs_anonymous_1148_, PyJs_Object_1154_]),u'84':Js([PyJs_anonymous_1155_, PyJs_Object_1164_]),u'85':Js([PyJs_anonymous_1165_, PyJs_Object_1173_]),u'86':Js([PyJs_anonymous_1174_, PyJs_Object_1181_]),u'87':Js([PyJs_anonymous_1182_, PyJs_Object_1251_]),u'88':Js([PyJs_anonymous_1252_, PyJs_Object_1268_]),u'89':Js([PyJs_anonymous_1269_, PyJs_Object_1271_]),u'90':Js([PyJs_anonymous_1272_, PyJs_Object_1279_]),u'91':Js([PyJs_anonymous_1280_, PyJs_Object_1286_]),u'92':Js([PyJs_anonymous_1287_, PyJs_Object_1290_]),u'93':Js([PyJs_anonymous_1291_, PyJs_Object_1310_]),u'94':Js([PyJs_anonymous_1311_, PyJs_Object_1318_]),u'95':Js([PyJs_anonymous_1319_, PyJs_Object_1330_]),u'96':Js([PyJs_anonymous_1331_, PyJs_Object_1333_]),u'97':Js([PyJs_anonymous_1334_, PyJs_Object_1336_]),u'98':Js([PyJs_anonymous_1337_, PyJs_Object_1339_]),u'99':Js([PyJs_anonymous_1340_, PyJs_Object_1342_]),u'100':Js([PyJs_anonymous_1343_, PyJs_Object_1345_]),u'101':Js([PyJs_anonymous_1346_, PyJs_Object_1348_]),u'102':Js([PyJs_anonymous_1349_, PyJs_Object_1351_]),u'103':Js([PyJs_anonymous_1352_, PyJs_Object_1354_]),u'104':Js([PyJs_anonymous_1355_, PyJs_Object_1357_]),u'105':Js([PyJs_anonymous_1358_, PyJs_Object_1360_]),u'106':Js([PyJs_anonymous_1361_, PyJs_Object_1363_]),u'107':Js([PyJs_anonymous_1364_, PyJs_Object_1366_]),u'108':Js([PyJs_anonymous_1367_, PyJs_Object_1369_]),u'109':Js([PyJs_anonymous_1370_, PyJs_Object_1372_]),u'110':Js([PyJs_anonymous_1373_, PyJs_Object_1375_]),u'111':Js([PyJs_anonymous_1376_, PyJs_Object_1381_]),u'112':Js([PyJs_anonymous_1382_, PyJs_Object_1385_]),u'113':Js([PyJs_anonymous_1386_, PyJs_Object_1389_]),u'114':Js([PyJs_anonymous_1390_, PyJs_Object_1397_]),u'115':Js([PyJs_anonymous_1398_, PyJs_Object_1399_]),u'116':Js([PyJs_anonymous_1400_, PyJs_Object_1403_]),u'117':Js([PyJs_anonymous_1404_, PyJs_Object_1405_]),u'118':Js([PyJs_anonymous_1406_, PyJs_Object_1407_]),u'119':Js([PyJs_anonymous_1408_, PyJs_Object_1409_]),u'120':Js([PyJs_anonymous_1410_, PyJs_Object_1412_]),u'121':Js([PyJs_anonymous_1413_, PyJs_Object_1414_]),u'122':Js([PyJs_anonymous_1415_, PyJs_Object_1416_]),u'123':Js([PyJs_anonymous_1417_, PyJs_Object_1418_]),u'124':Js([PyJs_anonymous_1419_, PyJs_Object_1420_]),u'125':Js([PyJs_anonymous_1421_, PyJs_Object_1422_]),u'126':Js([PyJs_anonymous_1423_, PyJs_Object_1424_]),u'127':Js([PyJs_anonymous_1425_, PyJs_Object_1426_]),u'128':Js([PyJs_anonymous_1427_, PyJs_Object_1428_]),u'129':Js([PyJs_anonymous_1429_, PyJs_Object_1431_]),u'130':Js([PyJs_anonymous_1432_, PyJs_Object_1434_]),u'131':Js([PyJs_anonymous_1435_, PyJs_Object_1437_]),u'132':Js([PyJs_anonymous_1438_, PyJs_Object_1440_]),u'133':Js([PyJs_anonymous_1441_, PyJs_Object_1443_]),u'134':Js([PyJs_anonymous_1444_, PyJs_Object_1447_]),u'135':Js([PyJs_anonymous_1448_, PyJs_Object_1451_]),u'136':Js([PyJs_anonymous_1452_, PyJs_Object_1454_]),u'137':Js([PyJs_anonymous_1455_, PyJs_Object_1457_]),u'138':Js([PyJs_anonymous_1458_, PyJs_Object_1463_]),u'139':Js([PyJs_anonymous_1464_, PyJs_Object_1467_]),u'140':Js([PyJs_anonymous_1468_, PyJs_Object_1485_]),u'141':Js([PyJs_anonymous_1486_, PyJs_Object_1489_]),u'142':Js([PyJs_anonymous_1490_, PyJs_Object_1508_]),u'143':Js([PyJs_anonymous_1509_, PyJs_Object_1518_]),u'144':Js([PyJs_anonymous_1519_, PyJs_Object_1521_]),u'145':Js([PyJs_anonymous_1522_, PyJs_Object_1528_]),u'146':Js([PyJs_anonymous_1529_, PyJs_Object_1531_]),u'147':Js([PyJs_anonymous_1532_, PyJs_Object_1537_]),u'148':Js([PyJs_anonymous_1538_, PyJs_Object_1541_]),u'149':Js([PyJs_anonymous_1542_, PyJs_Object_1543_]),u'150':Js([PyJs_anonymous_1544_, PyJs_Object_1546_]),u'151':Js([PyJs_anonymous_1547_, PyJs_Object_1555_]),u'152':Js([PyJs_anonymous_1556_, PyJs_Object_1558_]),u'153':Js([PyJs_anonymous_1559_, PyJs_Object_1564_]),u'154':Js([PyJs_anonymous_1565_, PyJs_Object_1566_]),u'155':Js([PyJs_anonymous_1567_, PyJs_Object_1570_]),u'156':Js([PyJs_anonymous_1571_, PyJs_Object_1574_]),u'157':Js([PyJs_anonymous_1575_, PyJs_Object_1576_]),u'158':Js([PyJs_anonymous_1577_, PyJs_Object_1581_]),u'159':Js([PyJs_anonymous_1582_, PyJs_Object_1584_]),u'160':Js([PyJs_anonymous_1585_, PyJs_Object_1587_]),u'161':Js([PyJs_anonymous_1588_, PyJs_Object_1590_]),u'162':Js([PyJs_anonymous_1591_, PyJs_Object_1593_]),u'163':Js([PyJs_anonymous_1594_, PyJs_Object_1596_]),u'164':Js([PyJs_anonymous_1597_, PyJs_Object_1602_]),u'165':Js([PyJs_anonymous_1603_, PyJs_Object_1612_]),u'166':Js([PyJs_anonymous_1613_, PyJs_Object_1616_]),u'167':Js([PyJs_anonymous_1617_, PyJs_Object_1619_]),u'168':Js([PyJs_anonymous_1620_, PyJs_Object_1622_]),u'169':Js([PyJs_anonymous_1623_, PyJs_Object_1624_]),u'170':Js([PyJs_anonymous_1625_, PyJs_Object_1637_]),u'171':Js([PyJs_anonymous_1638_, PyJs_Object_1646_]),u'172':Js([PyJs_anonymous_1647_, PyJs_Object_1651_]),u'173':Js([PyJs_anonymous_1652_, PyJs_Object_1654_]),u'174':Js([PyJs_anonymous_1655_, PyJs_Object_1657_]),u'175':Js([PyJs_anonymous_1658_, PyJs_Object_1660_]),u'176':Js([PyJs_anonymous_1661_, PyJs_Object_1665_]),u'177':Js([PyJs_anonymous_1666_, PyJs_Object_1668_]),u'178':Js([PyJs_anonymous_1669_, PyJs_Object_1670_]),u'179':Js([PyJs_anonymous_1671_, PyJs_Object_1673_]),u'180':Js([PyJs_anonymous_1674_, PyJs_Object_1676_]),u'181':Js([PyJs_anonymous_1677_, PyJs_Object_1679_]),u'182':Js([PyJs_anonymous_1680_, PyJs_Object_1682_]),u'183':Js([PyJs_anonymous_1683_, PyJs_Object_1688_]),u'184':Js([PyJs_anonymous_1689_, PyJs_Object_1692_]),u'185':Js([PyJs_anonymous_1693_, PyJs_Object_1695_]),u'186':Js([PyJs_anonymous_1696_, PyJs_Object_1697_]),u'187':Js([PyJs_anonymous_1698_, PyJs_Object_1705_]),u'188':Js([PyJs_anonymous_1706_, PyJs_Object_1710_]),u'189':Js([PyJs_anonymous_1711_, PyJs_Object_1714_]),u'190':Js([PyJs_anonymous_1715_, PyJs_Object_1717_]),u'191':Js([PyJs_anonymous_1718_, PyJs_Object_1722_]),u'192':Js([PyJs_anonymous_1723_, PyJs_Object_1727_]),u'193':Js([PyJs_anonymous_1728_, PyJs_Object_1730_]),u'194':Js([PyJs_anonymous_1731_, PyJs_Object_1733_]),u'195':Js([PyJs_anonymous_1734_, PyJs_Object_1736_]),u'196':Js([PyJs_anonymous_1737_, PyJs_Object_1739_]),u'197':Js([PyJs_anonymous_1740_, PyJs_Object_1742_]),u'198':Js([PyJs_anonymous_1743_, PyJs_Object_1745_]),u'199':Js([PyJs_anonymous_1746_, PyJs_Object_1748_]),u'200':Js([PyJs_anonymous_1749_, PyJs_Object_1754_]),u'201':Js([PyJs_anonymous_1755_, PyJs_Object_1756_]),u'202':Js([PyJs_anonymous_1757_, PyJs_Object_1759_]),u'203':Js([PyJs_anonymous_1760_, PyJs_Object_1762_]),u'204':Js([PyJs_anonymous_1763_, PyJs_Object_1765_]),u'205':Js([PyJs_anonymous_1766_, PyJs_Object_1769_]),u'206':Js([PyJs_anonymous_1770_, PyJs_Object_1776_]),u'207':Js([PyJs_anonymous_1777_, PyJs_Object_1779_]),u'208':Js([PyJs_anonymous_1780_, PyJs_Object_1782_]),u'209':Js([PyJs_anonymous_1783_, PyJs_Object_1785_]),u'210':Js([PyJs_anonymous_1786_, PyJs_Object_1789_]),u'211':Js([PyJs_anonymous_1790_, PyJs_Object_1792_]),u'212':Js([PyJs_anonymous_1793_, PyJs_Object_1794_]),u'213':Js([PyJs_anonymous_1795_, PyJs_Object_1800_]),u'214':Js([PyJs_anonymous_1801_, PyJs_Object_1838_]),u'215':Js([PyJs_anonymous_1839_, PyJs_Object_1848_]),u'216':Js([PyJs_anonymous_1849_, PyJs_Object_1854_]),u'217':Js([PyJs_anonymous_1855_, PyJs_Object_1857_]),u'218':Js([PyJs_anonymous_1858_, PyJs_Object_1859_]),u'219':Js([PyJs_anonymous_1860_, PyJs_Object_1861_]),u'220':Js([PyJs_anonymous_1862_, PyJs_Object_1863_]),u'221':Js([PyJs_anonymous_1864_, PyJs_Object_1877_]),u'222':Js([PyJs_anonymous_1878_, PyJs_Object_1880_]),u'223':Js([PyJs_anonymous_1881_, PyJs_Object_1894_]),u'224':Js([PyJs_anonymous_1895_, PyJs_Object_1898_]),u'225':Js([PyJs_anonymous_1899_, PyJs_Object_1918_]),u'226':Js([PyJs_anonymous_1919_, PyJs_Object_1926_]),u'227':Js([PyJs_anonymous_1927_, PyJs_Object_1929_]),u'228':Js([PyJs_anonymous_1930_, PyJs_Object_1936_]),u'229':Js([PyJs_anonymous_1937_, PyJs_Object_1939_]),u'230':Js([PyJs_anonymous_1940_, PyJs_Object_1949_]),u'231':Js([PyJs_anonymous_1950_, PyJs_Object_1958_]),u'232':Js([PyJs_anonymous_1959_, PyJs_Object_1980_]),u'233':Js([PyJs_anonymous_1981_, PyJs_Object_1985_]),u'234':Js([PyJs_anonymous_1986_, PyJs_Object_1999_]),u'235':Js([PyJs_anonymous_2000_, PyJs_Object_2005_]),u'236':Js([PyJs_anonymous_2006_, PyJs_Object_2016_]),u'237':Js([PyJs_anonymous_2017_, PyJs_Object_2031_]),u'238':Js([PyJs_anonymous_2032_, PyJs_Object_2039_]),u'239':Js([PyJs_anonymous_2040_, PyJs_Object_2071_]),u'240':Js([PyJs_anonymous_2072_, PyJs_Object_2079_]),u'241':Js([PyJs_anonymous_2080_, PyJs_Object_2082_]),u'242':Js([PyJs_anonymous_2083_, PyJs_Object_2092_]),u'243':Js([PyJs_anonymous_2093_, PyJs_Object_2102_]),u'244':Js([PyJs_anonymous_2103_, PyJs_Object_2178_]),u'245':Js([PyJs_anonymous_2179_, PyJs_Object_2193_]),u'246':Js([PyJs_anonymous_2194_, PyJs_Object_2206_]),u'247':Js([PyJs_anonymous_2207_, PyJs_Object_2212_]),u'248':Js([PyJs_anonymous_2213_, PyJs_Object_2219_]),u'249':Js([PyJs_anonymous_2220_, PyJs_Object_2423_]),u'250':Js([PyJs_anonymous_2424_, PyJs_Object_2528_]),u'251':Js([PyJs_anonymous_2529_, PyJs_Object_2559_]),u'252':Js([PyJs_anonymous_2560_, PyJs_Object_2648_]),u'253':Js([PyJs_anonymous_2649_, PyJs_Object_2662_]),u'254':Js([PyJs_anonymous_2663_, PyJs_Object_2664_]),u'255':Js([PyJs_anonymous_2665_, PyJs_Object_2705_]),u'256':Js([PyJs_anonymous_2706_, PyJs_Object_2712_]),u'257':Js([PyJs_anonymous_2713_, PyJs_Object_2717_]),u'258':Js([PyJs_anonymous_2718_, PyJs_Object_2826_]),u'259':Js([PyJs_anonymous_2827_, PyJs_Object_2829_]),u'260':Js([PyJs_anonymous_2830_, PyJs_Object_2834_]),u'261':Js([PyJs_anonymous_2835_, PyJs_Object_2841_]),u'262':Js([PyJs_anonymous_2842_, PyJs_Object_3223_]),u'263':Js([PyJs_anonymous_3224_, PyJs_Object_3226_]),u'264':Js([PyJs_anonymous_3227_, PyJs_Object_3230_]),u'265':Js([PyJs_anonymous_3231_, PyJs_Object_3244_]),u'266':Js([PyJs_anonymous_3245_, PyJs_Object_3248_]),u'267':Js([PyJs_anonymous_3249_, PyJs_Object_3277_]),u'268':Js([PyJs_anonymous_3278_, PyJs_Object_3282_]),u'269':Js([PyJs_anonymous_3283_, PyJs_Object_3286_]),u'270':Js([PyJs_anonymous_3287_, PyJs_Object_3295_]),u'271':Js([PyJs_anonymous_3296_, PyJs_Object_3301_]),u'272':Js([PyJs_anonymous_3302_, PyJs_Object_3304_]),u'273':Js([PyJs_anonymous_3305_, PyJs_Object_3308_]),u'274':Js([PyJs_anonymous_3309_, PyJs_Object_3314_]),u'275':Js([PyJs_anonymous_3315_, PyJs_Object_3318_]),u'276':Js([PyJs_anonymous_3319_, PyJs_Object_3321_]),u'277':Js([PyJs_anonymous_3322_, PyJs_Object_3355_]),u'278':Js([PyJs_anonymous_3356_, PyJs_Object_3357_]),u'279':Js([PyJs_anonymous_3358_, PyJs_Object_3359_]),u'280':Js([PyJs_anonymous_3360_, PyJs_Object_3364_]),u'281':Js([PyJs_anonymous_3365_, PyJs_Object_3367_]),u'282':Js([PyJs_anonymous_3368_, PyJs_Object_3372_]),u'283':Js([PyJs_anonymous_3373_, PyJs_Object_3395_]),u'284':Js([PyJs_anonymous_3396_, PyJs_Object_3424_]),u'285':Js([PyJs_anonymous_3425_, PyJs_Object_3426_]),u'286':Js([PyJs_anonymous_3427_, PyJs_Object_3428_]),u'287':Js([PyJs_anonymous_3429_, PyJs_Object_3430_]),u'288':Js([PyJs_anonymous_3431_, PyJs_Object_3432_]),u'289':Js([PyJs_anonymous_3433_, PyJs_Object_3434_]),u'290':Js([PyJs_anonymous_3435_, PyJs_Object_3436_]),u'291':Js([PyJs_anonymous_3437_, PyJs_Object_3438_]),u'292':Js([PyJs_anonymous_3439_, PyJs_Object_3440_]),u'293':Js([PyJs_anonymous_3441_, PyJs_Object_3442_]),u'294':Js([PyJs_anonymous_3443_, PyJs_Object_3444_]),u'295':Js([PyJs_anonymous_3445_, PyJs_Object_3446_]),u'296':Js([PyJs_anonymous_3447_, PyJs_Object_3448_]),u'297':Js([PyJs_anonymous_3449_, PyJs_Object_3450_]),u'298':Js([PyJs_anonymous_3451_, PyJs_Object_3452_]),u'299':Js([PyJs_anonymous_3453_, PyJs_Object_3454_]),u'300':Js([PyJs_anonymous_3455_, PyJs_Object_3456_]),u'301':Js([PyJs_anonymous_3457_, PyJs_Object_3458_]),u'302':Js([PyJs_anonymous_3459_, PyJs_Object_3460_]),u'303':Js([PyJs_anonymous_3461_, PyJs_Object_3462_]),u'304':Js([PyJs_anonymous_3463_, PyJs_Object_3464_]),u'305':Js([PyJs_anonymous_3465_, PyJs_Object_3466_]),u'306':Js([PyJs_anonymous_3467_, PyJs_Object_3468_]),u'307':Js([PyJs_anonymous_3469_, PyJs_Object_3470_]),u'308':Js([PyJs_anonymous_3471_, PyJs_Object_3472_]),u'309':Js([PyJs_anonymous_3473_, PyJs_Object_3474_]),u'310':Js([PyJs_anonymous_3475_, PyJs_Object_3476_]),u'311':Js([PyJs_anonymous_3477_, PyJs_Object_3478_]),u'312':Js([PyJs_anonymous_3479_, PyJs_Object_3480_]),u'313':Js([PyJs_anonymous_3481_, PyJs_Object_3482_]),u'314':Js([PyJs_anonymous_3483_, PyJs_Object_3491_]),u'315':Js([PyJs_anonymous_3492_, PyJs_Object_3494_]),u'316':Js([PyJs_anonymous_3495_, PyJs_Object_3496_]),u'317':Js([PyJs_anonymous_3497_, PyJs_Object_3498_]),u'318':Js([PyJs_anonymous_3499_, PyJs_Object_3500_]),u'319':Js([PyJs_anonymous_3501_, PyJs_Object_3502_]),u'320':Js([PyJs_anonymous_3503_, PyJs_Object_3504_]),u'321':Js([PyJs_anonymous_3505_, PyJs_Object_3506_]),u'322':Js([PyJs_anonymous_3507_, PyJs_Object_3508_]),u'323':Js([PyJs_anonymous_3509_, PyJs_Object_3510_]),u'324':Js([PyJs_anonymous_3511_, PyJs_Object_3512_]),u'325':Js([PyJs_anonymous_3513_, PyJs_Object_3514_]),u'326':Js([PyJs_anonymous_3515_, PyJs_Object_3516_]),u'327':Js([PyJs_anonymous_3517_, PyJs_Object_3518_]),u'328':Js([PyJs_anonymous_3519_, PyJs_Object_3520_]),u'329':Js([PyJs_anonymous_3521_, PyJs_Object_3522_]),u'330':Js([PyJs_anonymous_3523_, PyJs_Object_3524_]),u'331':Js([PyJs_anonymous_3525_, PyJs_Object_3526_]),u'332':Js([PyJs_anonymous_3527_, PyJs_Object_3528_]),u'333':Js([PyJs_anonymous_3529_, PyJs_Object_3532_]),u'334':Js([PyJs_anonymous_3533_, PyJs_Object_3535_]),u'335':Js([PyJs_anonymous_3536_, PyJs_Object_3538_]),u'336':Js([PyJs_anonymous_3539_, PyJs_Object_3541_]),u'337':Js([PyJs_anonymous_3542_, PyJs_Object_3544_]),u'338':Js([PyJs_anonymous_3545_, PyJs_Object_3546_]),u'339':Js([PyJs_anonymous_3547_, PyJs_Object_3552_]),u'340':Js([PyJs_anonymous_3553_, PyJs_Object_3555_]),u'341':Js([PyJs_anonymous_3556_, PyJs_Object_3558_]),u'342':Js([PyJs_anonymous_3559_, PyJs_Object_3560_]),u'343':Js([PyJs_anonymous_3561_, PyJs_Object_3562_]),u'344':Js([PyJs_anonymous_3563_, PyJs_Object_3564_]),u'345':Js([PyJs_anonymous_3565_, PyJs_Object_3566_]),u'346':Js([PyJs_anonymous_3567_, PyJs_Object_3568_]),u'347':Js([PyJs_anonymous_3569_, PyJs_Object_3570_]),u'348':Js([PyJs_anonymous_3571_, PyJs_Object_3573_]),u'349':Js([PyJs_anonymous_3574_, PyJs_Object_3575_]),u'350':Js([PyJs_anonymous_3576_, PyJs_Object_3578_]),u'351':Js([PyJs_anonymous_3579_, PyJs_Object_3580_]),u'352':Js([PyJs_anonymous_3581_, PyJs_Object_3582_]),u'353':Js([PyJs_anonymous_3583_, PyJs_Object_3584_]),u'354':Js([PyJs_anonymous_3585_, PyJs_Object_3586_]),u'355':Js([PyJs_anonymous_3587_, PyJs_Object_3588_]),u'356':Js([PyJs_anonymous_3589_, PyJs_Object_3590_]),u'357':Js([PyJs_anonymous_3591_, PyJs_Object_3592_]),u'358':Js([PyJs_anonymous_3593_, PyJs_Object_3594_]),u'359':Js([PyJs_anonymous_3595_, PyJs_Object_3596_]),u'360':Js([PyJs_anonymous_3597_, PyJs_Object_3598_]),u'361':Js([PyJs_anonymous_3599_, PyJs_Object_3600_]),u'362':Js([PyJs_anonymous_3601_, PyJs_Object_3603_]),u'363':Js([PyJs_anonymous_3604_, PyJs_Object_3605_]),u'364':Js([PyJs_anonymous_3606_, PyJs_Object_3609_]),u'365':Js([PyJs_anonymous_3610_, PyJs_Object_3611_]),u'366':Js([PyJs_anonymous_3612_, PyJs_Object_3613_]),u'367':Js([PyJs_anonymous_3614_, PyJs_Object_3616_]),u'368':Js([PyJs_anonymous_3617_, PyJs_Object_3618_]),u'369':Js([PyJs_anonymous_3619_, PyJs_Object_3620_]),u'370':Js([PyJs_anonymous_3621_, PyJs_Object_3623_]),u'371':Js([PyJs_anonymous_3624_, PyJs_Object_3626_]),u'372':Js([PyJs_anonymous_3627_, PyJs_Object_3629_]),u'373':Js([PyJs_anonymous_3630_, PyJs_Object_3633_]),u'374':Js([PyJs_anonymous_3634_, PyJs_Object_3636_]),u'375':Js([PyJs_anonymous_3637_, PyJs_Object_3639_]),u'376':Js([PyJs_anonymous_3640_, PyJs_Object_3641_]),u'377':Js([PyJs_anonymous_3642_, PyJs_Object_3644_]),u'378':Js([PyJs_anonymous_3645_, PyJs_Object_3646_]),u'379':Js([PyJs_anonymous_3647_, PyJs_Object_3648_]),u'380':Js([PyJs_anonymous_3649_, PyJs_Object_3650_]),u'381':Js([PyJs_anonymous_3651_, PyJs_Object_3652_]),u'382':Js([PyJs_anonymous_3653_, PyJs_Object_3654_]),u'383':Js([PyJs_anonymous_3655_, PyJs_Object_3656_]),u'384':Js([PyJs_anonymous_3657_, PyJs_Object_3658_]),u'385':Js([PyJs_anonymous_3659_, PyJs_Object_3662_]),u'386':Js([PyJs_anonymous_3663_, PyJs_Object_3664_]),u'387':Js([PyJs_anonymous_3665_, PyJs_Object_3666_]),u'388':Js([PyJs_anonymous_3667_, PyJs_Object_3669_]),u'389':Js([PyJs_anonymous_3670_, PyJs_Object_3671_]),u'390':Js([PyJs_anonymous_3672_, PyJs_Object_3673_]),u'391':Js([PyJs_anonymous_3674_, PyJs_Object_3675_]),u'392':Js([PyJs_anonymous_3676_, PyJs_Object_3677_]),u'393':Js([PyJs_anonymous_3678_, PyJs_Object_3679_]),u'394':Js([PyJs_anonymous_3680_, PyJs_Object_3681_]),u'395':Js([PyJs_anonymous_3682_, PyJs_Object_3683_]),u'396':Js([PyJs_anonymous_3684_, PyJs_Object_3685_]),u'397':Js([PyJs_anonymous_3686_, PyJs_Object_3688_]),u'398':Js([PyJs_anonymous_3689_, PyJs_Object_3690_]),u'399':Js([PyJs_anonymous_3691_, PyJs_Object_3692_]),u'400':Js([PyJs_anonymous_3693_, PyJs_Object_3694_]),u'401':Js([PyJs_anonymous_3695_, PyJs_Object_3696_]),u'402':Js([PyJs_anonymous_3697_, PyJs_Object_3698_]),u'403':Js([PyJs_anonymous_3699_, PyJs_Object_3700_]),u'404':Js([PyJs_anonymous_3701_, PyJs_Object_3702_]),u'405':Js([PyJs_anonymous_3703_, PyJs_Object_3705_]),u'406':Js([PyJs_anonymous_3706_, PyJs_Object_3707_]),u'407':Js([PyJs_anonymous_3708_, PyJs_Object_3709_]),u'408':Js([PyJs_anonymous_3710_, PyJs_Object_3711_]),u'409':Js([PyJs_anonymous_3712_, PyJs_Object_3713_]),u'410':Js([PyJs_anonymous_3714_, PyJs_Object_3715_]),u'411':Js([PyJs_anonymous_3716_, PyJs_Object_3717_]),u'412':Js([PyJs_anonymous_3718_, PyJs_Object_3719_]),u'413':Js([PyJs_anonymous_3720_, PyJs_Object_3721_]),u'414':Js([PyJs_anonymous_3722_, PyJs_Object_3724_]),u'415':Js([PyJs_anonymous_3725_, PyJs_Object_3726_]),u'416':Js([PyJs_anonymous_3727_, PyJs_Object_3728_]),u'417':Js([PyJs_anonymous_3729_, PyJs_Object_3730_]),u'418':Js([PyJs_anonymous_3731_, PyJs_Object_3732_]),u'419':Js([PyJs_anonymous_3733_, PyJs_Object_3735_]),u'420':Js([PyJs_anonymous_3736_, PyJs_Object_3738_]),u'421':Js([PyJs_anonymous_3739_, PyJs_Object_3740_]),u'422':Js([PyJs_anonymous_3741_, PyJs_Object_3744_]),u'423':Js([PyJs_anonymous_3745_, PyJs_Object_3746_]),u'424':Js([PyJs_anonymous_3747_, PyJs_Object_3748_]),u'425':Js([PyJs_anonymous_3749_, PyJs_Object_3751_]),u'426':Js([PyJs_anonymous_3752_, PyJs_Object_3753_]),u'427':Js([PyJs_anonymous_3754_, PyJs_Object_3755_]),u'428':Js([PyJs_anonymous_3756_, PyJs_Object_3757_]),u'429':Js([PyJs_anonymous_3758_, PyJs_Object_3759_]),u'430':Js([PyJs_anonymous_3760_, PyJs_Object_3761_]),u'431':Js([PyJs_anonymous_3762_, PyJs_Object_3763_]),u'432':Js([PyJs_anonymous_3764_, PyJs_Object_3767_]),u'433':Js([PyJs_anonymous_3768_, PyJs_Object_3769_]),u'434':Js([PyJs_anonymous_3770_, PyJs_Object_3771_]),u'435':Js([PyJs_anonymous_3772_, PyJs_Object_3775_]),u'436':Js([PyJs_anonymous_3776_, PyJs_Object_3779_]),u'437':Js([PyJs_anonymous_3780_, PyJs_Object_3782_]),u'438':Js([PyJs_anonymous_3783_, PyJs_Object_3784_]),u'439':Js([PyJs_anonymous_3785_, PyJs_Object_3786_]),u'440':Js([PyJs_anonymous_3787_, PyJs_Object_3788_]),u'441':Js([PyJs_anonymous_3789_, PyJs_Object_3790_]),u'442':Js([PyJs_anonymous_3791_, PyJs_Object_3793_]),u'443':Js([PyJs_anonymous_3794_, PyJs_Object_3795_]),u'444':Js([PyJs_anonymous_3796_, PyJs_Object_3797_]),u'445':Js([PyJs_anonymous_3798_, PyJs_Object_3799_]),u'446':Js([PyJs_anonymous_3800_, PyJs_Object_3801_]),u'447':Js([PyJs_anonymous_3802_, PyJs_Object_3803_]),u'448':Js([PyJs_anonymous_3804_, PyJs_Object_3805_]),u'449':Js([PyJs_anonymous_3806_, PyJs_Object_3807_]),u'450':Js([PyJs_anonymous_3808_, PyJs_Object_3809_]),u'451':Js([PyJs_anonymous_3810_, PyJs_Object_3811_]),u'452':Js([PyJs_anonymous_3812_, PyJs_Object_3813_]),u'453':Js([PyJs_anonymous_3814_, PyJs_Object_3815_]),u'454':Js([PyJs_anonymous_3816_, PyJs_Object_3817_]),u'455':Js([PyJs_anonymous_3818_, PyJs_Object_3819_]),u'456':Js([PyJs_anonymous_3820_, PyJs_Object_3821_]),u'457':Js([PyJs_anonymous_3822_, PyJs_Object_3823_]),u'458':Js([PyJs_anonymous_3824_, PyJs_Object_3825_]),u'459':Js([PyJs_anonymous_3826_, PyJs_Object_3827_]),u'460':Js([PyJs_anonymous_3828_, PyJs_Object_3829_]),u'461':Js([PyJs_anonymous_3830_, PyJs_Object_3831_]),u'462':Js([PyJs_anonymous_3832_, PyJs_Object_3834_]),u'463':Js([PyJs_anonymous_3835_, PyJs_Object_3836_]),u'464':Js([PyJs_anonymous_3837_, PyJs_Object_3838_]),u'465':Js([PyJs_anonymous_3839_, PyJs_Object_3840_]),u'466':Js([PyJs_anonymous_3841_, PyJs_Object_3842_]),u'467':Js([PyJs_anonymous_3843_, PyJs_Object_3844_]),u'468':Js([PyJs_anonymous_3845_, PyJs_Object_3846_]),u'469':Js([PyJs_anonymous_3847_, PyJs_Object_3848_]),u'470':Js([PyJs_anonymous_3849_, PyJs_Object_3850_]),u'471':Js([PyJs_anonymous_3851_, PyJs_Object_3852_]),u'472':Js([PyJs_anonymous_3853_, PyJs_Object_3854_]),u'473':Js([PyJs_anonymous_3855_, PyJs_Object_3860_]),u'474':Js([PyJs_anonymous_3861_, PyJs_Object_3862_]),u'475':Js([PyJs_anonymous_3863_, PyJs_Object_3864_]),u'476':Js([PyJs_anonymous_3865_, PyJs_Object_3866_]),u'477':Js([PyJs_anonymous_3867_, PyJs_Object_3869_]),u'478':Js([PyJs_anonymous_3870_, PyJs_Object_3872_]),u'479':Js([PyJs_anonymous_3873_, PyJs_Object_3874_]),u'480':Js([PyJs_anonymous_3875_, PyJs_Object_3876_]),u'481':Js([PyJs_anonymous_3877_, PyJs_Object_3878_]),u'482':Js([PyJs_anonymous_3879_, PyJs_Object_3880_]),u'483':Js([PyJs_anonymous_3881_, PyJs_Object_3882_]),u'484':Js([PyJs_anonymous_3883_, PyJs_Object_3885_]),u'485':Js([PyJs_anonymous_3886_, PyJs_Object_3888_]),u'486':Js([PyJs_anonymous_3889_, PyJs_Object_3890_]),u'487':Js([PyJs_anonymous_3891_, PyJs_Object_3892_]),u'488':Js([PyJs_anonymous_3893_, PyJs_Object_3894_]),u'489':Js([PyJs_anonymous_3895_, PyJs_Object_3896_]),u'490':Js([PyJs_anonymous_3897_, PyJs_Object_3898_]),u'491':Js([PyJs_anonymous_3899_, PyJs_Object_3900_]),u'492':Js([PyJs_anonymous_3901_, PyJs_Object_3902_]),u'493':Js([PyJs_anonymous_3903_, PyJs_Object_3904_]),u'494':Js([PyJs_anonymous_3905_, PyJs_Object_3906_]),u'495':Js([PyJs_anonymous_3907_, PyJs_Object_3908_]),u'496':Js([PyJs_anonymous_3909_, PyJs_Object_3910_]),u'497':Js([PyJs_anonymous_3911_, PyJs_Object_3914_]),u'498':Js([PyJs_anonymous_3915_, PyJs_Object_3917_]),u'499':Js([PyJs_anonymous_3918_, PyJs_Object_3920_]),u'500':Js([PyJs_anonymous_3921_, PyJs_Object_3927_]),u'501':Js([PyJs_anonymous_3928_, PyJs_Object_3983_]),u'502':Js([PyJs_anonymous_3984_, PyJs_Object_3991_]),u'503':Js([PyJs_anonymous_3992_, PyJs_Object_3994_]),u'504':Js([PyJs_anonymous_3995_, PyJs_Object_4001_]),u'505':Js([PyJs_anonymous_4002_, PyJs_Object_4010_]),u'506':Js([PyJs_anonymous_4011_, PyJs_Object_4027_]),u'507':Js([PyJs_anonymous_4028_, PyJs_Object_4030_]),u'508':Js([PyJs_anonymous_4031_, PyJs_Object_4033_]),u'509':Js([PyJs_anonymous_4034_, PyJs_Object_4042_]),u'510':Js([PyJs_anonymous_4043_, PyJs_Object_4046_]),u'511':Js([PyJs_anonymous_4047_, PyJs_Object_4050_]),u'512':Js([PyJs_anonymous_4051_, PyJs_Object_4053_]),u'513':Js([PyJs_anonymous_4054_, PyJs_Object_4059_]),u'514':Js([PyJs_anonymous_4060_, PyJs_Object_4062_]),u'515':Js([PyJs_anonymous_4063_, PyJs_Object_4119_]),u'516':Js([PyJs_anonymous_4120_, PyJs_Object_4145_]),u'517':Js([PyJs_anonymous_4146_, PyJs_Object_4176_]),u'518':Js([PyJs_anonymous_4177_, PyJs_Object_4183_]),u'519':Js([PyJs_anonymous_4184_, PyJs_Object_4185_]),u'520':Js([PyJs_anonymous_4186_, PyJs_Object_4188_]),u'521':Js([PyJs_anonymous_4189_, PyJs_Object_4193_]),u'522':Js([PyJs_anonymous_4194_, PyJs_Object_4196_]),u'523':Js([PyJs_anonymous_4197_, PyJs_Object_4198_]),u'524':Js([PyJs_anonymous_4199_, PyJs_Object_4214_]),u'525':Js([PyJs_anonymous_4215_, PyJs_Object_4273_]),u'526':Js([PyJs_anonymous_4274_, PyJs_Object_4276_]),u'527':Js([PyJs_anonymous_4277_, PyJs_Object_4280_]),u'528':Js([PyJs_anonymous_4281_, PyJs_Object_4284_]),u'529':Js([PyJs_anonymous_4285_, PyJs_Object_4291_]),u'530':Js([PyJs_anonymous_4292_, PyJs_Object_4308_]),u'531':Js([PyJs_anonymous_4309_, PyJs_Object_4319_]),u'532':Js([PyJs_anonymous_4320_, PyJs_Object_4322_]),u'533':Js([PyJs_anonymous_4323_, PyJs_Object_4325_]),u'534':Js([PyJs_anonymous_4326_, PyJs_Object_4351_])})
PyJs_Object_4352_ = Js({})
@Js
def PyJs_e_4353_(t, n, r, this, arguments, var=var):
    var = Scope({u'e':PyJs_e_4353_, u'this':this, u'n':n, u'r':r, u'arguments':arguments, u't':t}, var)
    var.registers([u'i', u'o', u'n', u's', u'r', u't'])
    @Js
    def PyJsHoisted_s_(o, u, this, arguments, var=var):
        var = Scope({u'this':this, u'u':u, u'arguments':arguments, u'o':o}, var)
        var.registers([u'a', u'u', u'l', u'o', u'f'])
        if var.get(u'n').get(var.get(u'o')).neg():
            if var.get(u't').get(var.get(u'o')).neg():
                var.put(u'a', ((var.get(u'require',throw=False).typeof()==Js(u'function')) and var.get(u'require')))
                if (var.get(u'u').neg() and var.get(u'a')):
                    return var.get(u'a')(var.get(u'o'), Js(0.0).neg())
                if var.get(u'i'):
                    return var.get(u'i')(var.get(u'o'), Js(0.0).neg())
                var.put(u'f', var.get(u'Error').create(((Js(u"Cannot find module '")+var.get(u'o'))+Js(u"'"))))
                PyJsTempException = JsToPyException(PyJsComma(var.get(u'f').put(u'code', Js(u'MODULE_NOT_FOUND')),var.get(u'f')))
                raise PyJsTempException
            PyJs_Object_4355_ = Js({})
            PyJs_Object_4354_ = Js({u'exports':PyJs_Object_4355_})
            var.put(u'l', var.get(u'n').put(var.get(u'o'), PyJs_Object_4354_))
            @Js
            def PyJs_anonymous_4356_(e, this, arguments, var=var):
                var = Scope({u'this':this, u'e':e, u'arguments':arguments}, var)
                var.registers([u'e', u'n'])
                var.put(u'n', var.get(u't').get(var.get(u'o')).get(u'1').get(var.get(u'e')))
                return var.get(u's')((var.get(u'n') if var.get(u'n') else var.get(u'e')))
            PyJs_anonymous_4356_._set_name(u'anonymous')
            var.get(u't').get(var.get(u'o')).get(u'0').callprop(u'call', var.get(u'l').get(u'exports'), PyJs_anonymous_4356_, var.get(u'l'), var.get(u'l').get(u'exports'), var.get(u'e'), var.get(u't'), var.get(u'n'), var.get(u'r'))
        return var.get(u'n').get(var.get(u'o')).get(u'exports')
    PyJsHoisted_s_.func_name = u's'
    var.put(u's', PyJsHoisted_s_)
    pass
    var.put(u'i', ((var.get(u'require',throw=False).typeof()==Js(u'function')) and var.get(u'require')))
    #for JS loop
    var.put(u'o', Js(0.0))
    while (var.get(u'o')<var.get(u'r').get(u'length')):
        try:
            var.get(u's')(var.get(u'r').get(var.get(u'o')))
        finally:
                (var.put(u'o',Js(var.get(u'o').to_number())+Js(1))-Js(1))
    return var.get(u's')
PyJs_e_4353_._set_name(u'e')
PyJs_e_4353_(PyJs_Object_0_, PyJs_Object_4352_, Js([Js(1.0)]))
pass


# Add lib to the module scope
babel = var.to_python()